Page 1 sur 1

recherche dans DB ne lit jamais la première ligne.

Posté : 01 août 2007, 18:52
par Davee
Bonjour,

j'ai ce petit code pour aller chercher des info dans une table.
mysql_connect($mysql_server,$mysql_loggin,$mysql_pass) or die("Can't find server ".$mysql_server);
mysql_select_db($mysql_db) or die("Can't select database ".$mysql_db);

   	$query = "SELECT sEmail FROM allusers WHERE name='aa'";
	
	$resulta = mysql_query($query) or die("Invalid query (login): " . mysql_error());
	
	$result=mysql_fetch_row($resulta);
	
	$nr = mysql_num_rows ($resulta);
	
	$rows=0;
	
	while ($rows<$nr) {
		echo "<br>";
		
		$rmail=mysql_fetch_array($resulta,MYSQL_ASSOC);
		
		print_r ($rmail);
		
		echo $rmail['sEmail'];
		$rows++;
	}
Les résultat s'affiche mais jamais la première ligne pourtant elle contient bien le name 'aa'

Quoi faire ???

Merci d'avance

david.

Posté : 01 août 2007, 19:13
par AB
Quand tu fais $result=mysql_fetch_row($resulta) tu lis la première ligne de ton tableau et le pointeur avance d'une ligne.
Donc $rmail=mysql_fetch_array($resulta) lit la deuxième ligne.

Posté : 01 août 2007, 19:24
par Davee
whooaaaaooowww !! :D

Merci AB j'avais le cerveau comme un pruneau d'agen.

ça simplifie un peu ouf!
mysql_connect($mysql_server,$mysql_loggin,$mysql_pass) or die("Can't find server ".$mysql_server);
mysql_select_db($mysql_db) or die("Can't select database ".$mysql_db);

   	$query = "SELECT sEmail FROM allusers WHERE sname='aa'";
	
	$resulta = mysql_query($query) or die("Invalid query (login): " . mysql_error());
	
	$nr = mysql_num_rows ($resulta);
	
	$rows=0;
	
	while ($rows<$nr) {
		$rmail=mysql_fetch_array($resulta,MYSQL_ASSOC);
		print_r ($rmail);

		$rows++;
	}
POur l'instant ça marche

Merci encore AB

David.

Posté : 01 août 2007, 19:24
par AB
Plus simplement, pour obtenir le même résultat, tu devrais pouvoir faire :

mysql_connect($mysql_server,$mysql_loggin,$mysql_pass) or die("Can't find server ".$mysql_server);
mysql_select_db($mysql_db) or die("Can't select database ".$mysql_db);

    $query = "SELECT sEmail FROM allusers WHERE name='aa'";
    
    $resulta = mysql_query($query) or die("Invalid query (login): " . mysql_error());
    

    while ($rmail = mysql_fetch_assoc($resulta)) 
   {
        echo "<br>";
        echo $rmail['sEmail'];

    } 

Posté : 01 août 2007, 19:25
par Davee
oups postage simultané

:D

EDIT et c'est encore mieux Merci.