Visualizzazione risultati 1 fino 8 di 8

Discussione: Problema in php.. Con select e $_session

  1. #1
    Guest

    Predefinito Problema in php.. Con select e $_session

    Codice PHP:
    <?php
    session_start
    ();
    include(
    "connetti.php");
    $_SESSION["codalunno"]=$_POST["codalunno"];
    $_SESSION["password"]=$_POST["password"];

    $sqlcmd = "SELECT nome,cognome FROM Alunno WHERE codalunno = '".$_SESSION['codalunno']."'"; //è qui il problema?
    echo "Comando SELECT: $sqlcmd <hr size=4>";
    //eseguire la query
    $Risultato = mysql_query( $sqlcmd );
    if (!
    $Risultato) exit ("Errore nell'interrogazione: <br> $sqlcmd ");
    else
    {
    //il risultato della query viene formattato in formato HTML
    print("
    <table border=1 bgcolor=yellow>
    <tr style = font-weight: bold> <td><b> nome </b></td>
    <td><b> cognome </b></td></tr>"
    );
    while (
    $Dati = mysql_fetch_object($Risultato))
    {
    print(
    "<tr><td>" .$Dati->nome. "</td>");
    print(
    "<td>" .$Dati->cognome. "</td></tr>");
    }
    }
    print(
    "</table>");
    mysql_close($connessione);
    ?>


    Credo di aver capito la parte di codice che non mi produce il risultato atteso. La variabile "codalunno" è una variabile che è contenuta sia nel mio db e anche in input tramite un form di login. Io vorrei metterle a confronto per poi ottenere altri dati del mio db. Dove sbaglio?

  2. #2
    Guest

    Predefinito

    ma che errore ti dà? perché non posti qualcosa, tipo errori ecc.?

    perché usi $Dati->nome?? da una parte fai in un modo $_POST['nome'] e dall'altra in un altro...
    tipicamente le variabili sono tutte minuscole...
    poi puoi fare una cosa molto semplice per capire se la tua query è fatta bene o meno... fai un echo della query la copi e la incolli in phpmyadmin nella sezione SQL e vedi il risultato...

  3. #3
    Guest

    Predefinito

    $_SESSION["codalunno"]=$_POST["codalunno"];

    Cosa vuol dire???Cosa stai cercando di fare in questa dichiarazione?Vuoi mettere a confronto $_session con $_post?Se codalunno è presente nel DB non la recuperi in Post in quel modo, e se scrivi
    print $_session['codalunno'];
    Cosa stampa?È sbagliata la query, stai dicendo seleziona nome e cognome dalla tabella alunno dove l'alunno è uguale all'utente loggato.$_session recupera i valori dell'utenza alla session_start() a meno che tu non abbia impostato altre cose particolari, quindi quell'$_session codalunno cosa stampa?
    Vedo che hai fatto l'eco della query cosa ti scrive?
    Ultima modifica di fractalcosmo : 10-06-2015 alle ore 00.58.11

  4. #4
    Guest

    Predefinito

    Citazione Originalmente inviato da fractalcosmo Visualizza messaggio
    $_SESSION["codalunno"]=$_POST["codalunno"];

    Cosa vuol dire???Cosa stai cercando di fare in questa dichiarazione?Vuoi mettere a confronto $_session con $_post?Se codalunno è presente nel DB non la recuperi in Post in quel modo, e se scrivi
    print $_session['codalunno'];
    Cosa stampa?È sbagliata la query, stai dicendo seleziona nome e cognome dalla tabella alunno dove l'alunno è uguale all'utente loggato.$_session recupera i valori dell'utenza alla session_start() a meno che tu non abbia impostato altre cose particolari, quindi quell'$_session codalunno cosa stampa?
    Vedo che hai fatto l'eco della query cosa ti scrive?
    voglio fare proprio questo, visualizzare nome e cognome dalla tabella alunno dove l'alunno è uguale all'utente loggato.. come dovrei impostarla..

    Ora mi crea solo la tabella senza risultati
    se nella query non faccio confronti e chiedo di visualizzare tutti i nomi presenti nel db funziona,
    quindi il problema è come dici tu nella query o nel confronti tra l'utente del db e quello loggato..

    come posso impostare il codice per avere questo risultato

  5. #5
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,145

    Predefinito

    Ma visto che fa l'echo della query, non riesci a capire cosa non va? Cosa stampa? (al più provala da phpMyAdmin come dice demenziale)

    se nella query non faccio confronti e chiedo di visualizzare tutti i nomi presenti nel db funziona
    Quindi senza la clausola "WHERE", funziona tutto? Probabilmente c'é qualcosa di errato nel contenuto del parametro...

    Ciao!
    Ultima modifica di alemoppo : 10-06-2015 alle ore 17.55.43

  6. #6
    Guest

    Predefinito

    Una cosa non mi è chiara, vuoi sapere chi si è loggato al sito o vuoi mostrare il nome e cognome all'utente che ha effettuato in login con il suo nome utente?
    Se ho capito bene vuoi fare la seconda cosa, cioè io mi connetto con un nome utente e tu vuoi farmi vedere anche il nome e cognome?Se è così dipende dalla tabella dove hai il campo codalunno e se nella tabella alunni hai il campo codalunni,se il campo codalunno non è nella stessa tabella di alunni puoi fare una join :

    http://www.w3schools.com/sql/sql_join.asp

    E dopo inserisci dentro la session il risultato e mostri nome e cognome all'utente loggato, avendo ovviamente una chiave che unisca le due tabelle.Altrimenti non riesco bene a capire l'utilità di recuperare nome e cognome perchè non conosco il contesto.
    Quell' $_post['codalunno'] che cos'è?da dove lo stai prendendo quel parametro in post?come viene valorizzato?Dalla input di login?
    Se viene preso dalla input di login devi rivedere come si inseriscono i dati dentro la session, perchè in questo modo non è corretto.
    Non si capisce bene quello che vuoi ricavare.
    L'utente loggato deve essere per foza dentro il DB se no come fa a loggarsi, però se vuoi semplicemente verificare che un nome qualsiasi passato in post sia presente o meno tra gli studendi non serve la $_session...Spiegami meglio

    Ps:stai cercando di recuperare i parametri per una session?
    Ultima modifica di fractalcosmo : 10-06-2015 alle ore 20.14.47

  7. #7
    Guest

    Predefinito

    Citazione Originalmente inviato da fractalcosmo Visualizza messaggio
    Una cosa non mi è chiara, vuoi sapere chi si è loggato al sito o vuoi mostrare il nome e cognome all'utente che ha effettuato in login con il suo nome utente?
    Se ho capito bene vuoi fare la seconda cosa, cioè io mi connetto con un nome utente e tu vuoi farmi vedere anche il nome e cognome?Se è così dipende dalla tabella dove hai il campo codalunno e se nella tabella alunni hai il campo codalunni,se il campo codalunno non è nella stessa tabella di alunni puoi fare una join :

    http://www.w3schools.com/sql/sql_join.asp

    E dopo inserisci dentro la session il risultato e mostri nome e cognome all'utente loggato, avendo ovviamente una chiave che unisca le due tabelle.Altrimenti non riesco bene a capire l'utilità di recuperare nome e cognome perchè non conosco il contesto.
    Quell' $_post['codalunno'] che cos'è?da dove lo stai prendendo quel parametro in post?come viene valorizzato?Dalla input di login?
    Se viene preso dalla input di login devi rivedere come si inseriscono i dati dentro la session, perchè in questo modo non è corretto.
    Non si capisce bene quello che vuoi ricavare.
    L'utente loggato deve essere per foza dentro il DB se no come fa a loggarsi, però se vuoi semplicemente verificare che un nome qualsiasi passato in post sia presente o meno tra gli studendi non serve la $_session...Spiegami meglio

    Ps:stai cercando di recuperare i parametri per una session?
    l'alunno si logga al sito tramite un form dove deve inserire codalunno e password.. al click su entra si avvia una query che confronta il codice alunno dato in input con il codalunno presente nel db e mi mostra nome e cognome dell'alunno corrispondente


    questo è il login.html (la parte essenziale)
    <div class="content">
    <!--ID ALUNNO--><input type="text" name="codalunno" class="input alunno" value="Codice Aluno"><!--END USERNAME-->
    <!--PASSWORD--><input type="password" name="password" class="input password" value="Password"><!--END PASSWORD-->
    </div>
    <!--END CONTENT-->

  8. #8
    Guest

    Predefinito

    Ahhh behh un momento, stai facendo un login vero e proprio, la session parte dopo nel senso la scrivi a inizio file ma la imposti dentro l'if di utente presente o success della query, prima recuperai il parametro e la pass con $codalunno = $_post['codalunno'] e $password = $_post etc... poi interrogherai il db passandogli i valori di $codalunno e $password, se l'utente è presente reindirizzerai alla pagina di home di login e prima di reindirizzare alla pagina inserirai in un array le tue variabili di sessione ed imposterai la sessione, per esempio

    Codice PHP:

    $datiUtente
    = array('Nome'=>$nome,
    'Cognome'=>$cognome);

    $_SESSION['datiUtente']=$datiUtente;
    Codice PHP:

    session_start
    ();

    print
    'ciao' .$datiutente['Nome'] .' '.$datiutente['Cognome'];
    ma devi leggerti meglio come fare una select e un bind dei parametri e dei risultati, bind_param e bind_result
    Ultima modifica di fractalcosmo : 10-06-2015 alle ore 21.23.34

Tags for this Thread

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •