Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    contare nr° righe tabelle

    ciao,

    ho un indice delle categorie delle faq.
    avrei bisigno di aggiungere il numero, cioè quante faq sono presenti per ogni categoria.
    Per cui ho 2 tabelle:

    1 - categoria faq
    2 - faq per categoria

    adesso io ho questo:


    codice:
    $query = "SELECT * FROM cat_faq";
    $result = mysql_query($query) or die(mysql_error());
    
    echo "<table class=\"tabella\">";
    
    if (mysql_num_rows($result) >0){
    
    /* determine number of rows result set */
       $row_cnt = mysql_num_rows($result);
    
    
    
    while($select = mysql_fetch_array($result)){
    
    echo"<tr><td><a href=\"index.php?page=pagina\">{$select["nome_cat_faq"]}";
    
    printf($row_cnt);
    
    echo"</a></td></tr>";


    allora, la query così com'è non va..devo usare LEFT JOIN?

    ho provato una cosa del genere...
    codice:
    $query = "SELECT * FROM cat_faq c LEFT JOIN prod_faq p ON c.id_cat_faq = p.id_prod_faq ORDER BY c.id_cat_faq, p.id_prod_faq";

    ma non mi restituisce niente...
    che pastrocchio ho fatto??

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    241
    SELECT c.*, count(p.*)
    FROM prod_faq AS p, cat_faq AS c
    WHERE c.id_cat_faq = p.id_prod_faq
    GROUP BY p.id_prod_faq

    credo sia questa la soluzione, provala

  3. #3
    grazie per la risposta,

    l'ho provata,però mi restituisce un errore di sintassi sql.

    siccome in questo tipo di query non mi sono mai avventurato, non saprei come aggiustarla


  4. #4
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    241
    SELECT *, count(*)
    FROM prod_faq
    GROUP BY id_prod_faq

    poi puoi risalire al nome della categoria così:

    SELECT nome_cat_faq
    FROM cat_faq
    WHERE id_cat_faq=$id_p_faq

  5. #5
    allora vediamo se riesco a capire...

    codice:
    SELECT *, count(*)
    FROM prod_faq
    GROUP BY id_prod_faq
    così non mi restituisce l'errore, ma mi visualizza tutte le righe della tabella prod_faq.

    cioè ho 2 categorie inserite e ciascuna ha 2 faq.
    mi visualizza il numero "4" su 4 righe...
    come da immagine

    anche se risalgo al nome come dici, ci sarebbe il nome al posto del numero "4"..
    :master:
    Immagini allegate Immagini allegate

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    241
    scusa ma qual'è l'indice che ti relaziona alla tabella cat_faq?

    Tabella cat_faq, campi:
    .
    .
    .

    Tabella prod_faq, campi:
    .
    .
    .

  7. #7
    cat_faq:

    id_cat_faq
    nome_cat_faq

    prod_faq:

    id_prod_faq
    id_cat_faq
    titolo
    domanda
    risposta

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    241
    ah ecco allora la query è:

    SELECT id_cat_faq, count(*)
    FROM prod_faq
    GROUP BY id_cat_faq

    e riprova questa che potrebbe essere la soluzione finale:

    SELECT prod_faq.id_cat_faq, count(prod_faq.*)
    FROM prod_faq
    LEFT JOIN cat_faq
    ON cat_faq.id_cat_faq=prod_faq.id_cat_faq
    GROUP BY prod_faq.id_cat_faq

  9. #9
    la prima funzia, la seconda mi da sempre errore di sintassi sql.

    cmq la prima mi restituisce il numero delle righe della tabella prod_faq relative alla categoria cat_faq.
    ma non so se è corretto, nel senso che io voglio solo che sì mi dia il numero delle faq presenti per categoria, ma tra parentesi a fianco del nome della categoria.



    codice:
    SELECT nome_cat_faq
    FROM cat_faq
    WHERE id_cat_faq=$id_p_faq
    ma dovrei fare un'altra query per ricavare il nome?

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    241
    SELECT concat(c.nome_cat_faq,'(',count(c.id_cat_faq),')')
    FROM cat_faq c
    LEFT JOIN prod_faq p
    ON c.id_cat_faq=p.id_cat_faq
    GROUP BY p.id_cat_faq

    la soluzione se non è questa ci assomiglia molto, io non ho mai fatto query composte con JOIN e GROUP BY, quindi può essere che sbaglio sintassi, comunque la strada è questa... prova sennò ad andare in ricerca sul forum con parole chiavi: GROUP BY e JOIN

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.