Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Mysql, query sbagliata

  1. #1

    Mysql, query sbagliata

    Ciao a tutti, dovrei fare un interrogazione su un database, che è fatto di 3 tabelle: alunno, docente, scuola. Dovrei fare la query per cercare gli alunni dividendo in categorie in base all'Inserimento nella classe. Esempio abbiamo10 alunni, e devo dividerli per gruppi di inserimento.
    La query penso che sia questa ,ma penso che sia sbagliata:

    SELECT COUNT(*) FROM Alunno
    SELECT COUNT(*) FROM Alunno WHERE Inserimento nella classe=Difficoltoso)
    SELECT COUNT(*) FROM Alunno WHERE Inserimento nella classe=Problematico)
    SELECT COUNT(*) FROM Alunno WHERE Inserimento nella classe=Senza problemi)

    $totale=mysql_fetch_array(SELECT Inserimento nella classe,COUNT(*) AS Numero FROM Alunno GROUP BY Inserimento nella classe)

    e come la faccio interagire con il codice php?
    Grazie per qualsiasi suggerimento...

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Un nome di campo costituito da più parole (scelta pessima) richiede che lo stesso sia racchiuso tra backtick (`). Inoltre la tipologia (difficoltoso, ecc) deve essere racchiusa tra apici.

  3. #3
    Un nome di campo costituito da più parole (scelta pessima) richiede che lo stesso sia racchiuso tra backtick (`). Inoltre la tipologia (difficoltoso, ecc) deve essere racchiusa tra apici.
    ok grazie, quindi cosa devo fare per far che il nome campo sia diviso in una sola parola?

  4. #4
    mettendo nel codice php mi da seguente errore

    Warning: mysql_fetch_array() expects parameter 1 to be resource, string given in C:\xampp\htdocs\file33.php on line 24
    Errore nella query: 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 'SELECT COUNT(*) FROM alunno WHERE InserimentoClasse='Difficoltoso' SELECT COUNT' at line 2
    codice è questo :
    <html>
    <head><title>Recupero dati da una tabella di database</title></head>
    <body>
    <h1>Docente</h1>
    <?php
    $db_host = "localhost"; // il server che si trova sulla macchina locale
    $db_user = "root";
    $db_password = "";
    $db_name = "istruzione";
    $db = mysql_connect($db_host, $db_user, $db_password);

    if ($db == FALSE)
    die("Errore nella connessione a MySql: " . mysql_error()); // verifica il buon esito della connessione e stampa l'eventuale errore
    mysql_select_db($db_name, $db)

    or die ("Errore nella selezione del database. Verificare i parametri");
    $query = ("
    SELECT COUNT(*) FROM alunno
    SELECT COUNT(*) FROM alunno WHERE InserimentoClasse='Difficoltoso'
    SELECT COUNT(*) FROM alunno WHERE InserimentoClasse='Problematico'
    SELECT COUNT(*) FROM alunno WHERE InserimentoClasse='SenzaProblemi' ");

    $totale=mysql_fetch_array("SELECT InserimentoClasse,COUNT(*) AS Numero FROM alunno GROUP BY InserimentoClasse ");

    $ris = mysql_query($query,$db) or die("Errore nella query: " . mysql_error());
    while($riga = mysql_fetch_array($ris)) //elabora il risultato
    {$InserimentoClasse=$riga["InserimentoClasse"];
    $InserimentoClasse=$totale["InserimentoClasse"];
    echo "$InserimentoClasse
    ";

    }
    ?>
    </body>
    <html>
    ragazzi cosa devo fare aiuto plz è urgente =(

  5. #5
    Ciao

    magari nel frattempo hai già risolto...

    la sintassi della query è esatta ma penso sia stata applicata all'istruzione sbagliata, infatti la query non è stata eseguita.
    Ti suggerisco alcune istruzioni vedi di adattarle al tuo caso specifico.


    codice:
    <?
       $dati = mysql_query("SELECT InserimentoClasse,COUNT(*) AS Numero FROM alunno GROUP BY InserimentoClasse");
    
       ... ciclo
       $array = mysql_fetch_array($dati);
       $InserimentoClasse= $array["InserimentoClasse"];
       $numero = $array["Numero"];
       ... fine ciclo
    ?>
    tieni presente che la mysql_query("SELECT InserimentoClass..... seleziona 3 record (uno per ogni InserimentoClasse, eventualmente puoi inserire una order by) e per poterli leggere tutti dovrai impostare un ciclo con mysql_fetch_array($dati).

    Spero di non depistarti.

    Saluti

  6. #6
    vitren54

    Grazie per avermi risposto. Sono andato un po avanti grazie al tuo aiuto ora mi da errore (Parse error: syntax error, unexpected T_WHILE in C:\xampp\htdocs\file33.php on line 31) ovvero quella riga dove inizia il ciclo:

    $query = mysql_query("SELECT COUNT(*) FROM alunno
    SELECT COUNT(*) FROM alunno WHERE InserimentoClasse='Difficoltoso'
    SELECT COUNT(*) FROM alunno WHERE InserimentoClasse='Problematico'
    SELECT COUNT(*) FROM alunno WHERE InserimentoClasse='SenzaProblemi' ");


    echo "

    Il database è connesso
    ";
    echo"Cognome Nome

    ";
    $ris = mysql_query($query,$db) or die("Errore nella query: " . mysql_error());

    $dati = mysql_query("SELECT InserimentoClasse,COUNT(*) AS Numero FROM alunno ORDER BY InserimentoClasse")

    while($array = mysql_fetch_array($dati)){
    $InserimentoClasse= $array["InserimentoClasse"];
    $numero = $array["Numero"];
    echo "$numero";
    echo "$InserimentoClasse
    ";
    }

  7. #7
    ora mi dice, Errore nella query: Query was empty

    codice:

    $query = mysql_query("SELECT COUNT(*) FROM alunno
    SELECT COUNT(*) FROM alunno WHERE InserimentoClasse='Difficoltoso'
    SELECT COUNT(*) FROM alunno WHERE InserimentoClasse='Problematico'
    SELECT COUNT(*) FROM alunno WHERE InserimentoClasse='SenzaProblemi'
    SELECT InserimentoClasse,COUNT(*) AS Numero FROM alunno ORDER BY InserimentoClasse");

    echo "

    Il database è connesso
    ";
    echo"Cognome Nome

    ";

    $ris = mysql_query($query,$db) or die("Errore nella query: " . mysql_error());

    while($dati = mysql_fetch_array($ris)){
    $InserimentoClasse= $dati["InserimentoClasse"];
    $Numero = $dati["Numero"];
    echo "$Numero";
    echo "$InserimentoClasse
    ";
    }

  8. #8
    Ciao

    la $query impostata all'inizio (quella con tutte le SELECT COUNT) non serve, ho provato a mettere una

    echo "query=".$query

    e restituisce stringa vuota (prova anche tu).

    La cosa che manca è la query corretta nell'istruzione mysql_query che e:

    SELECT InserimentoClasse,COUNT(*) AS Numero FROM alunno ORDER BY InserimentoClasse

  9. #9
    ... errata corrige

    La cosa che manca è la query corretta nell'istruzione mysql_query che e:

    SELECT InserimentoClasse,COUNT(*) AS Numero FROM alunno ORDER BY InserimentoClasse
    ho copiato e incollato la query sbagliata, quella corretta e:

    SELECT InserimentoClasse,COUNT(*) AS Numero FROM alunno GROUP BY InserimentoClasse ORDER BY InserimentoClasse

  10. #10
    grazie mille a vitren e nicola75ss, ho risolto tutto ora funziona alla perfezione :P, si potrebbe chiudere il topic

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.