Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Select count

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    2,125

    Select count

    volevo farmi restituire da una funzione da me creata il numero di record che ho su una tabella. Non capisco perche se la query sql la provo su phpmyadmin e funziona ma se la faccio fare al mio programma non va e da errore.

    questa la mia funzione :

    function countPage()
    {
    $sql = "select count ('id_news') from news";
    $result = mysql_query($sql, $this->conn)or die ("errore : " .mysql_error());
    return $result;
    }

    penso (sbagliando ) che bastera stampare poi $result
    non capisco perche mi da il seguente errore

    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 '('id_news') from news' at line 1


    grazie ciao

  2. #2
    codice:
     $sql = "select count(id_news) from news";
    Ovvero.. togli lo spazio dopo COUNT e togli gli apici dal nome del campo.
    <<E' una decisione molto importante. Pensaci bene, Ataru!>>
    <<STOLTO! Non lo sai che io AGISCO SEMPRE PRIMA DI PENSARE???>>

  3. #3
    (id_news) senza apici.

    il return ti rende l'identificatore di connessione, il resource id #, non il totale del conteggio, questo lo devi estrarre come fosse un risultato qualsiasi.


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

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    34
    prova a togliere gli apici dove indichi la colonna nel COUNT, di solito a me dava l'errore se mettevo gli apici per un nome di una colonna della tabella.
    Poi non basta stampare il valore di result, devi utilizzare la funzione mysql_fetch_array o mysql_fetch_object:

    $array_appo = mysql_fetch_array($result);
    echo £array_appo['count(id_news)'];

    ricordati che per leggere i risultati di un result devi sempre usare una di queste funzioni... se la riga del risultato è una sola basta quanto detto, altrimenti devi utilizzare un ciclo di questo tipo:

    while( $appo = mysql_fetch_array($result)) {
    echo $appo['campo'];
    }

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    78
    ciao a tutti
    io ho riscontrato un'altro problema,con questo codex:

    $reg = mysql_query("SELECT COUNT(id_utente) FROM 003_utenti");
    $utenti_reg = mysql_num_rows($reg);
    echo $utenti_reg;
    Mi ritorna "1" quando in realta ce nè sono 10, confermato anche dal comando "SELECT COUNT(id_utente) FROM 003_utenti" eseguito nel phpmyadmin.Non sono riuscito a capire il xchè.C'è qlc che mi può aiutare?.
    Stano.

  6. #6
    Utente di HTML.it L'avatar di fabi080
    Registrato dal
    Mar 2002
    Messaggi
    442
    E' normale che ti stampi 1, in phpmyamdin tu hai come risultato un record che contiene il valore 10, qui è la stessa cosa, il numero di righe è 1 perchè hai un solo record nel quale trovi il valore che ti interessa.

    $utenti_reg = mysql_result($reg, 0, 0);
    echo $utenti_reg;

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    78
    Perfetto funziona ma giusto per capire meglio(sono inesperto):
    cosa fà l'argomento "$reg, 0, 0" in mysql_result($reg, 0, 0);
    Tnk.Stefano

  8. #8
    Utente di HTML.it L'avatar di fabi080
    Registrato dal
    Mar 2002
    Messaggi
    442
    Ehm, veramente sono 3 argomenti, cmq è una funzione di accesso diretto ai dati, visto che in una query del genere hai necessariamente un solo ed unico risultato è inutile salvarlo in un array di un solo campo, perciò con mysql_result gli dico dammi il dato del risultato $reg, campo 0, colonna 0, tanto so che quello che cerco si trova lì.

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    78
    Grazie 1000.
    Tnk.Stefano.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.