Visualizzazione dei risultati da 1 a 2 su 2

Discussione: [php] : array

  1. #1

    [php] : array

    ho un database con le seguenti tabelle
    codice:
    thread(id_thread,titolo,commento);
    post(id_post,thread,title,testo,postby,data);
    reply(id_reply,post,title,testo,replyby,data);ì
    con :
    codice:
    FOREIGN KEY (thread) REFERENCES thread(id_thread);
    FOREIGN KEY (post) REFERENCES post(id_post);
    ora vorrei selezionare il numero totale dei reply per ogni thread e quindi faccio la sequente query:
    Codice PHP:
    //estraggo tutti gli id_post associati ad un thread ($id_thread)
    $query="SELECT id_post FROM post WHERE thread='$thread'";
    $result=mysql_query($query) or die ("query get_num_message fallita: ".mysql_error() );
    $id=mysql_fetch_row($result);
    //inizializzo il numero totale dei reply presenti a 0
    $totale=0;
    //controllo se $id è vuoto
    if (array_pop($id)!=NULL)
    {
    //se non è vuoto lo faccio scorrere e per ogni id_post 
    //il numero dei reply associati
            
            
    foreach ($id as $post)
        {
            
    $query="SELECT COUNT(*) FROM reply WHERE post = '$post'";
            
    $result=mysql_query($query) or die ("query get_num_message fallita: ".mysql_error() );
            
    $num=mysql_fetch_row($result);
    //sommmo il numero dei reply associati al post al totale
            
    $totale+=$num['0'];
        }    
    }
    return 
    $totale
    il problema è che mi esce questo notice e non mi fa la somma:
    codice:
    Warning: array_pop(): The argument should be an array in C:\apachefriends\xampp\htdocs\esempi\navigare\db_use.php on line 71
    come se $id non fosse un array, come posso controllarlo se è vuoto?
    "Due cose riempiono l’animo di ammirazione e venerazione sempre nuova e crescente, quanto piú spesso e piú a lungo la riflessione si occupa di esse: il cielo stellato sopra di me, e la legge morale in me..." Immanuel Kant

  2. #2
    bhe ho risolto con un innerjoin:
    Codice PHP:
    $query="SELECT COUNT(*) FROM reply INNER JOIN post ON reply.post =post.id_post WHERE post.thread='$thread'";
            
    $result=mysql_query($query) or die ("query get_num_message fallita: ".mysql_error() );
            
    $num=mysql_fetch_row($result);
            return 
    $num['0'
    meno male...

    cmq grazie a tutti quelli che in questo momento si stanno scervellando per me
    p.s.

    sarebbe interessante saper perchè array_pop() non mi considerava $id come array...insomma nel primo caso quale poteva essere il metodo adatto per sapere se quell'array era vuoto?
    "Due cose riempiono l’animo di ammirazione e venerazione sempre nuova e crescente, quanto piú spesso e piú a lungo la riflessione si occupa di esse: il cielo stellato sopra di me, e la legge morale in me..." Immanuel Kant

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.