PHP->Problème avec une fonction

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
 
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]' ")
 
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...
 
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 :)
 
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
 
C'était bien ça...
Je ne savais jamais quand mettre " '..' ", les ' ' , les " ", maintenant, je le sais, merci !
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut