Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    654

    Variabile di sessione non viene presa nella select

    Devo fare in modo che a ogni docente loggato, vengano mostrate le sue materie (ovviamente c'è l'associazione docente-materie nel database). La mia idea è di passargli la login, di confrontarla nel database e quindi di prelevare le sue materie. Ma per qualche ragione che non capisco, la variabile di sessione non viene presa all'interno del select (all'esterno invece esiste).

    Questa è la parte "incriminata"

    Codice PHP:
    <select name="materia">
    <?php
    $query
    =mysql_query("SELECT * FROM Docenti WHERE `Docente_login`='{$_SESSION['login']}' ORDER BY Docente_materia_competenza GROUP BY Docente_materia_competenza");
    while(
    $row=mysql_fetch_array($query)){
      
    $materia=$row["Docente_materia_competenza"];
      echo 
    "<option value='$materia'>$materia</option>
    "
    ;
    }
    ?>
    </select>

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    aggiungi un or die (mysql_error())

    e poi, consiglio di leggibilità:

    $sql = "tua query";
    $result = mysql_query($sql, $db) or die (mysql_error());
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    per usare una variabile di sessione devi essere membro della stessa sessione....

    session_start() ad inizio pagina.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    654
    session_start() ad inizio pagina
    Sì, l'ho fatto. Infatti se stampo le variabili all'esterno della select mi vengono mostrate come devono essere...
    Il die non mi dà nessun errore, però ho visto una cosa: con il die mi è sparito il tasto "cerca" del form, che viene subito dopo, quindi suppongo che blocchi il codice subito sotto

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    654
    Nessuno ha un'idea? Questo codice dovrei poi utilizzarlo in altre maschere, quindi è piuttosto importante che funzioni...
    La query è esatta, l'ho controllata direttamente con il database. Il problema è che non mi prende le variabili di sessione

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    aggiungi un error_reporting(E_ALL); in cima allo script.

    Fai anche un echo($sql) prima di eseguire la query...
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    654
    Ho scritto l'error_reporting(E_ALL) subito sotto i tag del php, ma non mi butta fuori niente. Lo stesso per l'echo della query... in effetti se non prende la variabile della login la query non fa niente.
    Per mettere un po' di ordine, questo è il codice così modificato:

    Codice PHP:
    <?php
    error_reporting
    (E_ALL);
    echo 
    "<select name='materia'>";
    $q="SELECT * FROM `Docenti` WHERE `Docente_login`='{$_SESSION['login']}' GROUP BY Docente_materia_competenza ORDER BY Docente_materia_competenza";
    echo(
    $q);
    $query=mysql_query($q) or die (mysql_error());
    while(
    $row=mysql_fetch_array($query)){
      
    $materia=$row["Docente_materia_competenza"];
      echo 
    "<option value='$materia'>$materia</option>
    "
    ;
    }
    echo 
    "</select>";

    ?>
    Questo è invece l'inizializzazione delle variabili di sessione, a inizio pagina:
    <?php
    session_start();
    ?>

    Io e le variabili di sessione non andiamo molto d'accordo

  8. #8
    ma dov'e' session_start()... hai appena affermato di aver messo error_reporting subito dopo il tag php... non vedo alcun session_start....


    ambe' l'ho visto appresso.... error_reportng mettilo anche prima di session_start... spero sia della stessa pagina...

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    654
    Sì, era nella stessa pagina
    comunque ancora niente, nessun errore

  10. #10
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    scusa un attimo... butta via tutto il codice e lascia solo questo
    codice:
    <?php
    session_start();
    error_reporting(E_ALL);
    echo("Login: ".$_SESSION['login']."
    Query: SELECT * FROM `Docenti` WHERE `Docente_login`='{$_SESSION['login']}' GROUP BY Docente_materia_competenza ORDER BY Docente_materia_competenza");
    ?>
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

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.