Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    795

    amfphp e recordset vuoto

    ciao a tutti. sto cercando in lungo e in largo, ma non riesco a risolvere questa banalità: come faccio a sapere se un recordset è vuoto?
    $recordset= mysql_query($mia_query);

    se faccio count mi restituisce 1 anche se è vuoto, se faccio is_array mi restituisce false anche se non è vuoto... :master:
    <sfogo> ma porco giuda, leggerlo l'help online ogni tanto! </sfogo>

  2. #2
    $iCount=mysql_num_rows($recordset);

    if ($iCount==0){

    echo "vuoto";

    }

    Questo è il metodo che uso io, un pò banale, ma efficace!
    se fai una count giusta cmq non ti restituisce 1 se è vuoto. Probabilmente sbagli qualcosa!
    I dilettanti costruirono l'Arca, i professionisti il Titanic!

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    795
    io facevo count($recordset), pensando che fosse un pò come l'ubound di asp o l'array.length di actionscript. cmq ho risolto con mysql_num_rows anch'io, grazie!
    <sfogo> ma porco giuda, leggerlo l'help online ogni tanto! </sfogo>

  4. #4
    no no. Allora count() ti restituisce il limite massimo di un array. Il recordset che restituisce una query COUNT non è vuoto. Ha un valore che contiene il numero di record restituiti dalla query quindi se fai un count() ovviamente avrai come minimo 1 (se c'è un solo valore e quindi zero elementi). Per salvare il contenuto di una query count devi fare così:

    $sql="select count(campochiaveprimaria) from tabella;";

    $qryId=mysql_query($sql);

    $rstCnt=mysql_fetch_array($qryId);

    a questo punto hai un array che si kiama $rstCnt che contiene le info della query. In questo caso ha un solo campo con un valore intero. Siccome è possibile recuperare i valori dei campi specificati nella query usando sia la chiave stringa (il nome specificato del campo) o anke l'indice numerico (che è il numero cardinale dei campi specificati nell'ordine nella query) possiamo considerare count(campochiaveprimaria) come il primo campo che ha quindi il numero zero. Quindi:

    $iTotal=$rstCnt[0];

    ovviamente si usa una chiave primaria per evitare che ci possano essere valori NULL che sarebbero esclusi dal count.
    I dilettanti costruirono l'Arca, i professionisti il Titanic!

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.