Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di Nosfe
    Registrato dal
    Jan 2004
    Messaggi
    454

    [PHP-MySQL] Contare righe di 3 tabelle

    Salve a tutti,

    devo contare le righe di 3 tabelle e sapere quante righe ha ogni tabella.
    Per evitare di dover fare 3 query ho provato a fare così:
    Codice PHP:
    $sqltot="SELECT COUNT(u.*),COUNT(d.*),COUNT(p.*) FROM ".$tbl_ut." u,".$tbl_disc." d,".$tbl_posts." p";
    $dotot=mysql_query($sqltot,$conn) or die(mysql_error());
    list(
    $totu,$totd,$totp)=mysql_fetch_row($dotot); 
    Solo che mi dà errore di sintassi.

    Possibile che non si possa fare una cosa del genere? Se non ricordo male con UNION si sommano le righe, io invece vorrei le righe di ogni tabella.

    Grazie in anticipo

  2. #2
    Utente di HTML.it L'avatar di Nosfe
    Registrato dal
    Jan 2004
    Messaggi
    454
    UP

  3. #3
    codice:
    SELECT '$tbl_ut' as tabella COUNT(*) as tot
    from $tbl_ut
    UNION
    SELECT '$tbl_disc' COUNT(*)
    from $tbl_disc
    UNION
    SELECT '$tbl_posts' COUNT(*)
    from $tbl_posts

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  4. #4
    Utente di HTML.it L'avatar di Nosfe
    Registrato dal
    Jan 2004
    Messaggi
    454
    Ti ringrazio piero, ma anche così mi dà ancora errore di sintassi

  5. #5
    Originariamente inviato da Nosfe
    Ti ringrazio piero, ma anche così mi dà ancora errore di sintassi
    Quale errore ?

    metti query ed errore se vuoi una risposta... mi sembra ovvio o no?


    edit:

    manca una virgola a dividere i due campi richiesti nella prima riga... e anche nelle altre select

    Azzolina.... ma una lettura alla query gliel'hai data?

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  6. #6
    Utente di HTML.it L'avatar di Nosfe
    Registrato dal
    Jan 2004
    Messaggi
    454
    Si si gliel'ho data, ma UNION e gli alias con AS non li uso proprio mai... non sono ancora così esperto e quindi pensavo non servissero. Sorry

  7. #7
    Utente di HTML.it L'avatar di Nosfe
    Registrato dal
    Jan 2004
    Messaggi
    454
    Dovrebbe essere così:

    codice:
    SELECT '$tbl_ut' as tabella, COUNT(*) as tot
    from $tbl_ut
    UNION
    SELECT '$tbl_disc', COUNT(*)
    from $tbl_disc
    UNION
    SELECT '$tbl_posts', COUNT(*)
    from $tbl_posts
    Solo che mi dà i risultati sfasati. Suppongo mi restituisca tre riga ora.. fammi provare

  8. #8
    Utente di HTML.it L'avatar di Nosfe
    Registrato dal
    Jan 2004
    Messaggi
    454
    Ok ce l'ho fatta per completezza metto la query che ho modificato di poco (dato che mi serviva solo il numero di righe ):
    codice:
    SELECT COUNT(*) as tot
    from $tbl_ut
    UNION
    SELECT COUNT(*)
    from $tbl_disc
    UNION
    SELECT COUNT(*)
    from $tbl_posts
    E poi con un while prendo i risultati delle tre righe che mi restituisce.

    Grazie piero.mac e scusa il continuo disturbo

  9. #9
    Il nome della tabella era perche' usavi variabili al posto del nome esplicito. Quindi era per avere un riferimento tabella => n. record.

    Solo per quello? No. Anche per un altro motivo... UNION sovrascrive i risultati uguali. Quindi se per caso hai due count() identici ti frega .... Se non ti serve il nome, mettici 1 2 3 anche se non lo estrai, almeno ti garantisci le righe.

    Difficile che io scriva una dato in piu' di quello che serve...


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  10. #10
    Utente di HTML.it L'avatar di Nosfe
    Registrato dal
    Jan 2004
    Messaggi
    454
    Ah capisco, allora ci vuole.

    Grazie anche per la spiegazione

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.