Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23
  1. #1

    Query non funzionante...

    Ciao a tutti. Arrivo subito al problema.
    Ho creato un prototipo di forum sul mio sito, con pochi ed essenziali file, di cui vi faccio un breve elenco.

    * config.php (che fornisce le credenziali del mio MySql);
    * index.php (che legge il database strutturato in tre tabelle che sono "categorie", "topics", "messaggi" e stampa le categorie contenute nella prima tabella);
    * forum.php (che stampa i topic contenuti in ogni categoria);
    * topic.php (che stampa il contenuto del singolo topic e delle risposte);
    * new.php (che serve per la creazione di un nuovo topic);
    * reply.php (per le risposte).

    Ebbene, nella pagina forum.php è presente un link per la creazione di un nuovo topic e per farlo si serve della funzione SELECT MAX per associare al nuovo topic un nuovo id.

    Quindi, ecco il codice che ho nel file forum.php

    codice:
    $query3 = @mysql_query("SELECT MAX(id) FROM topics");
    $result3 = @mysql_fetch_array($query3);
    $topic_id = $result3[topic_id]+1;
    echo "<a href=\"new.php?f=$_GET[f]&t=$topic_id\">";
    echo "Nuovo topic</div></a>";

    Infatti la tabella Topics è strutturata in ID, IDCATEGORIA, AUTORE, DATA, TITOLO, TESTO

    Il problema è che il link a "Nuovo topic" rimane sempre ht*p://mioindirizzo.it/new.php?f=1&t=1

    In cui il valore di f varia nel modo giusto, mentre quello di t rimane costantemente 1, poichè riconosce dalla query il valore 0.

    Mi sapete dire dove sbaglio?!

    Grazie mille
    Laura Pausini ♥
    Bellissima Così

  2. #2

  3. #3
    Originariamente inviato da kylnas1
    codice:
    $result3["id"]
    Niente..
    Laura Pausini ♥
    Bellissima Così

  4. #4

  5. #5
    Originariamente inviato da kylnas1
    Vero, prova con:
    codice:
    $result3[0]
    Sì sì sììììì
    Tu sei un angeloooo!!! Ho perso un pomeriggio intero...

    Penso di dovermi affidare più spesso a questo forum

    grazie mille :
    Laura Pausini ♥
    Bellissima Così

  6. #6
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120

    Re: Query non funzionante...

    Originariamente inviato da sciueferrara
    Ebbene, nella pagina forum.php è presente un link per la creazione di un nuovo topic e per farlo si serve della funzione SELECT MAX per associare al nuovo topic un nuovo id.
    E' un approccio terrificante.
    Se mai il tuo forum raggiungerà la quota di DUE utenti, prova ad immaginare cosa succederà quando questi due visiteranno la stessa pagina a distanza di pochi secondi.....

  7. #7
    Sono daccordo, è un approccio sbagliato come concetto e come codice.

    Come codice prova:

    Codice PHP:
    $query3 = @mysql_query("SELECT MAX(id) AS quanto FROM topics");
    $result3 = @mysql_fetch_array($query3);
    $topic_id $result3["quanto"]+1;
    echo 
    "<a href=\"new.php?f=$_GET[f]&t=$topic_id\">";
    echo 
    "Nuovo topic</div></a>"
    Ma...perchè non usi un autoincremento dell'id ?

  8. #8
    Come dovrei fare?
    Laura Pausini ♥
    Bellissima Così

  9. #9
    Nella tabella interessata specifichi che il campo ID (che suppongo sia la chiave primaria) abbia l'attributo "autoincrement".
    Quando inserisci un nuovo record non specifichi l'ID oppure le assegni il valore NULL.
    Il db assegna all'ID automaticamente il prossimo valore libero.
    La funzione mysql_insert_id($connection) , chioamata dopo l'insert, ti restituisce tale indice (o zero in caso di errore).

    Ripassati mysql se vuoi procedere bene.

  10. #10
    Originariamente inviato da softhare
    Nella tabella interessata specifichi che il campo ID (che suppongo sia la chiave primaria) abbia l'attributo "autoincrement".
    Quando inserisci un nuovo record non specifichi l'ID oppure le assegni il valore NULL.
    Il db assegna all'ID automaticamente il prossimo valore libero.
    La funzione mysql_insert_id($connection) , chioamata dopo l'insert, ti restituisce tale indice (o zero in caso di errore).

    Ripassati mysql se vuoi procedere bene.
    Sì, l'ID è chiave primaria ed è già autoincrement.
    Mi potresti aiutare sulla seconda parte del tuo messaggio? grazie mille.
    Laura Pausini ♥
    Bellissima Così

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.