2012-03-11 13 views

risposta

11

Oltre alle risposte corrette, ci sono diversi modi per gestire questo:

  • Se si aggiunge LIMIT 1, il set di risultati conterrà solo una riga e il ciclo while terminerà dopo una singola iterazione:

    $q = "select whatIwant FROM table where id = 'myId' LIMIT 1"; 
    $r = mysql_query($q); 
    while($i = mysql_fetch_array($r)) { 
        $j = $i['whatIwant']; 
    } 
    echo $j; 
    
  • Se si chiama mysql_fetch_array senza un ciclo, si otterrà la prima riga del set di risultati:

    $q = "select whatIwant FROM table where id = 'myId'"; 
    $r = mysql_query($q); 
    $i = mysql_fetch_array($r); 
    $j = $i['whatIwant']; 
    echo $j; 
    
  • Se si aggiunge break al corpo del ciclo, il ciclo terminerà dopo un'iterazione.

    $q = "select whatIwant FROM table where id = 'myId'"; 
    $r = mysql_query($q); 
    while($i = mysql_fetch_array($r)) { 
        $j = $i['whatIwant']; 
        break; 
    } 
    echo $j; 
    

È inoltre possibile combinare questi approcci (anche se usando break non è davvero elegante, in questo caso).

L'approccio migliore utilizza LIMIT e omette il ciclo while, come @zaf shows in his answer. Ciò rende il codice più chiaro ed evita operazioni inutili nel database.

2
select whatIwant FROM table where id = 'myId' limit 1 
2

Bene, allora lasciare fuori il loop:

$q = "select whatIwant FROM table where id = 'myId'"; 
$r = mysql_query($q); 
$i = mysql_fetch_array($r); 
$j = $i['whatIwant']; 
echo $j; 

Questo sarà prendere solo la prima riga.

8

È possibile specificare il numero di righe nella query sql utilizzando la sintassi 'LIMIT'.

Inoltre, è possibile rimuovere il ciclo while e ottenere la prima riga restituita, se questo è tutto ciò che si desidera.

Per esempio (senza il controllo valore restituito):

$q = "select whatIwant FROM table where id = 'myId' LIMIT 1"; 
$r = mysql_query($q); 
$i = mysql_fetch_array($r); 
print_r($i); 
0
$sql224="select * from z_category order by id asc LIMIT 1"; 
$res224=mysql_query($sql224); 
$rw224=mysql_fetch_array($res224); 
$activeid2= $rw224['pkid']; 
+3

Benvenuti a Stack Overflow! Sebbene questo snippet di codice sia benvenuto e possa fornire un aiuto, sarebbe [notevolmente migliorato se includesse una spiegazione] (// meta.stackexchange.com/q/114762) di * come * affronta la domanda. Senza di ciò, la tua risposta ha un valore educativo molto inferiore - ricorda che stai rispondendo alla domanda per i lettori in futuro, non solo per chi chiede ora! Si prega di [modificare] la risposta per aggiungere una spiegazione e fornire un'indicazione di quali limitazioni e ipotesi si applicano. –

Problemi correlati