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

    variabile per query select

    Non riesco a trovare l'errore nel mio codice; se c'è qualcuno che se la sente di leggerlo ho cercato di semplificarlo al massimo.

    Ho due tabelle:
    1) Cognome con campi: id_cognome,cognome;
    2) Nome con campi: id_nome, nome, rif_cognome.
    I campi Id_cognome e Rif_cognome collegano le due tabelle e sono chiave primaria e chiave esterna rispettivamente.

    Da una pagina con form (method = post) invio la variabile:

    $cognome = $_POST['cognome']

    in una pagina che riceve. In tale pagina eseguo due query:

    1)$result = mysql_query("SELECT * FROM Cognome WHERE cognome = '$cognome'");
    while ($records = mysql_fetch_row($result)) {
    echo $records[0];
    }
    $records[0] = id_cognome;

    2)$result = mysql_query("SELECT * FROM Nome WHERE rif_cognome = 'id_cognome'"),
    while8$records = mysql_fetch_row($result)) {
    echo $records[1];
    }


    Quello che vorrei è visualizzare il campo 'nome' corrispondente al 'cognome selezionato dal form. Assolutamente impossibile!!! Non risulta niente.

  2. #2
    E SE tu nella pagina della query stampi


    echo $_POST[cognome];

    cosa ti dice ?

  3. #3
    Grazie per avermi risposto.

    echo $_POST[cognome];

    mi visualizza il cognome senza problemi: ne deduco che la variabile passa; è dalla query che non viene presa!!

  4. #4
    Utente di HTML.it L'avatar di fabi080
    Registrato dal
    Mar 2002
    Messaggi
    442
    Non ho ben capito

    $cognome = $_POST['cognome']

    questo lo fai nella pagina che contiene il form?? Se è così è normale che nella pagina ricevente la variabile $cognome è vuota.

    E cmq anche se non capisco l'utilità di dividere in due tabelle nomi e cognomi puoi fare direttamente una sola query per collegarli

    codice:
    SELECT * FROM nome JOIN cognome ON (cognome.id_cognome = nome.rif_cognome)
      WHERE cognome = $cognome;

  5. #5

    Re: variabile per query select

    $result = mysql_query("SELECT * FROM Cognome WHERE cognome = '$cognome'");
    Prova a modificarla cosi:
    codice:
    $result = mysql_query("SELECT * FROM Cognome WHERE cognome = ".$cognome."");
    Lo stesso con l'altra select. Spero di non sbagliarmi ma a me sembra questo il problema
    Linux user number 395693| Acer TravelMate 4672WMLI powered by GNU/Linux Ubuntu 7.10

  6. #6
    Utente di HTML.it L'avatar di unicorn
    Registrato dal
    Aug 2004
    Messaggi
    176
    2)$result = mysql_query("SELECT * FROM Nome WHERE rif_cognome = 'id_cognome'"),
    while8$records = mysql_fetch_row($result)) {
    echo $records[1];
    }

    nel tuo codice dopo il while compare un 8, prova a corregerlo a vedere se funziona



  7. #7
    Assolutamente non ho detto di averlo fatto nella pagina che contiene il form, ma nella pagina che riceve. Inoltre capisco che l'esempio è banale ma è solo un esempio per non postare il vero codice che conterrebbe 6 variabili da passare alla query. Comunque proverò ad unire le due tabelle con JOIN ON.

  8. #8
    Utente di HTML.it L'avatar di fabi080
    Registrato dal
    Mar 2002
    Messaggi
    442
    Originariamente inviato da vicky
    Assolutamente non ho detto di averlo fatto nella pagina che contiene il form, ma nella pagina che riceve. Inoltre capisco che l'esempio è banale ma è solo un esempio per non postare il vero codice che conterrebbe 6 variabili da passare alla query. Comunque proverò ad unire le due tabelle con JOIN ON.
    Allora ho capito male io, scusami. Hai provato a fare
    Codice PHP:
    echo $cognome;
    echo 
    $query
    prima di eseguire la query, controlla che i loro valori siano quelli che veramente ti aspetti, e se è così prova ad eseguire la query manualmente per vedere se per caso dà in output 0 record, potrebbe anche essere quello il problema.

    Poi scusa ma mi sfugge il significato di questa
    $records[0] = id_cognome;

  9. #9
    Originariamente inviato da vicky
    Grazie per avermi risposto.

    echo $_POST[cognome];

    mi visualizza il cognome senza problemi: ne deduco che la variabile passa; è dalla query che non viene presa!!
    SE ti stampa $_POST[cognome] nella pagina in cui tu passi il valore con una query di sto tipo :

    Codice PHP:

    $resutl 
    mysql_query("SELECT * FROM Cognome WHERE cognome = '$cognome'");// dove Cognome è il nome della tabella e cognome è il nome del campo
    while ($data mysql_fetch_object($result)){

    echo 
    $data->cognome//cioè il nome del campo

    per me deve funzionare

  10. #10
    $record[0]=id_cognome;

    serve per dare un valore a id_cognome che utilizzerò nella clausola WHERE della seconda query.

    echo $cognome; visualizza il cognome, come dicevo anche prima
    echo $query; visualizza la nuova query che ho fatto con il JOIN ON:

    al posto di $Cognome nella clausola WHERE vedo il cognome che ho selezionato dal from della pagina precedente. Ma di vedere il risultato di questa query non se ne parla.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.