Visualizzazione dei risultati da 1 a 6 su 6

Discussione: selezione dati DB

  1. #1
    Utente di HTML.it L'avatar di noos
    Registrato dal
    Jul 2003
    Messaggi
    1,001

    selezione dati DB

    ciao, ho il seguente problema

    in un db ho una tabella con i campi
    nome
    indirizzo
    città
    paese
    telefono
    ID


    riempiti e fin quì nessun problema

    da questa pagina

    Codice PHP:

    <HTML>
    <BODY>
    <CENTER>[B] Visualizza un record della tabella personale [/B]</CENTER>

    <?php
    # include il file esterno
    //include
    require ("connect.php");


    $sql="SELECT nome,ID FROM personale";

    $risultati_mysql=mysql_query($sql,$connessione);
    $num_righe=mysql_num_rows($risultati_mysql);

    if  ( 
    $num_righe == ) {
    echo 
    "Spiacente, non ci sono informazioni";
    } else {
    # abbiamo dei record
    echo "<FORM METHOD=GET  ACTION=\"prova.php\">";
    echo 
    "Per favore, seleziona una persona 
    "
    ;
    echo 
    "<SELECT NAME=\"ID_record\">";
    while (
    $riga=mysql_fetch_array($risultati_mysql))
    {
    $nome=$riga["nome"];
    $ID=$riga["ID"];
    # mostra i risultati
    echo "<OPTION VALUE=\"$ID\" >$nome";

    }
    echo 
    "</SELECT>";
    # fine dell'else
    echo "

    "
    ;
    echo 
    "<INPUT TYPE=\"SUBMIT\" VALUE=\"Vedi le informazioni!\">";
    echo 
    "<INPUT TYPE=\"RESET\" VALUE=\"Cancella!\">";
    mysql_close($connessione);
    ?>
    </FORM>
    </BODY>
    </HTML>

    prelievo dal db i nomi delle persone

    e li visualizzo in un menù a tendina


    selezionando un nome visualizzo tutti i dati della persona scelta

    l'elaborazione viene fatta con questa pagina



    file prova.php

    Codice PHP:
    <HTML>
    <BODY>
    <?php

    # include il file esterno
    //include
    require ("connect.php");

    $sql="SELECT * FROM personale WHERE ID = '$ID_record'";

    $risultati_mysql=mysql_query($sql,$connessione);
    $num_righe=mysql_num_rows($risultati_mysql);

    if  ( 
    $num_righe == ) {
    echo 
    "Spiacente, non ci sono informazioni";
    } else {
    # abbiamo dei risultati
    echo "<TABLE ALIGN=\"CENTER\"  BORDER=\"3\">";
    echo 
    "<TR><TH>nome</TH><TH>Indirizzo</TH><TH>Città</TH><TH>Paese</TH></TR>";

    while (
    $riga=mysql_fetch_array($risultati_mysql))
    {
    $nome=$riga["nome"];
    $indirizzo=$riga["indirizzo"];
    $città=$riga["città"];
    $paese=$riga["paese"];
    $ID=$riga["ID"];
    # mostra i risultati
    echo "<TR><TD>$nome</TD><TD>$indirizzo</TD><TD>$città</TD><TD>$paese</TD></TR>";
    }
    # fine dell'else
    mysql_close($connessione);
    ?>

    </TABLE>

    </BODY>
    </HTML>

    il problema è questo qualunque persona che seleziono visualizzo sempre lo stesso nome con ID
    0

    help!!!!
    Vola solo chi ha il coraggio di farlo

  2. #2
    Utente di HTML.it L'avatar di kodode
    Registrato dal
    Sep 2002
    Messaggi
    1,896
    mi dici una cosa? se tu fai stampare a video l'sql, che stampa? ossia:

    Codice PHP:
    <HTML> 
    <BODY> 
    <?php 

    # include il file esterno 
    //include 
    require ("connect.php"); 

    $sql="SELECT * FROM personale WHERE ID = '$ID_record'"
    echo 
    $sql;
    ....
    che stampa?

  3. #3
    Non assegni un valore alla variabile $ID_record, le variabili vengono valorizzate automaticamente solo con la direttiva register_globals on (ma ormai e' off di default credo su ogni sistema php).

    Codice PHP:
    if (is_int($_GET['ID_record'])) {
        
    $ID_record $_GET['ID_record'];
    } else {
        exit(
    "ID_record non valido");


  4. #4
    Utente di HTML.it L'avatar di noos
    Registrato dal
    Jul 2003
    Messaggi
    1,001
    Originariamente inviato da kodode
    mi dici una cosa? se tu fai stampare a video l'sql, che stampa? ossia:

    Codice PHP:
    <HTML> 
    <BODY> 
    <?php 

    # include il file esterno 
    //include 
    require ("connect.php"); 

    $sql="SELECT * FROM personale WHERE ID = '$ID_record'"
    echo 
    $sql;
    ....
    che stampa?
    questo

    $sql="SELECT * FROM personale WHERE ID =
    Vola solo chi ha il coraggio di farlo

  5. #5
    Utente di HTML.it L'avatar di kodode
    Registrato dal
    Sep 2002
    Messaggi
    1,896
    vedi? come ha detto giustamente K.B. , non ti prendi il valore di $ID_record

    quindi devi prima di tutto inserire:

    $ID_record = $_GET['ID_record'];
    (qui vedi tu se inserire un controllo di esistenza come suggerito da kb)

    e poi per sicurezza io modificherei cosi:
    Codice PHP:
    <HTML> 
    <BODY> 
    <?php 

    # include il file esterno 
    //include 
    require ("connect.php"); 

    $ID_record $_GET['ID_record']; 
    $sql="SELECT * FROM personale WHERE ID = '" $ID_record "'"
    ....
    anche se $ID_record sarà un numero e quindi dovrebbe essere bastare:
    $sql="SELECT * FROM personale WHERE ID = $ID_record " ;

    prova un pò...

  6. #6
    Utente di HTML.it L'avatar di noos
    Registrato dal
    Jul 2003
    Messaggi
    1,001
    Originariamente inviato da k.b
    Non assegni un valore alla variabile $ID_record, le variabili vengono valorizzate automaticamente solo con la direttiva register_globals on (ma ormai e' off di default credo su ogni sistema php).

    Codice PHP:
    if (is_int($_GET['ID_record'])) {
        
    $ID_record $_GET['ID_record'];
    } else {
        exit(
    "ID_record non valido");



    grande!!!!!!!!!!


    ho risolto grazie 1000
    Vola solo chi ha il coraggio di farlo

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.