2009-10-14 9 views
0

peut-il s'il vous plaît dites-moi ce qui ne va pas avec la boucle foreach php ci-dessous.aider avec php FOREACH boucle

foreach ($_POST[sortlist] as $key => $value) 
{ 
    $sql = "UPDATE sortable 
      SET color_order = " . mysql_real_escape_string($key) . " 
      WHERE id = " . mysql_real_escape_string($value); 

    $result = mysql_query($sql) or die(mysql_error()); 
} 

Je continue à obtenir avertissement: Invalid argument suplied foreach() dans .... quand je télécharge sur le serveur

Merci

+2

Veuillez poster le contenu du tableau $ _POST ['sortlist'] (Si c'est vraiment un tableau) –

Répondre

1

Je suppose que $ _POST [sortlist] n'est pas un tableau. Ceci est probablement ce que vous essayez de faire:

foreach ($_POST as $varname => $varvalue) { 
    $sql = "update sortable set color_order = ".mysql_real_escape_string($varname)." where id = ".mysql_real_escape_string($varvalue); 
    $result = mysql_query($sql) or die(mysql_error()); 
} 

Ou si $ _POST [ 'de sortlist'] est un tableau, essayez ceci:

foreach ($_POST['sortlist'] as $varname => $varvalue) { 
    $sql = "update sortable set color_order = ".mysql_real_escape_string($varname)." where id = ".mysql_real_escape_string($varvalue); 
    $result = mysql_query($sql) or die(mysql_error()); 
} 
4

$_POST['sortlist'] est probablement pas un tableau. Essayez print_r($_POST) pour voir ce que vous avez là.

3

Essayez changement $_POST[sortlist]-$_POST['sortlist']

-1

S'il vous plaît, pour l'amour de l'Internet, ne construit pas SQL vous-même requête. Utilisez PDO.

0

Astuce: le message d'erreur fait référence à la ligne foreach. Cela lit uniquement à partir d'une variable, $ _POST [sortlist], qui n'est pas modifiée dans la boucle. Donc, vous pouvez ignorer toutes les choses SQL; Ce n'est pas pertinent pour votre problème. Réduire le problème au plus petit morceau de code qui a toujours une erreur. Cela vous aidera à le résoudre.

0

N'utilisez pas mysql_query, c'est très non sécurisé et est obsolète. Commencer à utiliser mysqli_query, n'est pas aussi sûr que PDO mais sera beaucoup mieux.

Questions connexes