Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    INNER JOIN non funzionante

    buongiorno!

    questa query a me risulta giusta, però a quanto pare non è così, qualcuno sa dove può essere il problema?

    Codice PHP:
    $r2=mysql_query("SELECT count(rf.*) as num, rf.idrisp, rf.iddom, testo 
    FROM rispostefornite as rf INNER JOIN rispostepossibili as rp on rf.iddom=rp.iddom
    WHERE idquest="
    .$classe." AND rf.iddom=".$row['rf.iddom']." group by rf.idrisp, rf.iddom"); 
    errore: Notice: Undefined index: rispostefornite.iddom in C:\xampp\htdocs\quiz\statistiche.php on line 48

    Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\quiz\statistiche.php on line 60



    da notare che la stessa query (senza inner join) funziona senza problemi..devo solo includere la variabile testo

    query funzionante senza inner:
    Codice PHP:
    $r2=mysql_query("SELECT count(*) as num, idrisp, iddom 
    FROM rispostefornite
    WHERE idquest=
    $classe AND iddom=".$row['iddom']." group by iddom, idrisp"); 
    grazie!

  2. #2
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    La query non sarà valida.

    Ma sarebbe una domanda per http://forum.html.it/forum/forumdisplay.php?forumid=98

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    292
    L'errore è chiaro,
    semplicemente non è definito l'indice rispostefornite.iddom di qualche variabile array.
    dovresti provare a riportare il codice completo ed indicare la riga 48.

  4. #4
    chiedo scusa per la sezione errata..

    il problema è che dentro ai database (dove prendo iddom) sono presenti i valori, quindi non vedo il motivo dell'errore

    codice completo:

    Codice PHP:

    <?php
    include("phpgraphlib.php"); 

    session_start();


    $codiceid=$_POST['codiceid'];
    $classe=$_POST['classe'];

    echo 
    '<div id="popup"></div><div id="domande">';
    $r=mysql_query("SELECT * FROM domande");
    echo 
    "<font size='5' color='#B8860B' align='center' >[b][i]
    "
    ;
    echo 
    "[list=1]RIEPILOGO RISPOSTE

    "
    ;
    echo 
    "</font>[list=1]";
    while(
    $row=mysql_fetch_array($r)){ 

        
    //query che da il problema
        
    $r2=mysql_query("SELECT count(rf.*) as num, rf.idrisp, rf.iddom, testo  
       FROM rispostefornite as rf INNER JOIN rispostepossibili as rp on rf.iddom=rp.iddom 
    48- WHERE idquest="
    .$classe." AND rf.iddom=".$row['rf.iddom']." group by rf.idrisp, rf.iddom");
        
    //stessa query senza INNER JOIN
        
    $r2=mysql_query("SELECT count(*) as num, idrisp, iddom FROM rispostefornite
        WHERE idquest=
    $classe AND iddom=".$row['iddom']." group by iddom, idrisp");
        
        
        
        while(
    $row2=mysql_fetch_array($r2)){ 
                echo 
    "
    [b]ID Domanda: id"
    .$row2['iddom']."
    Risposta: "
    .$row2['idrisp']."
    Numero risposte: "
    .$row2['num']."
    [/b]"
    ;    
                echo 
    "[url='javaScript:openPopup(\"".$row2[']Vedi grafico statistiche per questa domanda[/url]

    ";

        }
    }
    echo '
    </div>';
    ?>

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    292
    La prima select non esegue una join, proverei a cambiare $row['rf.iddom'] in $row['iddom'] nella query che da problemi supponendo che la tabella domande abbia una colonna iddom

  6. #6
    niente, non cambia, le ho provate tutte...ora cambio il nome iddom in una delle due tabelle,magari fa confusione solo per questo motivo

  7. #7
    Utente di HTML.it L'avatar di Ranma2
    Registrato dal
    Mar 2003
    Messaggi
    2,648
    Direi che stampare l'errore potrebbe essere utilie

    Codice PHP:
    mysql_query("SELECT mia_colonna FROM mia_tabella")
        or die(
    "Query non valida: " mysql_error()); 
    Ma "48-" cosa sarebbe?

    P.S.: mysql_query è deprecata, passa a PDO o mysqli
    P.S.: quelle query sono soggette a sql injection, devi fare l'escape delle stringhe o passare a PDO

  8. #8
    chiedo scusa,

    "-48" era per mostrare la riga

    errore: Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\quiz\statistiche.php on line 63

    linea 63:
    Codice PHP:
    while($row2=mysql_fetch_array($r2)) 
    inserisco la query i passi successivi, spero di aver usato l'escape correttamente:
    Codice PHP:
    if ( isset($_POST['codiceid']) || isset($_POST['classe'])){

        echo 
    '<div id="popup"></div><div id="domande">';
        
    $r=mysql_query("SELECT * FROM domande");
        echo 
    "<font size='5' color='#B8860B' align='center' >[b][i]
    "
    ;
        echo 
    "[list=1]RIEPILOGO RISPOSTE

    "
    ;
        echo 
    "</font>[list=1]";
        while(
    $row=mysql_fetch_array($r))
        { 
            
    //regruppare risposte per ogni domanda
            
    $r2=mysql_query("SELECT count(rispostefornite.*) as num, testorisp, rispostefornite.idrisp, rispostefornite.iddom FROM rispostefornite
            INNER JOIN rispostepossibili on rispostefornite.iddom=rispostepossibili.iddom
            WHERE idquest=\""
    .$classe."\" AND rispostefornite.iddom=\"".$row['iddom']."\" group by rispostefornite.idrisp, rispostefornite.iddom");
            
            
            
    /*$r2=mysql_query("SELECT count(*) as num, idrisp, iddom FROM rispostefornite
            WHERE idquest=$classe AND iddom=".$row['iddom']." group by iddom, idrisp");*/
            
            
            /*$testo=mysql_query("SELECT * FROM rispostepossibili");
            $testo2=mysql_query("SELECT testorisp FROM rispostepossibili where idrisp='".$testor['idrisp']."' AND idquest=$classe AND iddom=".$row['iddom']."");
            $testor=mysql_fetch_array($testo);*/
            
            
            
    while($row2=mysql_fetch_array($r2))
            { 
                    echo 
    "
    [b]ID Domanda: id"
    .$row2['iddom']."
    Risposta: "
    .$row2['idrisp']."
    Numero risposte: "
    .$row2['num']."
    [/b]"
    ;    
                    echo 
    "[url='javaScript:openPopup(\"".$row2[']Vedi grafico statistiche per questa domanda[/url]

    ";

            }
        }
        echo '
    </div>';
        
    } else {
            echo "<h1>Codice o classe errati3
    </h1>";
            header("refresh: 2;url=insert.html");
        }
    //chiusura della connessione
    mysql_close($conn);
    ?> 

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.