Visualizzazione risultati 1 fino 12 di 12

Discussione: while con query di selezione da 2 tabelle

  1. #1
    Guest

    Predefinito while con query di selezione da 2 tabelle

    ciao a tutti ho un problema... ho una pagina dove eseguo una semplice query con questo codice
    Codice PHP:
    $sql = "SELECT * FROM articoli ORDER BY id LIMIT 0,5";
    $q = mysql_query($sql);

    while(
    $r = mysql_fetch_array($q))
    echo
    $r['articolo']."<br>";
    però volevo scrivere vicino anche il numero di commenti usando mysql_num_rows per ogni articolo evitando di fare 2 query se è possibile.. nella tabella commenti ho id autore commento id_articolo

    grazie a quelli che mi aiuteranno

  2. #2
    Guest

    Predefinito

    Codice:
    SELECT articoli.*, COUNT(commenti.id) FROM articoli, commenti WHERE commenti.id_articolo = articoli.id GROUP BY articoli.id LIMIT 0,5
    Prova con questa query, in $r["COUNT(commenti.id)"] hai il numero dei commenti.

    Saluti!

  3. #3
    Guest

    Predefinito

    grazie della riposta! ho provato la query e non mi da errori però non mi visualizza neanche gli articoli e ho sostituto $r['articolo'], $r['titolo'] con $r['articoli.articolo'] ma non va lo stesso...

  4. #4
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Prova a farti stampare il contenuto di $r usando, ad esempio, print_r.


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  5. #5
    Guest

    Predefinito

    non mi stampa niente lo stesso

  6. #6
    Guest

    Predefinito

    Provato così?
    Codice PHP:
    $q = mysql_query("SELECT articoli.*, COUNT(commenti.id) FROM articoli, commenti WHERE commenti.id_articolo = articoli.id GROUP BY articoli.id LIMIT 0,5");

    while(
    $r = mysql_fetch_array($q)) {
    echo
    $r["articolo"]."<br />";
    }

  7. #7
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Citazione Originalmente inviato da palla000 Visualizza messaggio
    non mi stampa niente lo stesso
    Allora vuol dire che la query non ha restituito nulla


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  8. #8
    Guest

    Predefinito

    non stampa niente lo stesso

  9. #9
    Guest

    Predefinito

    Prova a fare la query in phpmyadmin, vedi cosa ti esce!!

  10. #10
    Guest

    Predefinito

    scusate tutti quanti mi sembrava che ci fossero dei commenti nel db e invece non c'erano..
    cmq li ho inseriti e mi stampa solo gli articoli che hanno almeno 1 commento

  11. #11
    Guest

    Predefinito

    Purtroppo SELECT COUNT non conta i valori nulli.
    Citazione Originalmente inviato da w3c school
    The COUNT(column_name) function returns the number of values (NULL values will not be counted) of the specified column
    Credo che tu sia costretto ad effettuare un altra query, ed contare i risultati con mysq_num_rows()

  12. #12
    Guest

    Predefinito

    ok grazie mille per le risposte!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •