Problemi di esecuzione query

Ciao Gianni,

ho il seguente problema con l'ultimo script della serie, poi dovrò solo pubblicarlo...

Cominciamo con l'errore riportato:

Parse error: parse error, unexpected T_STRING in D:\Universita\Basi di Dati\Progetto Basi di Dati\Progetto 2005-2006\Check_Piano.php on line 57

ecco un parte dello script Check_Piano.php, e la riga "sospetta":

<!-- Pagina Controllata -->
<HTML>
  <HEAD>
    <TITLE> Verifica piani di studio inseriti </TITLE>
  </HEAD>

  <BODY BACKGROUND="Sfondo1.gif">

    <CENTER>
      <STRONG>
        <FONT FACE="Comic Sans MS" SIZE=3> VERIFICA PIANI DI STUDIO INSERITI </FONT>
      </STRONG>
    </CENTER>
     
    <BR>  
    <BR>     
    <?
      $query= "SELECT Matricola,Cod_L FROM STUDENTI";  
      $ris= mysql_query($query,$Connessione) or die('<IMG SRC="No.gif" ALIGN="MIDDLE">Errore nella query: '.mysql_error());
      $Num_Mat= mysql_num_rows($ris);
      $I=0;
     
      while ($I <= $Num_Mat)
       { 
        $I=$I+1;
        $riga=mysql_fetch_assoc($ris);
        $Mat=$riga['Matricola'];  // Generica Matricola
        $Cod_L=$riga['Cod_L'];  // Generico corso di laurea
        $Errato=0;
          
        // Seleziono tutti gli esami di quella generica matricola
         
        $query="SELECT Cod_Esame,Anno,Voto,Lode FROM PIANI WHERE (Mat = '$Mat')";   
        $ris=mysql_query($query,$Connessione);
        $Num_Esami=mysql_num_rows($ris);  // Numero di esami del generico piano di studio
          
        if ($Num_Esami > 0)
         {
          $J=0;
          while (($J <= $Num_Esami) AND ($Errato == 0))
           {
            $J=$J+1;
            $tupla=mysql_fetch_assoc($ris);
            $Cod_Esame=$tupla['Cod_Esame'];  // Esame da controllare
            $Anno=$tupla['Anno'];
            $Voto=$tupla['Voto'];
            $Lode=$tupla['Lode'];
                         
            // Verifica regola 2
             
            $query="SELECT * FROM PREVEDE WHERE ((Cod_L = '$Cod_L') AND (Cod_Esame = '$Cod_Esame'));
            $ris=mysql_query($query,$Connessione);
            $Occor=mysql_num_rows($ris);
             
            if ($Occor > 0)
             {       
------>       $query="UPDATE PIANI SET Corretto = N WHERE (Mat = '$Mat')";
              $ris=mysql_query($query,$Connessione) or die('<IMG SRC="No.gif" ALIGN="MIDDLE">Errore nella query: '.mysql_error());
             }
            else
             {
              // Verifica regola 4

Se invece eseguo lo stesso script ma dal mio sito ottengo una serie

lunghissima di scritte, se non erro sono proprio quelle scritte da me nel suddetto script:

Errore nella query: '.mysql_error()); $Num_Mat= mysql_num_rows($ris); $I=0; while ($I <= $Num_Mat) { $I=$I+1; 
$riga=mysql_fetch_assoc($ris); $Mat=$riga['Matricola']; // Generica Matricola $Cod_L=$riga['Cod_L']; 
// Generico corso di laurea $Errato=0; // Seleziono tutti gli esami di quella generica matricola $query="SELECT Cod_Esame,Anno,Voto,Lode FROM PIANI WHERE (Mat = '$Mat')"; 
$ris=mysql_query($query,$Connessione); $Num_Esami=mysql_num_rows($ris); // Numero di esami del generico piano di studio

ecc.. penso che sia inutile riportarti tutto.

Ma dov'è l'errore, stò da stamattina cercando di scovarlo

 :knuppel:

inviato 11 anni fa
noems
X 0 X

Hai dimenticato di chiudere i doppi apici alla riga:

$query="SELECT * FROM PREVEDE WHERE ((Cod_L = '$Cod_L') AND (Cod_Esame = '$Cod_Esame')); <---

 :bye:

risposto 11 anni fa
Gianni Tomasicchio
X 0 X

Adesso mi viene dato quest'altro errore sempre alla stessa linea:

Parse error: parse error, unexpected T_DEC, expecting T_STRING or T_VARIABLE or '$' in D:\Universita\Basi di Dati\Progetto Basi di Dati\Progetto 2005-2006\Check_Piano.php on line 57

e poi scusa l'errore era in una riga non indicata dall'errore,perchè?

risposto 11 anni fa
noems
X 0 X

qual'è la riga 57?

Prima l'errore te lo dava più giù perché considerava tutto come una stringa. PHP non può sapere se non hai chiuso una stringa.

risposto 11 anni fa
Gianni Tomasicchio
X 0 X

Ho aggiunto la riga "require" altrimenti non posso fare mysql_query(....,$Connessione) ora l'errore lo dà alla linea 58

<!-- Pagina Controllata -->
<HTML>
  <HEAD>
    <TITLE> Verifica piani di studio inseriti </TITLE>
  </HEAD>

  <BODY BACKGROUND="Sfondo1.gif">

    <CENTER>
      <STRONG>
        <FONT FACE="Comic Sans MS" SIZE=3> VERIFICA PIANI DI STUDIO INSERITI </FONT>
      </STRONG>
    </CENTER>
     
    <BR>  
    <BR>     
    <?      
      require "Login.php";
      $query= "SELECT Matricola,Cod_L FROM STUDENTI";  
      $ris= mysql_query($query,$Connessione) or die('<IMG SRC="No.gif" ALIGN="MIDDLE">Errore nella query: '.mysql_error());
      $Num_Mat= mysql_num_rows($ris);
      $I=0;
     
      while ($I <= $Num_Mat)
       { 
        $I=$I+1;
        $riga=mysql_fetch_assoc($ris);
        $Mat=$riga['Matricola'];  // Generica Matricola
        $Cod_L=$riga['Cod_L'];  // Generico corso di laurea
        $Errato=0;
          
        // Seleziono tutti gli esami di quella generica matricola
         
        $query="SELECT Cod_Esame,Anno,Voto,Lode FROM PIANI WHERE (Mat = '$Mat')";   
        $ris=mysql_query($query,$Connessione);
        $Num_Esami=mysql_num_rows($ris);  // Numero di esami del generico piano di studio
          
        if ($Num_Esami > 0)
         {
          $J=0;
          while (($J <= $Num_Esami) AND ($Errato == 0))
           {
            $J=$J+1;
            $tupla=mysql_fetch_assoc($ris);
            $Cod_Esame=$tupla['Cod_Esame'];  // Esame da controllare
            $Anno=$tupla['Anno'];
            $Voto=$tupla['Voto'];
            $Lode=$tupla['Lode'];
                         
            // Verifica regola 2
             
            $query="SELECT * FROM PREVEDE WHERE ((Cod_L = '$Cod_L') AND (Cod_Esame = '$Cod_Esame'))";
            $ris=mysql_query($query,$Connessione);
            $Occor=mysql_num_rows($ris);
             
            if ($Occor > 0)
             {       
------>     $query="UPDATE PIANI SET Corretto = N WHERE (Mat = '$Mat')";
               $ris=mysql_query($query,$Connessione) or die('<IMG SRC="No.gif" 
               ALIGN="MIDDLE">Errore nella query: '.mysql_error());
             }
            else

la linea sospetta è quella indicata con la freccia.....

risposto 11 anni fa
noems
X 0 X

quella riga è corretta, come pure tutto lo script.  :dunno:

 :bye:

Attento ai caratteri fantasma  :death:

risposto 11 anni fa
Gianni Tomasicchio
X 0 X

Per completezza ti riporto tutto lo script (assolutamente  che lo leggi tutto....)

risposto 11 anni fa
noems
X 0 X

Per completezza ti riporto tutto lo script (assolutamente NON PRETENDO che lo leggi tutto. . . . .)

<!-- Pagina Controllata -->
<HTML>
  <HEAD>
    <TITLE> Verifica piani di studio inseriti </TITLE>
  </HEAD>

  <BODY BACKGROUND="Sfondo1.gif">

    <CENTER>
      <STRONG>
        <FONT FACE="Comic Sans MS" SIZE=3> VERIFICA PIANI DI STUDIO INSERITI </FONT>
      </STRONG>
    </CENTER>
     
    <BR>  
    <BR>     
    <?      
      require "Login.php";
      $query= "SELECT Matricola,Cod_L FROM STUDENTI";  
      $ris= mysql_query($query,$Connessione) or die('<IMG SRC="No.gif" ALIGN="MIDDLE">Errore nella query: '.mysql_error());
      $Num_Mat= mysql_num_rows($ris);
      $I=0;
     
      while ($I <= $Num_Mat)
       { 
        $I=$I+1;
        $riga=mysql_fetch_assoc($ris);
        $Mat=$riga['Matricola'];  // Generica Matricola
        $Cod_L=$riga['Cod_L'];  // Generico corso di laurea
        $Errato=0;
          
        // Seleziono tutti gli esami di quella generica matricola
         
        $query="SELECT Cod_Esame,Anno,Voto,Lode FROM PIANI WHERE (Mat = '$Mat')";   
        $ris=mysql_query($query,$Connessione);
        $Num_Esami=mysql_num_rows($ris);  // Numero di esami del generico piano di studio
          
        if ($Num_Esami > 0)
         {
          $J=0;
          while (($J <= $Num_Esami) AND ($Errato == 0))
           {
            $J=$J+1;
            $tupla=mysql_fetch_assoc($ris);
            $Cod_Esame=$tupla['Cod_Esame'];  // Esame da controllare
            $Anno=$tupla['Anno'];
            $Voto=$tupla['Voto'];
            $Lode=$tupla['Lode'];
                         
            // Verifica regola 2
             
            $query="SELECT * FROM PREVEDE WHERE ((Cod_L = '$Cod_L') AND (Cod_Esame = '$Cod_Esame'))";
            $ris=mysql_query($query,$Connessione);
            $Occor=mysql_num_rows($ris);
             
            if ($Occor > 0)
             {       
------>       $query="UPDATE PIANI SET Corretto = 'N' WHERE (Mat = '$Mat')";
              $ris=mysql_query($query,$Connessione) or die('<IMG SRC="No.gif" ALIGN="MIDDLE">Errore nella query: '.mysql_error());
             }
            else
             {
              // Verifica regola 4
               
              $query="SELECT Cod_Prop FROM PROPEDEUTICI WHERE (Cod_Esa = '$Cod_Esame')";
              $ris=mysql_query($query,$Connessione) or die('<IMG SRC="No.gif" ALIGN="MIDDLE">Errore nella query: '.mysql_error());
              
              $Num_Prop=mysql_num_rows($ris)  // Numero di prop di Cod_Esame
               
              if ($Num_Prop > 0)  // Ci sono prop per quel Cod_Esame
               {
                $K=0;
                $Errore=0;
                 
                where (($K <= $Num_Prop) AND ($Errore == 0))
                 {
                  $K=$K+1;
                  $tupla=mysql_fetch_assoc($ris);
                  $Cod_Prop=$tupla['Cod_Prop'];
                    
                  // Controllo che ogni prop appartenga allo stesso Cod_L
                    
                  $query="SELECT * FROM PREVEDE WHERE ((Cod_L = '$Cod_L') AND (Cod_Esame = '$Cod_Prop'))";
                  $ris=mysql_query($query,$Connessione) or die('<IMG SRC="No.gif" ALIGN="MIDDLE">Errore nella query: '.mysql_error());
                  $riga=mysql_num_rows($ris);
                   
                  if ($riga == 0)
                   { 
                    $query="DELETE FROM PROPEDEUTICI WHERE ((Cod_Esa = '$Cod_Esame') AND (Cod_Prop = '$Cod_Prop'))";
                    $ris=mysql_query($query,$Connessione) or die('<IMG SRC="No.gif" ALIGN="MIDDLE">Errore nella query: '.mysql_error());
                   }
                  else
                   {
                    
                    // Controllo che il prop appartenga al piano di studio in considerazione
                    
                    $query="SELECT * FROM PIANI WHERE ((Mat = '$Mat') AND (Cod_Esame = '$Cod_Prop'))";
                    $ris=mysql_query($query,$Connessione) or die('<IMG SRC="No.gif" ALIGN="MIDDLE">Errore nella query: '.mysql_error());
                    $Presente=mysql_num_rows($ris);
                     
                    if ($Presente == 0)  // Cod_Prop non presente nel piano di studio
                     { 
                      $query="UPDATE PIANI SET Corretto = 'N' WHERE (Mat = '$Mat')";
                      $ris=mysql_query($query,$Connessione) or die('<IMG SRC="No.gif" ALIGN="MIDDLE">Errore nella query: '.mysql_error());                   
                      $Errore=1;
                      $Errato=1;
                     }
                   }
                 }
               }
                
              // Verifica regola 8
                
              $query="SELECT * FROM ANNI WHERE ((Cod_E = '$Cod_Esame') AND (Anno = '$Anno'))";
              $ris=mysql_query($query,$Connessione) or die('<IMG SRC="No.gif" ALIGN="MIDDLE">Errore nella query: '.mysql_error()); 
              $Presente=mysql_num_rows($ris);
               
              if ($Presente == 0)
               {
                $query="UPDATE PIANI SET Corretto = 'N' WHERE (Mat = '$Mat')";
                $ris=mysql_query($query,$Connessione) or die('<IMG SRC="No.gif" ALIGN="MIDDLE">Errore nella query: '.mysql_error());
               }
              else
               {
                 
                // Controlla regola 7
                 
                if (($Lode == 'S') or ($Lode == 'S'))
                 {
                  if ($Voto < 30)
                   {
                    $query="UPDATE PIANI SET Corretto = 'N' WHERE (Mat = '$Mat')";
                    $ris=mysql_query($query,$Connessione) or die('<IMG SRC="No.gif" ALIGN="MIDDLE">Errore nella query: '.mysql_error());
                   }
                 }
               }
             }
           } 
           
          // Verifica regola 1
          
          $query="SELECT COUNT(*) AS NonPrevisti FROM PIANI,PREVEDE WHERE ((Mat = '$Mat') AND (PIANI.Cod_Esame = PREVEDE.Cod_Esame) AND (Tipo = 'O') AND (PIANI.Cod_Esame NOT IN SELECT Cod_Esame FROM PREVEDE WHERE ((Cod_L = '$Cod_L') AND (Tipo = 'O')))";
          $ris=mysql_query($query,$Connessione) or die('<IMG SRC="No.gif" ALIGN="MIDDLE">Errore nella query: '.mysql_error());
          
          if ($NonPrevisti > 0)
           {
            $query="UPDATE PIANI SET Corretto = 'N' WHERE (Mat = '$Mat')";
            $ris=mysql_query($query,$Connessione) or die('<IMG SRC="No.gif" ALIGN="MIDDLE">Errore nella query: '.mysql_error());
           }
          else
           {
            $query="SELECT SUM(CFU) AS Somma FROM PIANI,ESAMI WHERE ((Mat = '$Mat') AND (PIANI.Cod_Esame = ESAMI.Cod_Esame))";
            $ris=mysql_query($query,$Connessione) or die('<IMG SRC="No.gif" ALIGN="MIDDLE">Errore nella query: '.mysql_error());
           }
         }
       }
    ?>

 </BODY>
</HTML>                   
risposto 11 anni fa
noems
X 0 X

Quindi mi consigli di riscriverlo? Lo sapevo che sull'ultimo avrei perso più tempo di tutti; ora capisco quando mi hai consigliato di usare "DREAMWAVER"!!! :tichedoff:

risposto 11 anni fa
noems
X 0 X

Manca un punto e virgola alla fine di:

$Num_Prop=mysql_num_rows($ris)  // Numero di prop di Cod_Esame

inoltre la riga

where (($K <= $Num_Prop) AND ($Errore == 0))

forse doveva essere

while (($K <= $Num_Prop) AND ($Errore == 0))

 :bye:

Per il PHP consiglio lo Zend

risposto 11 anni fa
Gianni Tomasicchio
X 0 X

sto leggendo e rileggendo, e pure quegli errori non riesco a vederli. . . .

Ho riprovato a caricare la pagina,MA NIENTE l'errore è sempre alla riga 58. . .

Cos'è lo ZEND,ne ho sentito parlare ma non mi sono applicato più di tanto

risposto 11 anni fa
noems
X 0 X

Prima correggi quegli errori che ti ho fatto notare...

Lo Zend Studio è un programma per lo sviluppo di applicazioni PHP

risposto 11 anni fa
Gianni Tomasicchio
X 0 X

l'ho fatto, ho ricaricato, e l'errore è sempre li. . . .

si ma quello è l'ultimo scipt, non penso mi convenga di installarlo per una solo script, GIUSTO?

risposto 11 anni fa
noems
X 0 X

Queste query sono sbagliate?:

                $query="UPDATE PIANI SET Corretto = 'N' WHERE (Mat = '$Mat')";
                $ris=mysql_query($query,$Connessione) or die('<IMG SRC="No.gif" ALIGN="MIDDLE">Errore nella query: '.mysql_error());

ci vogliono i 2 apici vicino a Corretto = 'N'?

          $query="SELECT COUNT(*) AS NonPrevisti FROM PIANI,PREVEDE WHERE ((Mat = '$Mat') AND (PIANI.Cod_Esame = PREVEDE.Cod_Esame) AND (Tipo = 'O') AND (PIANI.Cod_Esame NOT IN SELECT Cod_Esame FROM PREVEDE WHERE ((Cod_L = '$Cod_L') AND (Tipo = 'O')))";
          $ris=mysql_query($query,$Connessione) or die('<IMG SRC="No.gif" ALIGN="MIDDLE">Errore nella query: '.mysql_error());

Questa se non sbaglio è una query scorrelata, bisogna indicarla in qualche modo?

            $query="SELECT SUM(CFU) AS Somma FROM PIANI,ESAMI WHERE ((Mat = '$Mat') AND (PIANI.Cod_Esame = ESAMI.Cod_Esame))";
            $ris=mysql_query($query,$Connessione) or die('<IMG SRC="No.gif" ALIGN="MIDDLE">Errore nella query: '.mysql_error());

Per prendere il valore di Somma, basta he faccio $Tot=$Somma,vero?

risposto 11 anni fa
noems
X 0 X

Che IMBECILLE CHE SONO E' PROPRIO IL CASO DI DIRLO MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM,

l'errore era la freccia che serviva a farti vedere l'errore, CHE IDIOTA!!!!!!

risposto 11 anni fa
noems
X 0 X

Però tutte a me capitano, se richiamo lo script dalla mia Home Page mi rimane sempre questo "papiello":

Errore nella query: '.mysql_error()); $Num_Mat= mysql_num_rows($ris); $I=0; while ($I <= $Num_Mat) { $I=$I+1; $riga=mysql_fetch_assoc($ris); $Mat=$riga['Matricola']; // Generica Matricola $Cod_L=$riga['Cod_L']; // Generico corso di laurea $Errato=0; // Seleziono tutti gli esami di quella generica matricola $query="SELECT Cod_Esame,Anno,Voto,Lode FROM PIANI WHERE (Mat = '$Mat')"; $ris=mysql_query($query,$Connessione); $Num_Esami=mysql_num_rows($ris); // Numero di esami del generico piano di studio if ($Num_Esami > 0) { $J=0; while (($J <= $Num_Esami) AND ($Errato == 0)) { $J=$J+1; $tupla=mysql_fetch_assoc($ris); $Cod_Esame=$tupla['Cod_Esame']; // Esame da controllare $Anno=$tupla['Anno']; $Voto=$tupla['Voto']; $Lode=$tupla['Lode']; // Verifica regola 2 $query="SELECT * FROM PREVEDE WHERE ((Cod_L = '$Cod_L') AND (Cod_Esame = '$Cod_Esame'))"; $ris=mysql_query($query,$Connessione); $Occor=mysql_num_rows($ris); if ($Occor > 0) { $query="UPDATE PIANI SET Corretto = 'N' WHERE (Mat = '$Mat')"; $ris=mysql_query($query,$Connessione) or die('Errore nella query: '.mysql_error()); } else { // Verifica regola 4 $query="SELECT Cod_Prop FROM PROPEDEUTICI WHERE (Cod_Esa = '$Cod_Esame')"; $ris=mysql_query($query,$Connessione) or die('Errore nella query: '.mysql_error()); $Num_Prop=mysql_num_rows($ris); // Numero di prop di Cod_Esame if ($Num_Prop > 0) // Ci sono prop per quel Cod_Esame { $K=0; $Errore=0; while (($K <= $Num_Prop) AND ($Errore == 0)) { $K=$K+1; $tupla=mysql_fetch_assoc($ris); $Cod_Prop=$tupla['Cod_Prop']; // Controllo che ogni prop appartenga allo stesso Cod_L $query="SELECT * FROM PREVEDE WHERE ((Cod_L = '$Cod_L') AND (Cod_Esame = '$Cod_Prop'))"; $ris=mysql_query($query,$Connessione) or die('Errore nella query: '.mysql_error()); $riga=mysql_num_rows($ris); if ($riga == 0) { $query="DELETE FROM PROPEDEUTICI WHERE ((Cod_Esa = '$Cod_Esame') AND (Cod_Prop = '$Cod_Prop'))"; $ris=mysql_query($query,$Connessione) or die('Errore nella query: '.mysql_error()); } else { // Controllo che il prop appartenga al piano di studio in considerazione $query="SELECT * FROM PIANI WHERE ((Mat = '$Mat') AND (Cod_Esame = '$Cod_Prop'))"; $ris=mysql_query($query,$Connessione) or die('Errore nella query: '.mysql_error()); $Presente=mysql_num_rows($ris); if ($Presente == 0) // Cod_Prop non presente nel piano di studio { $query="UPDATE PIANI SET Corretto = 'N' WHERE (Mat = '$Mat')"; $ris=mysql_query($query,$Connessione) or die('Errore nella query: '.mysql_error()); $Errore=1; $Errato=1; } } } } // Verifica regola 8 $query="SELECT * FROM ANNI WHERE ((Cod_E = '$Cod_Esame') AND (Anno = '$Anno'))"; $ris=mysql_query($query,$Connessione) or die('Errore nella query: '.mysql_error()); $Presente=mysql_num_rows($ris); if ($Presente == 0) { $query="UPDATE PIANI SET Corretto = 'N' WHERE (Mat = '$Mat')"; $ris=mysql_query($query,$Connessione) or die('Errore nella query: '.mysql_error()); } else { // Controlla regola 7 if (($Lode == 'S') or ($Lode == 's')) { if ($Voto < 30) { $query="UPDATE PIANI SET Corretto = 'N' WHERE (Mat = '$Mat')"; $ris=mysql_query($query,$Connessione) or die('Errore nella query: '.mysql_error()); } } } } } // Verifica regola 1 $query="SELECT COUNT(*) AS NonPrevisti FROM PIANI,PREVEDE WHERE ((Mat = '$Mat') AND (PIANI.Cod_Esame = PREVEDE.Cod_Esame) AND (Tipo = 'O') AND (PIANI.Cod_Esame NOT IN SELECT Cod_Esame FROM PREVEDE WHERE ((Cod_L = '$Cod_L') AND (Tipo = 'O')))"; $ris=mysql_query($query,$Connessione) or die('Errore nella query: '.mysql_error()); if ($NonPrevisti > 0) { $query="UPDATE PIANI SET Corretto = 'N' WHERE (Mat = '$Mat')"; $ris=mysql_query($query,$Connessione) or die('Errore nella query: '.mysql_error()); } else { $query="SELECT SUM(CFU) AS Somma FROM PIANI,ESAMI WHERE ((Mat = '$Mat') AND (PIANI.Cod_Esame = ESAMI.Cod_Esame))"; $ris=mysql_query($query,$Connessione) or die('Errore nella query: '.mysql_error()); } } } ?>
risposto 11 anni fa
noems
X 0 X

Ho chiuso tutto il sito, sono partito dalla pagina di introduzione, e sono arrivato fino alla pagina "Check_Piani.php" ORA NON MI DA' NESSUN ERRORE!!!

Ma perchè a volte se apro e chiudo, non si hanno gli stessi effetti di quando faccio il REFRESH (sempre collegato al problema postato temp fà)?

risposto 11 anni fa
noems
X 0 X

Ho provato a ricaricare la pagina e stamattina mi dava di nuovo lo stesso "papiello" di ieri.

Allora ho riscritto a mano il tutto, ed ora il problema è il seguente (non ci sto a capì più niente!):

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in D:\Universita\Basi di Dati\Progetto Basi di Dati\Progetto 2005-2006\Prova.php on line 40

Ripetuto tante volte quanto viene eseguito i while, riporto di nuovo parte del codice:

<HTML>
  <HEAD>
    <TITLE> Verifica piani di studio inseriti </TITLE>
  </HEAD>

  <BODY BACKGROUND="Sfondo1.gif">

    <CENTER>
      <STRONG>
        <FONT FACE="Comic Sans MS" SIZE=3> VERIFICA PIANI DI STUDIO INSERITI </FONT>
      </STRONG>
    </CENTER>

    <BR><BR>
    <?
      require "Login.php";
      $query1="SELECT Matricola,Cod_L FROM STUDENTI";
      $ris1=mysql_query($query1,$Connessione) or die('<IMG SRC="No.gif" ALIGN="MIDDLE">Errore nella query: '.mysql_error());
      $Num_Mat=mysql_num_rows($ris1);
      $I=0;

      while ($I <= $Num_Mat)
       {
        $I=$I+1;
        $riga=mysql_fetch_assoc($ris1);
        $Mat=$riga['Matricola'];
        $Cod_L=$riga['Cod_L'];
        $Errato=0;
        
        $query="SELECT Cod_Esame,Anno,Voto,Lode FROM PIANI WHERE (Mat = '$Mat')";
        $ris= mysql_query($query,$Connessione) or die('<IMG SRC="No.gif" ALIGN="MIDDLE">Errore nella query: '.mysql_error());        
        $Num_Esami=mysql_num_rows($ris);
        
        if ($Num_Esami > 0)
         {
          $J=0;
          while (($J <= $Num_Esami) AND ($Errato == 0))
           {
            $J=$J+1;        
  ---->     $riga=mysql_fetch_assoc($ris);                        
            $Cod_Esame=$riga['Cod_Esame'];
            $Anno=$riga['Anno'];
            $Voto=$riga['Voto'];
            $Lode=$riga['Lode'];

ho provato anche con mysql_getcha_array($query,MYSQL_NUM) ma l'errore è sempre lì e sempre lo stesso

risposto 11 anni fa
noems
X 0 X

Quell'errore capita quando si effettua una query che però è sbagliata. MySQL pertanto non restituisce risultati. Allora quando si effettua la fetch dei risultati si riceve l'errore poiché giustamente non ha risultati da restituire.

Tieni presente che se effettui una query errata non ricevi degli errori! Se però poi tenti di fare la fetch allora scatta il WARNING

 :bye:

risposto 11 anni fa
Gianni Tomasicchio
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda