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

    problema con query count

    Ciao ragazzi ho un problema:
    da una pagina richiamo una funzione php inviando l'id univoco di un messaggio di cui poi vorrei estrarne le risposte.

    include("_include/reply_extract.php");
    extract_reply($message_unique_id,$type_of_order);


    poi nella mia function di reply_extract.php faccio una banalissima count


    Codice PHP:

      
    function extract_reply($univ_id,$type_of_order)
      {
        
    $controllo_messaggi_reply mysql_query("SELECT COUNT(*)
    FROM private_message
    WHERE 
    $univ_id=message_unique_id");
    while(
    $rowz_reply mysql_fetch_row($controllo_messaggi_reply)) {
       
    $numz_reply[] = $rowz_reply[1];
    }
    $numero_mess_reply array_sum($numz_reply);
    echo
    " stampo il num mess $numero_mess_reply"

    se questa query la metto dentro php my admin ok funziona mi restituisce il numero giusto,mentre quì mi da sempre 0! come mai secondo voi?

  2. #2
    Utente di HTML.it L'avatar di sotoli
    Registrato dal
    Mar 2008
    Messaggi
    150
    Ciao, secondo me è l'istruzione all'interno del ciclo while che non va bene.
    Nel tuo caso la funzione mysql_fetch_row() ritorna un array composto da un solo elemento e in un array il primo elemento ha indice "0" e non "1".
    Crestron Control Systems and AMX Control Systems Programmer

  3. #3
    Prova a fare un print_r($numz_reply) ti accorgi subito che ti restituisce un solo valore, che sarebbe il numero dei record. Non fare array_sum($numz_reply) ma fai
    echo" stampo il num mess $numz_reply[0]";

  4. #4
    Alla fine ho fatto in questo modo:

    Codice PHP:
    $numero_mess_reply=0;
    $controllo_messaggi mysql_query("SELECT *
                                                    FROM private_message 
                                 WHERE 
                                             
    $univoque=message_unique_id  and initial_message=0");
    while(
    $rowz mysql_fetch_row($controllo_messaggi)) {
       
    $numero_mess_reply$numero_mess_reply+1;

    Mi restituisce il numero giusto...
    Ma secondo voi è un modo giusto di eseguire questa operazione?

  5. #5
    Originariamente inviato da webking2003
    Alla fine ho fatto in questo modo:

    Codice PHP:
    $numero_mess_reply=0;
    $controllo_messaggi mysql_query("SELECT *
                                                    FROM private_message 
                                 WHERE 
                                             
    $univoque=message_unique_id  and initial_message=0");
    while(
    $rowz mysql_fetch_row($controllo_messaggi)) {
       
    $numero_mess_reply$numero_mess_reply+1;

    Mi restituisce il numero giusto...
    Ma secondo voi è un modo giusto di eseguire questa operazione?
    No, se fai in quel modo, non prendere tutti i campi, ma prendine uno solo, e non fare il while, ma hai una bella funzione di mysql che si chiama mysql_num_rows che ti restituisce il numero di righe ricevute. Comunque dovresti fare con il count, in questo modo non prelevi tutti i dati dal db solo per sapere quanti record ti vengono fuori

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.