Visualizzazione dei risultati da 1 a 9 su 9

Discussione: errore mysql_result

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    18

    errore mysql_result

    vi posto un pezzo di codice che mi sta facendo impazzire. praticamente ho un form in una pagina html dove vengono selezionate alcune materie di cui si vuole conoscere le date d'appello. riesco a selezionare gli appelli e anche l'aula in cui si svolge ma non so perchè mi à uno strano problema quando deve prendere il nome della materia.
    Le tabelle coinvolte sono : appello,insegnamento,aule.
    Il problema è che se seleziono una sola materia funziona mentre se ne seleziono più di una mi inserisce le righe relative alla prima materia con tutte le informazioni mentre per le altre non mi inserisce il nome della materia e poi mi dà questo errore:
    ?>
    Warning: mysql_numrows(): supplied argument is not a valid MySQL result resource in C:\www\Sito Web\Didattica\prova3.php on line 29
    Warning: mysql_result(): supplied argument is not a valid MySQL result resource in C:\www\Sito Web\Didattica\prova3.php on line 43
    .

    se qualcuno saprebbe spiegarmi perchè??????????? l'assurdo è che per l'aula funziona e per il nome dell'insegnamento no.

    $j = 0;
    for ($j=0; $j<25;$j++)
    {
    if (isset($_POST[$j])) {

    $sqlquery = "SELECT * FROM $appello WHERE id_insegn = $j ";
    $result = mysql_query($sqlquery);
    $number = mysql_numrows($result);

    $sqlquery1 = "SELECT * FROM $insegnamento AS o JOIN $appello AS c on o.id_insegn = c.id_insegn WHERE c.id_insegn = $j ";
    $result1 = mysql_query($sqlquery1);
    $number2 = mysql_numrows($result1);print"numerorigheAULE:$num ber2";

    $sqlquery2 = "SELECT * FROM $aule AS o JOIN $appello AS c on o.id_aula = c.id_aula WHERE c.id_insegn = $j ";
    $result2 = mysql_query($sqlquery2);
    $number3 = mysql_numrows($result2);print"numerorigheAULE:$num ber3";


    $i = 0;
    while ($number > $i) {

    $dataappello = mysql_result($result,$i,"data_appello");
    $insegnamento = mysql_result($result,$i,"id_insegn");
    $orario = mysql_result($result,$i,"orario");

    $nomeinsegnamento= mysql_result($result1,$i,"nome");


    $aula= mysql_result($result2,$i,"nome");

    print "
    <tr>
    <td> $nomeinsegnamento</td>
    <td> $dataappello </td>
    <td> $orario </td>
    <td> $aula </td>
    </tr>

    ";
    $i++;
    }}}
    ;
    print"</table>";
    cupe78....."tutto scorre"........

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    18
    up
    cupe78....."tutto scorre"........

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    18
    up
    cupe78....."tutto scorre"........

  4. #4
    ma cos'e' quel

    $number = mysql_numrows($result);

    una tua funzione?

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

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    18
    no, è una funzione predefinita che conta il numero di righe della tabella risultato della query
    cupe78....."tutto scorre"........

  6. #6
    Utente di HTML.it L'avatar di Gab-81
    Registrato dal
    Nov 2005
    Messaggi
    558
    La funzione corretta è
    Codice PHP:
    $rows mysql_num_rows($query
    e non mysql_numrows(...)

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    18
    ok. cmq il problema non è quello perchè funzionava anche come avevo scritto.
    Invece ci deve essere un problema nel ciclo. se tolgo le query con i join funziona.
    Altrettanto se tolgo la prima query e lascio le altre.
    Invece lasciandole tutte succede qualcosa dopo il primo ciclo e non funziona più il join e mi dà questo errore:
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1 AS o JOIN appello AS c on o.id_insegn = c.id_insegn WHERE c.id_insegn = 2' at line 1
    cupe78....."tutto scorre"........

  8. #8
    Utente di HTML.it L'avatar di Gab-81
    Registrato dal
    Nov 2005
    Messaggi
    558
    Hai un problema sulla query, falla stampare con un echo e fanne un'analisi sintattico-sematica...uscirà fuori qualche magagna sicuramente...
    oppure postala e vediamo insieme

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    18
    ho trovato il problema. é la variabile number nel ciclo while.
    ho inserito le query 1 e 2 in un altro for con riferimento a number2 e funziona.
    solo che così ottengo due tabelle e non una. ho risolto anche questo affiancandole.
    ecco il nuovo codice. comunque non ho ancora capito bene il motivo del non funzionamento di prima. Non è un problema di query perchè prese da sole funzionano. Ma messe nello stesso ciclo no. Boh.va be per ora faccio così:

    mysql_connect($DBhost,$DBuser,$DBpass) or die("Impossibile collegarsi al server");
    @mysql_select_db("$DBName") or die("Impossibile connettersi al database $DBName");
    print "<table><tr><td>";

    print "<table border = 1><tr><td>DATA</td><td>ORARIO</td></tr>";

    $j = 0;
    for ($j=0; $j<25;$j++)
    {
    if (isset($_POST[$j])) {

    $sqlquery = "SELECT * FROM $appello WHERE id_insegn = $j ";
    $result = mysql_query($sqlquery)or die(mysql_error()) ;
    $number = mysql_num_rows($result);

    $i = 0;
    while ($number > $i) {

    $dataappello = mysql_result($result,$i,"data_appello");
    $orario = mysql_result($result,$i,"orario");

    print "
    <tr>

    <td> $dataappello </td>
    <td> $orario </td>
    </tr>

    ";
    $i++;
    };};}
    ;
    print"</table></td><td>
    <table border=1><tr><td>MATERIA</td><td>AULA</td></tr>";
    $j = 0;
    for ($j=0; $j<25;$j++)
    {
    if (isset($_POST[$j])) {

    $sqlquery1 = "SELECT * FROM $insegnamento AS o JOIN $appello AS c on o.id_insegn = c.id_insegn WHERE c.id_insegn = $j ";
    $result1 = mysql_query($sqlquery1)or die(mysql_error()) ;
    $number2 = mysql_num_rows($result1);

    $sqlquery2 = "SELECT * FROM $aule AS o JOIN $appello AS c on o.id_aula = c.id_aula WHERE c.id_insegn = $j ";
    $result2 = mysql_query($sqlquery2)or die(mysql_error()) ;
    $number3 = mysql_num_rows($result2);


    $i = 0;
    while ($number2 > $i) {


    $nomeinsegnamento= mysql_result($result1,$i,"nome");


    $aula= mysql_result($result2,$i,"nome");

    print "
    <tr>
    <td> $nomeinsegnamento</td>
    <td> $aula </td>
    </tr>

    ";
    $i++;
    };};}
    ;
    print"</table></td></tr></table>";
    ?>
    cupe78....."tutto scorre"........

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.