Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2008
    Messaggi
    22

    URGENTISSIMO: Problema menų a tendina dinamici in php

    Ciao a tutti!
    Allora ho quasi finito la mia tesi sulla realizzazione di un portale per la gestione di un condominio, l'ultima cosa che mi sta bloccando sono questi dannati menų a tendina.
    Il problema č il seguente:

    All'inizio per, ad esempio, eliminare un condomino, portavo l'utente in una pagina dove c'erano tre menų a tendina, uno per selezionare il cognome, uno per il nome, uno per la data di nascita e cosė funzionava tutto.

    Purtroppo per me il prof vuole che faccia un unico menu a tendina in cui compaia contempareneamente l'elenco dei tre valori, quindi l'utente in un colpo solo seleziona nome cognme e data.

    Ho creato un codice in cui questo dovrebbe succedere, solo che quando vado a verificare compare si, il nome il cognome e la data, perō solo dell'ultimo condomino!!!! cioč mi da un solo valore ( uno solo condomino), non mi riporta tutta la lista dei condomini.

    Di seguito vi scrivo il codice:

    <?php

    session_start();
    $prova=$_SESSION["type"];
    if($prova=='Amministratore'){

    $odbc_dns = "Latella";
    $odbc_userid = "";
    $odbc_password = "";

    $query1 = "SELECT Cognome
    FROM Condomino
    Order by Cognome";


    if ( !( $odbc_db = odbc_connect($odbc_dns, $odbc_userid, $odbc_password) ) )
    die("Could not connect to ODBC data source $odbc_dns");

    if ( !( $odbc_rs1 = odbc_do($odbc_db, $query1) ) )
    die("Error executing query $query1");

    $num_cols = odbc_num_fields($odbc_rs1);
    if ($num_cols < 1)
    die("Query retured an empty set");

    while( odbc_fetch_row($odbc_rs1) )
    {
    for($a = 1; $a <= $num_cols; $a++)

    $cognome= odbc_result($odbc_rs1, $a);
    }

    $query2 = "SELECT Nome
    FROM Condomino
    Order by Cognome";

    if ( !( $odbc_db = odbc_connect($odbc_dns, $odbc_userid, $odbc_password) ) )
    die("Could not connect to ODBC data source $odbc_dns");

    if ( !( $odbc_rs2 = odbc_do($odbc_db, $query2) ) )
    die("Error executing query $query2");

    $num_cols = odbc_num_fields($odbc_rs2);
    if ($num_cols < 1)
    die("Query retured an empty set");

    echo "<select>";

    while( odbc_fetch_row($odbc_rs2) )
    {
    for($a = 1; $a <= $num_cols; $a++)

    $nome= odbc_result($odbc_rs2, $a);
    }

    $query3 = "SELECT Data_di_nascita
    FROM Condomino
    Order by Cognome";

    if ( !( $odbc_db = odbc_connect($odbc_dns, $odbc_userid, $odbc_password) ) )
    die("Could not connect to ODBC data source $odbc_dns");

    if ( !( $odbc_rs3 = odbc_do($odbc_db, $query3) ) )
    die("Error executing query $query3");

    $num_cols = odbc_num_fields($odbc_rs3);
    if ($num_cols < 1)
    die("Query retured an empty set");

    while( odbc_fetch_row($odbc_rs3) )
    {
    for($a = 1; $a <= $num_cols; $a++)

    $data= odbc_result($odbc_rs3, $a);
    }

    $query4 = "SELECT ID
    FROM Condomino
    Order by Cognome";

    if ( !( $odbc_db = odbc_connect($odbc_dns, $odbc_userid, $odbc_password) ) )
    die("Could not connect to ODBC data source $odbc_dns");

    if ( !( $odbc_rs4 = odbc_do($odbc_db, $query4) ) )
    die("Error executing query $query4");

    $num_cols = odbc_num_fields($odbc_rs4);
    if ($num_cols < 1)
    die("Query retured an empty set");


    while( odbc_fetch_row($odbc_rs4) )
    {
    for($a = 1; $a <= $num_cols; $a++)

    $id = odbc_result($odbc_rs4, $a);

    }

    echo"<option value=" . $id . " >" . $cognome . " " . $nome . " " . $data . "";

    echo "</select>";

    echo "<input type='hidden' name='id' value='" . $id . "'>";
    echo "<input type='hidden' name='Cognome' value='" . $cognome . "'>";
    echo "<input type='hidden' name='Nome' value='" . $nome . "'>";
    echo "<input type='hidden' name='Data' value='" . $data . "'>";
    }

    else{
    header("location:../SessioneScaduta.php");
    exit;
    }
    ?>


    I valori $cognome, $nome, $data e $id, sono dei risultati che escono da cicli for, quindi sono elenchi di tutti i valori del mio database...e invece mi riporta solo un valore "Cognome Nome Data" se clicco sulla freccetta del menų a tendina c'č solo l'ultimo condomino.

    Ragazzi devo riuscire a risolvere il problema entro questa settimana..perchč se mi salta la sessioni di laurea mia mamma mi ammazza...ahauiahuiaha...AIUTO!!!!!!

  2. #2
    posta il codice tra i tag php

  3. #3
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    Io farei una bella revisione al codice:
    - fai una sola query che ti estragga tutti i dati che ti servono contemporaneamente;
    - poi fai il ciclo while per creare la select mettendo le variabili estratte dalla query.

    Puoi usare l'array che ottieni dalla query cosė:
    Codice PHP:
    while ($risultati=odbc_fetch_row($query){
    qui metti per stampare la select usando $risultati[idecc.

    Prova... conta che le funzioni per connessione odbc non le ho mai usate...

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2008
    Messaggi
    22
    Ho modificato il codice seguendo i tuoi consigli:

    <?php

    session_start();
    $prova=$_SESSION["type"];
    if($prova=='Amministratore'){

    $odbc_dns = "Latella";
    $odbc_userid = "";
    $odbc_password = "";


    $query1 = "SELECT ID, Cognome, Nome, Data_di_nascita
    FROM Condomino
    Order by Cognome";


    if ( !( $odbc_db = odbc_connect($odbc_dns, $odbc_userid, $odbc_password) ) )
    die("Could not connect to ODBC data source $odbc_dns");

    if ( !( $odbc_rs1 = odbc_do($odbc_db, $query1) ) )
    die("Error executing query $query1");

    $num_cols = odbc_num_fields($odbc_rs1);
    if ($num_cols < 1)
    die("Query retured an empty set");

    echo "<select>";

    while( odbc_fetch_row($odbc_rs1) )
    {
    for($a = 1; $a <= $num_cols; $a++)

    $risultati= odbc_result($odbc_rs1, $a);

    echo"<option value=" . $risultati[1] . ">" . $risultati[2] . " " . $risultati[3] . " " . $risultati[4] . "";

    }

    echo "</select>";

    }

    else{
    header("location:../SessioneScaduta.php");
    exit;
    }
    ?>

    Dove $risultati[1] dovrebbe essere l'ID del condomino che viene passato e gli altri tre sono Cognome, Nome e Data_di_nascita che dovrebbero essere visualizzati nel menu a tendina.

    Purtroppo ottengo un menų a tendina con valori senza senso.

  5. #5
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    senza senso in che senso?

    improvviso un po' dopo aver letto il manuale
    Codice PHP:
    while( odbc_fetch_row($odbc_rs1) ) { 
    $idodbc_result($odbc_rs11);
    $cognomeodbc_result($odbc_rs12);
    $nomeodbc_result($odbc_rs13);
    $dataodbc_result($odbc_rs14);

    echo
    "<option value=" $id ">" $cognome " " $nome " " $data "";  

    SE funziona non č certo il massimo "stilisticamente"
    ma al limite vediamo di darli un'addrizzata in seguito

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2008
    Messaggi
    22
    IO TI AMO

  7. #7
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197


    allora il problema sta nel for... bisogna fare in modo che l'indice scorra "in orizzontale"
    vedi tu se ti interessa fare un qualcosa di pių carino... anche se cosė il risultato mi pare buono

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2008
    Messaggi
    22
    ADESSO MI POSSO LAUREARE.

    GRAZIE MILLE!!!!

    L'ASSISTENTE DEL PROF (BASTARDO) NON MI AVEVA DETTO CHE POTEVO USARE QUESTO COMANDO...SONO SVEGLIO DA 15 ORE....IO TI AMO

  9. #9
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    Guarda che non č niente di trascendentale (io sono abbastanza un artigiano di programmazione)...

    odbc_result crea un array con tutti i campi di odbc_fetch_row: puoi selezionare i singoli campi sia con i numeri progressivi (come abbiamo fatto noi) oppure con i nomi dei campi.

    Il tuo codice era corretto, cercavi di fare la stessa cosa, ma avevi sbagliato la sintassi. Ed il ciclo for non ti aiutava di sicuro.

    Comunque sono contento per te, in bocca al lupo per l'esame di laurea

    Spacca tutto

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2008
    Messaggi
    22
    Lo so..ma quando chiedi qualcosa ad un assistente che si secca (e sottolineo che si secca) ad aiutarti oppure si inventa la scusa del "non ho tempo"...succede che uno alla fine resta bloccato per queste scemenze.

    Cmq ancora grazie 1000.

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.