PHP->Problème avec une fonction

WRInaute occasionnel
Bonjour,

J'ai un problème avec ce code, ça doit être une erreur de syntaxe, mais je ne la trouve pas...
Code:
function verifip()
{
	$requete = mysql_query("SELECT id, logip, inscrip FROM demo_a_accounts") or die(mysql_error());
	while ($myrow = mysql_fetch_row($requete)) 
	{
		$req = mysql_query("SELECT id FROM demo_a_accounts WHERE logip=".$myrow[1]."") or die(mysql_error());
		if((mysql_num_rows($req))>(1))
		{
			$idu = $myrow[0];
			$ask= "UPDATE demo_a_accounts SET multip = 1 WHERE id='$idu'";
			$result = mysql_query($ask) or die(mysql_error());
		}

	}
	return;
}

Pourriez-vous m'aider ? Merci.

PS : L'erreur est la suivante :
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
 
WRInaute discret
Si les champs sont de type numériques, pas besoin des guillemets.

Amha, il y en a en trop, tu dois écrire logip=$myrow[1]")
sans les points, ni les guillemets.

Si c'est pas numérique: logip='$myrow[1]' ")
 
WRInaute occasionnel
Code:
function verifip()
{
	$requete = mysql_query("SELECT id, logip, inscrip FROM demo_a_accounts") or die(mysql_error());
	while ($myrow = mysql_fetch_row($requete)) 
	{
		$req = mysql_query("SELECT id FROM demo_a_accounts WHERE logip=$myrow[1]") or die(mysql_error());
		if((mysql_num_rows($req))>(1))
		{
			$idu = $myrow[0];
			$ask= "UPDATE demo_a_accounts SET multip = 1 WHERE id='$idu'";
			$result = mysql_query($ask) or die(mysql_error());
		}

	}
	return;
}
id- c'est l'id d'un membre [0->5000]
logip & inscript - ce sont les adresses IP des membres
Et avec ce code, j'ai toujours le message d'erreur...
 
WRInaute impliqué
gcvoiron a dit:
id- c'est l'id d'un membre [0->5000]
logip & inscript - ce sont les adresses IP des membres
Et avec ce code, j'ai toujours le message d'erreur...

Code:
function verifip()
{
   $requete = mysql_query("SELECT id, logip, inscrip FROM demo_a_accounts") or die(mysql_error());
   while ($myrow = mysql_fetch_row($requete))
   {
      $req = mysql_query("SELECT id FROM demo_a_accounts WHERE logip='".$myrow[1]."'") or die(mysql_error());
      if((mysql_num_rows($req))>(1))
      {
         $idu = $myrow[0];
         $ask= "UPDATE demo_a_accounts SET multip = 1 WHERE id=$idu";
         $result = mysql_query($ask) or die(mysql_error());
      }

   }
   return;
}

pas de guillemet pour une valeur numérique, des guillemets pour une chaine :)
 
WRInaute discret
une ip c'est pas numérique donc
logip='$myrow[1]'")

Un truc qui est bien, c'est de remplacer mysql_error() par une phrase qui veut dire quelque chose, comme ça, en cas d'erreur on sait sur quelle requête on échoue
 
WRInaute occasionnel
C'était bien ça...
Je ne savais jamais quand mettre " '..' ", les ' ' , les " ", maintenant, je le sais, merci !
 
Discussions similaires
Haut