Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Query che funziona male

    Non capisco per quale motivo mi da problemi:

    Codice PHP:
    echo "Inserisci:
    "
    ;                 
    $query2 "SELECT chiave1 FROM tabella";                                
    $res2 mysql_query($query2,$conn);                                 
    $num mysql_num_rows($res);                                 
    echo 
    $num;                                 
    echo 
    "<select name=\"tabella1\" >";                                 
    echo
    "<option value=\"1\">1</option>";                                 
    while(
    $row=mysql_fetch_array($res2)){                     
    $chiave1 $row['chiave1'];                     
    echo
    "<option value=\"$chiave1\">$chiave1</option>";                                 }                    
    echo
    " </select>";                                 
    $query3 "SELECT chiave2 FROM tabella";                                 
    $res3 mysql_query($query3,$conn);                                 
    echo 
    "<select name=\"tabella2\" >";                                 
    echo 
    "<option value=\"tabella2\">tabella2</option>";                                 
    while(
    $row=mysql_fetch_array($res3)){                     
    $tab2 $row['chiave2'];                     
    echo 
    "<option value=\"$tab2\">$tab2</option>";                                 }                    
    echo
    " </select>";                                 
    $query4 "SELECT chiave3 FROM tabella";                                 
    $res4 mysql_query($query4,$conn);                                 
    echo 
    "<select name=\"tipo\" >";                                 
    while(
    $row=mysql_fetch_array($res4)){                     
    $tipo $row['chiave3'];                     
    echo
    "<option value=\"$tipo\">$tipo</option>";                                 }                    
    echo
    " </select>

    "

    Tabella ha 3 chiavi. Ho 3 record:

    Chiave1: ciao, Chiave2: bello, Chiave3: marco
    Chiave1: ciao, Chiave2: bello, Chiave3: matteo
    Chiave1: ciao, Chiave2: bello, Chiave3: ciccio

    Ho 3 select affiancate in cui in teoria (ho contato con $num il numero di record restituiti) nella prima ho solo ciao, nella seconda solo bello e nella terza marco, matteo e ciccio.
    Invece in tutte e 3 le select che eseguo mi si stampano 3 opzioni e nelle prime 2 ho 3 volte ciao e 3 volte bello.
    Come è possibile??? Come faccio per sistemare sta cosa?

  2. #2
    up

  3. #3

    Re: Query che funziona male

    Sarebbe troppo facile fare così?

    codice:
    SELECT chiave1, chiave2, chiave3 FROM tabella
    facendo una sola SELECT piuttosto che 3.

    Perchè semplificare le cose quando complicarle non costa nulla?
    Magari una ripassatina all'SQL.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  4. #4

    Re: Re: Query che funziona male

    Originariamente inviato da satifal
    Sarebbe troppo facile fare così?

    codice:
    SELECT chiave1, chiave2, chiave3 FROM tabella
    facendo una sola SELECT piuttosto che 3.

    Perchè semplificare le cose quando complicarle non costa nulla?
    Magari una ripassatina all'SQL.
    Questa cosa l'ho fatta proprio perchè facendo come tu dici mi mandava comunque 3 elementi nella select...
    Ho pensato che dato che nell'sql facendo una query che da 3 risultati uguali me ne stampava uno solo avrei risolto il problema. Invece mi ritrovo comunque 3 valori uguali e non so come risolvere...

  5. #5
    Se il contenuto della tabella è il seguente:

    Chiave1: ciao, Chiave2: bello, Chiave3: marco
    Chiave1: ciao, Chiave2: bello, Chiave3: matteo
    Chiave1: ciao, Chiave2: bello, Chiave3: ciccio

    è ovvio che nelle select hai rispettivamente (ciao, ciao, ciao), (bello, bello, bello) e (marco, matteo, ciccio)

    Cosa ti aspetteresti?
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  6. #6
    Originariamente inviato da satifal
    Se il contenuto della tabella è il seguente:

    Chiave1: ciao, Chiave2: bello, Chiave3: marco
    Chiave1: ciao, Chiave2: bello, Chiave3: matteo
    Chiave1: ciao, Chiave2: bello, Chiave3: ciccio

    è ovvio che nelle select hai rispettivamente (ciao, ciao, ciao), (bello, bello, bello) e (marco, matteo, ciccio)

    Cosa ti aspetteresti?
    Ho fatto
    $num = mysql_num_rows($res);
    e l'ho stampato. Risulta 1 nei primi 2 casi e 3 nell'ultimo caso... Ecco perchè non capisco

  7. #7
    1.
    Codice PHP:
    $num mysql_num_rows($res);                                 
    echo 
    $num
    lo vedo solo nel primo caso e non negli altri 2.

    2.
    Codice PHP:
    $num mysql_num_rows($res); 
    E' sbagliato dato che il resultset è $res2 mentre tu usi $res

    3.
    Cosa dovrebbe centrare
    Codice PHP:
    $num mysql_num_rows($res); 
    col problema delle ripetizioni?
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  8. #8
    Era solo per fare la prova!
    Cmq ho risolto usando distinct .
    Mi ricordavo male... Credevo che il distinct nel caso in cui c'era una colonna sola era di default

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.