Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Problema query non dà il primo risultato

    Salve a tutti e scusate per il titolo.
    Cmq io stò facendo uno script e all'interno di questo script eseguo una query in cu seleziono tutti i dati della tabella che abbiano il seguente requisito:

    codice:
    $sql1=SELECT * FROM commenti WHERE orbc_nnews = '$requisito'
    Ora se per caso non c'è nessun risultato lo verifico con un ciclo if:
    codice:
    $query1 = mysql_query($sql1, $db1);
    $query11 = mysql_fetch_row($query1);
    
    if (empty($query11)){
      
      echo 'Nessun risultato disponibile';
    
    }else{
    
     while($row1=mysql_fetch_array($query1)){
      
      echo "Mostra i dati..........$row1[risultati]";
      
      } 
    
    }
    Ecco il problema stà nel fatto che se i risultati ci sono il ciclo while che uso per mostrarli non mi danno il primo risultato di quella query??

    Esempio:

    Ho questi risultati:

    1
    2
    3


    Il ciclo while mi dà questi risultati:

    2
    3

    Ma il primo non me lo dà come mai???
    GRAZIE

  2. #2
    Perche' il primo lo estrai e non lo stampi.

    Usa mysql_num_rows() se vuoi sapere se hai o meno dei risultati dalla query.


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

  3. #3
    Scusa ma non capisco, perchè non dovrei stamparlo, io ho sempre usato mysql_fetch_array e mi ha sempre dato tutti i dati. Solo questa volta che l'ho messo all'interno di un ciclo IF mi dà questo risultato.

  4. #4
    l'errore è questo: stai eseguendo prima un mysql_fetch_row (che legge la prima riga di risultati e porta il puntatore alla seconda riga) e poi mysql_fetch_array (che parte quindi dalla seconda riga).

    puoi usare mysql_data_seek per riportare il puntatore all'inizio del result set, prima del mysql_fetch_array:
    http://it2.php.net/manual/it/functio...-data-seek.php

    comunque il controllo che fai non è molto sensato.... ti consiglio di fare così:

    Codice PHP:
    $query1 mysql_query($sql1$db1);

    // se ci sono delle righe di risultato...
    if (mysql_num_rows($query1)>0) {
      while(
    $row1=mysql_fetch_array($query1)) {
        
    // visualizzazione dei risultati
      
    }
      unset(
    $row1);
    }
    else {
      
    // nessun risultato trovato
    }
    mysql_free_result($query1); 

  5. #5
    Grazie per il suggerimento!! Ho anche capito il perchè mi visualizza da il secondo dato!!
    Grazie ragazzi.

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.