Visualizzazione dei risultati da 1 a 8 su 8

Discussione: problema con count()

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2000
    Messaggi
    129

    problema con count()

    Ciao ragazzi sono alle prese con questo problemino: nel mio script uso questo codice per una query al db:

    $query = "SELECT campo FROM $user_tablename WHERE (a LIKE '$b'
    AND c LIKE '$d')";

    Tale codice funziona perfettamente anche quando i valori $b e $d filtrati da WHERE non sono assegnati.
    Il problema nasce invece quando cerco di ricavare la grandezza dell'array estratto con count(), pare non accetti le restrizioni date da WHERE,perchè?

    $query = "SELECT count(*) FROM $user_tablename WHERE (a LIKE '$b'
    AND c LIKE '$d')";

    Vi ringrazio anticipatamente, saluti andrea!

  2. #2
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120

    Re: problema con count()

    Originariamente inviato da hhchnos

    Il problema nasce invece quando cerco di ricavare la grandezza dell'array estratto con count()
    Cosa c'entra il COUNT sql con la grandezza dell'array estratto? Spiega meglio quello che vuoi fare

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2000
    Messaggi
    129
    vorrei semplicemente contare i records estratti con la precedente query, ho trovato al volo questo esempio simile al mio che timostro:

    esempio1
    La tabella "anagrafici"

    Nome Cognome Eta Citta
    Lorenzo Pascucci 17 Oriolo Romano
    Marcello Tansini 21 Milano
    Michele Basso 17 Udine

    SELECT COUNT (*) FROM anagrafici

    Risultato

    Conta il numero di righe, records presenti: 3

    Esempio 2
    SELECT COUNT (*) FROM anagrafici WHERE eta < 20

    Risultato

    Il risultato è 2, in quanto solo in 2 records è presente un'età inferiore a 20

  4. #4
    Utente di HTML.it L'avatar di chris
    Registrato dal
    Sep 1999
    Messaggi
    1,568
    se la query la esegui comunque tanto vale usare mysql_num_rows()

    Che errore ti dà sulla query che usi per contare le righe?

  5. #5
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Bene, allora qual è il problema?

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2000
    Messaggi
    129
    riporto il codice completo da me usato:

    $query = "SELECT count(*) FROM $user_tablename WHERE (catgen LIKE '$restringi' AND provincia LIKE '$provincia') ";

    $result = mysql_query($query);
    $query_data = mysql_fetch_row($result);
    $total_num_user = $query_data[0];
    if(!$total_num_user) echo "errore";

    escludendo WHERE (catgen LIKE '$restringi' AND provincia LIKE '$provincia') " ottengo un risultato corretto ma relativo a tutti i records, dove sbaglio?

  7. #7
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    chris ti ha chiesto qual è l'errore e tu non l'hai detto, dal che si deduce che non hai nessun errore.
    Il tuo ultimo test stampa "errore" se il risultato della query è 0, quindi probabilmente è tutto ok

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2000
    Messaggi
    129
    perdonate le mie imprecisioni, ma mi sono avvicinato da poco a questo linguaggio e quindi va da se che possa dire non poche cavolate, cerco di spiegare l'errore:

    aggiungendo queste 2 condizioni ottengo che se le due variabili non sono settate la query mi restituisca cmq tutti i valori possibili:

    if (empty ($b)) {$b = "%";}
    if (empty ($d)) {$d = "%";}

    $query = "SELECT count(*) FROM $user_tablename WHERE (a LIKE '$b' AND c LIKE '$d') ";

    Lo so è colpa mia, abbiate pazienza sto imparando!
    grazie cmq a tutti

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.