Erreur PHP "unable to jump to row 0

Erreur PHP "unable to jump to row 0 - PHP - Programmation

Marsh Posté le 30-05-2002 à 21:28:37    

Warning: Unable to jump to row 0 on MySQL result index 2 in c:\program files\easyphp\www\bnwn\login00.php on line 7

Reply

Marsh Posté le 30-05-2002 à 21:28:37   

Reply

Marsh Posté le 30-05-2002 à 21:29:10    

comment réussir a résoudre ce pb ? il signifie koi ?
 
mmercire

Reply

Marsh Posté le 30-05-2002 à 21:38:30    

rainckill a écrit a écrit :

comment réussir a résoudre ce pb ? il signifie koi ?
 
mmercire  



Ca veut dire que tu cherches à accéder à une ligne (la n°0 ici) alors qu'elle n'existe pas dans le résultat.

Reply

Marsh Posté le 30-05-2002 à 21:42:10    

heuh..... jvois pas pq il veut allé a la ligne 0 :-/ y a rien dinterressant la bas ;)
 
ana pour etre plus serieux voici mon ptit bout de code :
 
<?
require("config.php" );
$db=mysql_connect("$sql","$log","$pas" );
mysql_select_db("$dbs",$db);
if($pseudo=='' || $mdpt=='';)
 {
 echo "<p>Vous avez oublié de remplir un champs.</p>";
 include('login.php';);
 exit;
 }
 
$sql = "select mdp from users where pseudo='$pseudo'";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()
);
 
 
 
 
$mdp=mysql_result($req,'mdp';);
 
 
else{session_start();
 session_register('pseudo';);
 
 echo "Vous etes bien logué sous le pseudo de <b><i>$pseudo</i></b><br><br>
 <center>]<a href='admin.php'>AcCeS AdMiN</a>[</center>";
 }
 
mysql_close();
 
?>
 
bon apparement l'eerreur suit la ligne ou est placé la commande :
 
$mdp=mysql_result($req,'mdp';);
 
 
 
 
Kelkun pourré til méclaircir la ? car je voit tout trouble :-/

Reply

Marsh Posté le 30-05-2002 à 21:46:05    

rainckill a écrit a écrit :

bon apparement l'eerreur suit la ligne ou est placé la commande :
 
$mdp=mysql_result($req,'mdp';);
Kelkun pourré til méclaircir la ? car je voit tout trouble :-/  




 
je pense que tu as cette erreur parce que ta requête ne renvoie aucun résultat. Vérifie d'abord le nombre de résultat renvoyé avec

Code :
  1. mysql_num_rows ($req)

.

Reply

Marsh Posté le 30-05-2002 à 22:13:19    

select mdp,pseudo from users where pseudo='$pseudo'


---------------
All we need is a soul revolution
Reply

Marsh Posté le 30-05-2002 à 22:43:08    

kayasax a écrit a écrit :

select mdp,pseudo from users where pseudo='$pseudo'  




Il n'est pas obligé de rajouter pseudo dans le SELECT normalement...

Reply

Marsh Posté le 31-05-2002 à 10:54:57    

c'est lorsque je tape un mauvais mdp/login ke l'erreur apparé...
 
et en effet qd je tape un mauvais mdp ben $mdp=rien ... c logik mais l'erreur vient elle du fait ke cette variable soit vide ? car je lui demande simple si $mdpt' (représentant le mdp rentré par lutilisateur dans la page "se loggé" ) est différent de $mdp le vré mot de passe du pseudo choisi....
 
mais vu kil ne trouve aucun pseudo, $mdp est vide...
 
comment résoudre se probleme proprement :) ??
 
merci a tous  :hello:

Reply

Marsh Posté le 31-05-2002 à 11:01:19    

Forcément, tu lui demandes les lignes où "pseudo='$pseudo'". Si le pseudo n'existe pas dans la base, il ne renvoie aucune ligne.
 
Faut que tu fasse un truc dans le genre :
 
if (mysql_num_rows($req) == 0) {
  // erreur : pseudo inconnu
 
} else {
  // pseudo trouvé, vérification du mot de passe
 
}
 
Edit : ce serait même plus propre comme ca :
$req = mysql_query("SELECT count(*) FROM users WHERE pseudo='$pseudo' AND mdp='$mdp'" );
$login_OK = mysql_result($req, 0, 0);
if ($login_OK > 0) {
  // authentification réussie
 
} else
  // erreur : login/mot de passe incorrect
 
}
 
Avec cette méthode, tu ne fais pas de distinction entre un login inconnu et un mot de passe incorrect.

 

[jfdsdjhfuetppo]--Message édité par mrbebert le 31-05-2002 à 11:05:00--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 31-05-2002 à 13:12:15    

ok, merci ben mrbebert :)
 
par contre, dans ton 2nd code, je comprend aps tout  :sweat:  
 
mysql_query("SELECT count(*) FROM users WHERE pseudo='$pseudo' AND mdp='$mdp'" );  
$login_OK = mysql_result($req, 0, 0);  
if ($login_OK > 0) {

 
c koi select count(*) ? il sélectionne koi ?
 
et je comprend aps bien la valuer de la variable $login_ok :-/
 
pq ($req, 0, 0[g]) ? ca signifie koi ces 2 zéro ?
 
merci pour ton aide :)
 
Rainckill

Reply

Marsh Posté le 31-05-2002 à 13:12:15   

Reply

Marsh Posté le 31-05-2002 à 13:25:50    

rainckill a écrit a écrit :

ok, merci ben mrbebert :)
 
par contre, dans ton 2nd code, je comprend aps tout  :sweat:  
 
mysql_query("SELECT count(*) FROM users WHERE pseudo='$pseudo' AND mdp='$mdp'" );  
$login_OK = mysql_result($req, 0, 0);  
if ($login_OK > 0) {

 
c koi select count(*) ? il sélectionne koi ?
 
et je comprend aps bien la valuer de la variable $login_ok :-/
 
pq ($req, 0, 0[g]) ? ca signifie koi ces 2 zéro ?
 
merci pour ton aide :)
 
Rainckill  



count(*), c'est du SQL. Il compte le nombre de ligne tout simplement. Donc, la requête va renvoyer un résultat avec une ligne et une colonne, contenant le nombre de lignes qui correspondent au WHERE. Ici, ca ne change pas grand chose. Mais quand tu as beaucoup de résultats, c'est beaucoup plus efficace de se contenter de les compter plutot que de tous les renvoyer et de faire un mysql_num_rows dessus (si tu n'as pas besoin des données elles même).
 
Donc $Login_OK contient le nombre de lignes qui ont le password et le login que tu recherches.
 
mysql_result($req, 0, 0) permet de lire le contenu de la colonne 0 et de la ligne 0 du résultat $req (ici, on a que cette case la de toute façon).

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed