Visualizzazione risultati 1 fino 18 di 18

Discussione: Organizzare database per una link directory

  1. #1
    Guest

    Predefinito Organizzare database per una link directory

    Saluti a tutti,

    sto sviluppando una link directory ma sono alle prime armi per quanto riguarda il salvataggio dei dati su database mysql.

    Vi spiego in breve quello che vorrei fare:

    l'utente arriva su sito, va nella pagina con il form per aggiungere il suo sito alla directory, lo completa e passa tutti i controlli, i dati vengono inseriti in una tabella del database ( temporanea ) , il webmaster visualizza l'elenco dei siti proposti e inseriti in questa tabela e decide quali approvare ( attraverso pannello di amministrazione ).

    A questo punto i dati dei siti approvati vengono spostati nella tabella definitiva, dove poi il codice php li pescherà per visualizzarli nel sito.

    Riassumento vengono a crearsi due tabelle una con i siti in fase di approvazione ( che verrà svuotata periodicamente ) e una con i siti approvati che verrà realmente utilizzata dal sito.

    Tutto ciò si può fare? ( non ho ben chiaro ancora quello che si può e non si può fare con php e mysql )

    Questa procedura è esatta? oppure si può fare lo stesso in modo più semplice, magari utilizzando una sola tabella?

    P.S. Cerco qualcuno che abbia un pò di conoscenza di PHP/MySQL che sia interessato a collaborare.

  2. #2
    Guest

    Predefinito

    Puoi farlo con una sola tabella, basta che aggiungi la colonna approved, e metti di default "0"...

  3. #3
    Guest

    Predefinito

    scusa l'ignoranza ma che tipo di campo dovrei mettere?
    e come faccio a mettere il valore di default 0 ?

    granzie

  4. #4
    Guest

    Predefinito

    allora:
    o lo fai direttamente da phpmyadmin, aggiungi la colonna e nel campo predefinito metti 0, o lo fai con il php, quando fai la query per aggiungere un sito...

  5. #5
    Guest

    Predefinito

    e che tipo di campo dovrei usare?

    Qualcuno sa elencarmi brevemente che differenza c'è tra i diversi tipi di campi?

  6. #6
    Guest

    Predefinito

    vai in phpmyadmin...
    quando crei o modifichi la tabella(aggiungendo o togliendo colonne) vedi dei campi bianchi ...
    il primo è campo, il nome della colonna, il2° è tipo (ha anche un punto di domanda in parteXD), poi c'è il campo "Lunghezza/Set" , coallition (puoi anche non usarla), attributi,null(dove puoi impostare se deve essere per forza pieno o no, tu metti not null) e infine predefinito(dove metterai il valore di default se no si mettono dati con la query).
    Tu devi mettere di default nel campo predefinito il numero 0, così poi distinguerai quelli approvati (1, che modificherai con uno script nell' amministrazione) e non approvati (quello 0 di default)...

  7. #7
    Guest

    Predefinito

    ok, ti ringrazio molto

    -----------------------EDIT-----------------------------------

    potete dirmi se i tipi di dati vanno bene per quello che vorrei salvare sulla tabella?

    questo è il codice generato da phpmyadmin

    Codice PHP:
    CREATE TABLE `link`.`link` (
    `
    id` INT( 5 ) NOT NULL ,
    `
    mail` VARCHAR( 50 ) NOT NULL ,
    `
    url` VARCHAR( 100 ) NOT NULL ,
    `
    title` VARCHAR( 100 ) NOT NULL ,
    `
    desc` VARCHAR( 250 ) NOT NULL ,
    `
    categ` VARCHAR( 100 ) NOT NULL ,
    `
    key` VARCHAR( 100 ) NOT NULL ,
    `
    ip` VARCHAR( 20 ) NOT NULL ,
    `
    data` VARCHAR( 20 ) NOT NULL ,
    `
    sub_categ` VARCHAR( 100 ) NOT NULL ,
    `
    approved` CHAR( 3 ) NOT NULL DEFAULT 'no',
    `
    stato` VARCHAR( 20 ) NOT NULL DEFAULT 'normal',
    PRIMARY KEY ( `id` )
    )
    ENGINE = MYISAM
    Ultima modifica di alterlinks : 30-12-2007 alle ore 13.00.46

  8. #8
    Guest

    Predefinito

    Direi che va bene, per andare sul sicuro limita i campi input del form per evitare di sforare

  9. #9
    Guest

    Predefinito

    Invece non funziona!!!!!!!!!!!!!!

    E' tuttu il pomeriggio che provo a inserire dei dati in quella tabella ma non ci riesco.

    Ecco il codice php che utilizzo per per popolare la tabela:

    Codice PHP:
    $db = mysql_connect($db_host, $db_user, $db_password);

    if (
    $db == FALSE) {
    die (
    "Errore nella connessione. Verificare i parametri nel file config.inc.php"); }

    mysql_select_db($db_name, $db)
    or die (
    "Errore nella selezione del database. Verificare i parametri nel file config.inc.php");

    $dati = " INSERT INTO link ( mail, url, title, desc, categ, key, ip, data, sub_categ, approved, stato) VALUES ( '$mail, $url, $title, $desc, $select, $key, $ip, $data, , 0, normal')";

    if (!(@
    mysql_query($dati)))
    echo
    "Errore nell'inserimento: ". mysql_errno();
    echo
    "<br>".mysql_error();

    mysql_close($db);

    Dov'è l'errore? vi presto sto impazzendo

  10. #10
    Guest

    Predefinito

    l' errore è qua:
    Codice PHP:
    if (!(@mysql_query($dati)))
    primo, c'è una parentesi di troppo dopo il punto esclamativo(perciò ce n' erano due, una anche appena dopo la query...), poi togli la @, sennò non segna nessun errore...in più devi segnare la connessione del db in parte alla query nell' if...

    quindi prova così:
    Codice PHP:
    if (!mysql_query($dati,$db)){//ricorda di mettere anche le graffe.
    ma...ma...dove sono le graffe!!
    mettile, all' inizio e alla fine dell'if...

  11. #11
    Guest

    Predefinito

    Ti ringrazio per avermi risposto però ancora non riesco a riempire la tabella ecco l'errore che viene visualizzato:

    Codice:
    Errore nell'inserimento: 1064
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'desc, categ, key, ip, data, sub_categ, approved, stato) VALUES ( 'example@gmai' at line 1
    Da notare che nell'errore viene visualizzata sono parte dell' email, infatti nel form che invia i dati a questa pagina avevo scritto example@gmail.com, dipenderà da questo?

  12. #12
    Guest

    Predefinito

    No, non è dato da quello.
    E' dato da questo:
    Codice PHP:
    $dati = " INSERT INTO link ( mail, url, title, desc, categ, key, ip, data, sub_categ, approved, stato) VALUES ( '$mail, $url, $title, $desc, $select, $key, $ip, $data, , 0, normal')";
    hai sbagliato a fare la query...
    il primo errore che vedo è che non hai messo il punto e virgola alla fine della query(quella nella stringa)...
    poi, non lo so se stò sbagliando pure io, ma qui:
    Codice PHP:
    '$mail, $url, $title, $desc, $select, $key, $ip, $data, , 0, normal')
    non va in stringa, sono delle variabili... al massimo ci va lo 0 e il normal in stringa...
    Ma non so se questo influisce, prova...

  13. #13
    Guest

    Predefinito

    Ho modificato così ma non va comunque:

    Codice PHP:
    $dati = " INSERT INTO link ( mail, url, title, desc, categ, key, ip, data, sub_categ, approved, stato) VALUES ( '$mail', '$url', '$title', '$desc', '$select', '$key', $ip, $data,'' , 0, 'normal')";
    da lo stesso errore di prima

  14. #14
    Guest

    Predefinito

    No, era da fare così:
    Codice PHP:
    $dati = " INSERT INTO link ( mail, url, title, desc, categ, key, ip, data, sub_categ, approved, stato) VALUES ( $mail, $url, $title, $desc, $select, $key, $ip, $data,'', '0', 'normal')";
    o magari così:

    Codice PHP:
    $dati = " INSERT INTO link ( mail, url, title, desc, categ, key, ip, data, sub_categ, approved, stato) VALUES ( " . $mail.",". $url.", ".$title.",". $desc.",". $select.",". $key.", ".$ip.",". $data.",'', '0', 'normal')";
    anche se la prima dovrebbe andare bene...

  15. #15
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Il punto e virgola alla fine di una singola query non è necessario.
    Prova così:
    Codice PHP:
    $dati="INSERT INTO link (mail, url, title, desc, categ, key, ip, data, sub_categ, approved, stato) VALUES ('{$mail}','{$url}','{$title}','{$desc}','{$select}','{$key}','{$ip}','{$data},'','0','normal')";
    Inoltre al campo id ti conviene dare "auto_increment" se non lo hai ancora fatto.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  16. #16
    Guest

    Predefinito

    Grazie per avermi risposto, ho provato in tutti e due i modi ma mi torna sempre lo stesso errore.

    Ho notato che se tolglievo le " davanti a INSERT INTO il valore mail e key diventavano di un altro colore rispetto alle altre.

    Ho pensato fosse meglio cambiare questi valori così ho rinominato le tabelle in "user_mail" e "user_key", adesso il codice è così:

    Codice PHP:
    $dati= " INSERT INTO link (user_mail, url, title, desc, categ, user_key, ip, data, sub_categ, approved, stato) VALUES ('{$mail}','{$url}','{$title}','{$desc}','{$select}','{$key}','{$ip}','{$data},'','0','normal')";
    l'errore però è rimasto identico.

    -----------------------------------------------EDIT--------------------------------------------------------

    Siiiiiiiiiiiiiiiiiiiiiiiiiii! Ci sono riuscito!

    Il problema era nel nome di una tabella ( credo "desc" o "title" ) , ho provato a rinominarle come avevo fatto con "mail" e "key" e adesso funziona tutto, ecco il codice:

    Codice PHP:
    $dati= " INSERT INTO link (user_mail, site_url, site_title, site_desc, site_categ, site__key, user_ip, site_data, site_sub_categ, site_approved, site_stato) VALUES ('{$mail}','{$url}','{$title}','{$desc}','{$select}','{$key}','{$ip}','{$data}','','0','normal')";
    Ultima modifica di alterlinks : 31-12-2007 alle ore 11.51.04

  17. #17
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Prova a togliere lo spazio davanti a INSERT.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  18. #18
    Guest

    Predefinito

    @fancool: scusa, non ho fatto in tempo a leggere il tuo messaggio

    Comunque grazie a tutti quelli che mi hanno risposto, ciao

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •