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

    Contare numero di righe con Php e Mysql

    Ho un problema, non riesco a visualizzare il numero di righe che conto.
    Se uso questo codice direttamente dalla shell con MYSQL nessun problema, il Count funziona:

    codice:
    SELECT COUNT(giorni.trasferta) FROM giorni WHERE giorni.giorno BETWEEN '2011-05-01' and '2011-05-31' and giorni.trasferta=1;
    se passo al php, semplicemente non visualizza il risultato che invece vedo nella shell con la query MySQL.

    Nel Php uso questo codice:

    codice:
    $sql9 = mysql_query("SELECT COUNT(giorni.trasferta) FROM giorni WHERE giorni.giorno BETWEEN '$data1' and '$data2' and giorni.trasferta='1'") or die(mysql_error());
    e

    codice:
    $row9=mysql_num_rows($sql9);
    $pdf->Cell(3,1,$row9['trasferta'],1,0,'C',false);
    dove sbaglio ?

  2. #2
    Ciao, mysql_num_rows ritorna il numero di record non un array di campi.
    Nel tuo esempio basta che fai
    Codice PHP:
    $row9=mysql_num_rows($sql9);
    $pdf->Cell(3,1,$row9,1,0,'C',false); 
    con $row9 che è il numero di record che tu hai cercato con la tua query.

  3. #3
    Però non mi restituisce il totale.. se uso la query mysql da shell mi ritorna 11 come valore, che é il risultato giusto. Invece, anche facendo come dici tu, mi restituisce 1..

  4. #4
    E' ovvio che non funzioni in quanto mysql_num_rows restituisce in numero di record selezionati che nel tuo caso è 1 dato che effettui una count. La count effettua già il conteggio dei record, quindi non devi utilizzare mysql_num_rows ma semplicemente leggere il valore restituito:

    Codice PHP:
    $sql9 mysql_query("SELECT COUNT(giorni.trasferta) FROM giorni WHERE giorni.giorno BETWEEN '$data1' and '$data2' and giorni.trasferta='1'") or die(mysql_error());
    $record mysql_fetch_array($sql9);
    $count $record[0]; 
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  5. #5
    Basta anche fare così :

    Codice PHP:
    $sql9 mysql_query("SELECT COUNT(giorni.trasferta) FROM giorni WHERE giorni.giorno BETWEEN '$data1' and '$data2' and giorni.trasferta='1'") or die(mysql_error()); 
    echo 
    $sql9

    no??????????

  6. #6
    Hai ragione! grazie! :-), nel mentre ho risolto facendo così, dimmi se va bene uguale:

    la query l'ho appena modificata aggiungendo anche un "AS totale", quindi diventa così

    codice:
    "SELECT COUNT(giorni.trasferta) AS totale FROM giorni WHERE giorni.giorno BETWEEN '$data1' and '$data2' and giorni.trasferta='1'"
    e poi:

    codice:
    $row9=mysql_fetch_assoc($sql9);
    $pdf->Cell(3,1,$row9['totale'],1,0,'C',false);

  7. #7
    OT

    ma perché a voi il codice lo colora ed a me no?

    /OT

  8. #8
    Perchè tu metti il codice tra [CODE] mentre invece se lo metti tra [PHP] ti si colora

  9. #9
    Perchè noi paghiamo 20 euro ad html.it per farcelo colorare
    No scherzo... è quello che ti ha scritto Saretta.

  10. #10

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.