Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    49

    Problema con una select

    Ho 2 tabelle chiamate grandi_categorie e categorie
    grandi_categorie: Codgrandecategoria grandecategoria
    e
    categorie: Codcategoria categoria Codgrandecategoria grandecategoria

    //1 aggiorno la colonna grandi_categorie
    $inserimento_grande_categoria="INSERT INTO grandi_categorie (grandecategoria)
    VALUES('$_POST[grandecategoria]')";
    $grande_categoria_inserita = mysql_query($inserimento_grande_categoria);

    //2 vorrei prelevare il codice associato alla grandecategoria(Codgrandecategoria) che ho appena inserito

    $prelevo_ID_grande_categoria="SELECT grandi_categorie (Codgrandecategoria)
    WHERE grandecategoria = '$_POST[grandecategoria]'";
    $ID_grande_categoria_prelevato= mysql_query($prelevo_ID_grande_categoria);

    //3 vorrei inserire categoria, Codgrandecategoria, grandecategoria nella tabella categorie

    $inserimento_categoria="INSERT INTO categorie (categoria, Codgrandecategoria, grandecategoria)
    VALUES('$_POST[categoria]','$ID_grande_categoria_prelevato','$_POST[grandecategoria]')";
    $categoria_inserita = mysql_query($inserimento_categoria);

    Il punto 1 riesco il 2 ed il 3 no, sapreste dirmi il perchè?

    Di seguito vi riporto anche il form html se vi può essere utile...

    <form method="POST" action="inserimento_grande_cat_sotto.php">
    Nome grande categoria:<input type="text" name="grandecategoria" size="25"></td> <align="center"></p>
    Nome categoria:<input type="text" name="categoria" size="25"></td> <align="center">
    <input type="submit" value="Inserisci" name="B1">
    </br>
    </form>

    Grazie!!

  2. #2
    Ciao,

    questa query:
    Codice PHP:
    $prelevo_ID_grande_categoria="SELECT grandi_categorie (Codgrandecategoria)
    WHERE grandecategoria = '
    $_POST[grandecategoria]'"
    è errata. L'utilizzo corretto della SELECT è:
    codice:
    SELECT nome_campo FROM tabella WHERE condizioni
    Nel tuo caso diventa:
    Codice PHP:
    $prelevo_ID_grande_categoria="SELECT Codgrandecategoria FROM grandi_categorie 
    WHERE grandecategoria = '
    $_POST[grandecategoria]'"
    Inoltre $ID_grande_categoria_prelevato nel tuo caso non conterrebbe comunque il dato da te voluto perchè
    Codice PHP:
    $ID_grande_categoria_prelevato=mysql_query($inserimento_categoria); 
    Contiene il riferimento al risultato della ricerca, non il valore da te cercato.
    Per ricavare il valore devi utilizzare altre funzioni come ad esempio mysql_fetch_array()

    Se il campo Codgrandecategoria è un campo numerico con auto_increment, tutto quello scritto sopra è comunque inutile, perchè dopo l'inserimento puoi ricavare l'ID dell'ultimo dato inserito con:
    Codice PHP:
    $ID_grande_categoria_prelevato=mysql_insert_id(); 
    Dal punto di vista della struttura delle tabelle non ha poi molto senso memorizzare nella seconda lo stesso dato ($_POST[grandecategoria]) già inserito nella prima e da questa recuperabile quando necessario.

    Alessandro
    Full Stack Developer presso Advice Lab
    Bonus Bitcoin
    Moon Bitcoin

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    49
    Hai perfettamente ragione. Grazie! Funziona.
    per quella cosa riguardante le tabelle ll'avevo rivista.
    Grazie ancora

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.