un noob php ici. Je viens de commencer il y a un mois. J'utilise actuellement un foreach key=> value
pour parcourir deux tableaux simultanément. Cependant, après un débogage, j'ai trouvé que dans mon code, la touche saute le numéro 1
? Par exemple, la valeur de la clé passe à [0 2 3 4 ...]
. Voici mon code:tableaux php, clé foreach saute une valeur
<?php
foreach($_POST['array'] as $key=>$value)
{
echo $key;
//set up mysql connection
mysql_connect("localhost", "root", "") or die(mysql_error());
//select database
mysql_select_db("database") or die(mysql_error());
$value= mysql_real_escape_string($value);
$query = "SELECT Hours
FROM Table
WHERE Activity = '$value';";
$result = mysql_query($query) or die(mysql_error());
$row = mysql_fetch_array($result);
echo $row['Hours'];
echo '<br>';
}
?>
La chose étrange est que je l'ai appelé le même script plus tôt, mais sur un tableau différent et la valeur de clé ne saute pas, donc cela me déconcertant. Toute aide est appréciée!
EDIT: Voici le contenu de mon tableau tel que demandé.
//key array
array(2) { [0]=> string(3) "abc" [2]=> string(4) "abcd" }
//value array
array(2) { [0]=> string(1) "2" [1]=> string(1) "8" }
Je vois le problème ici, car les itérations de clé et de valeur ne correspondent pas. J'utilise actuellement une fonction jQuery clone pour cloner dynamiquement les tableaux, cela pourrait-il être le problème?
MISE À JOUR: OK J'ai résolu ce problème, il était dû au script de clonage jQuery que j'utilisais. J'avais adapté un script existant pour mon propre travail, et j'ai manqué quelques numéros d'identification cruciaux là-dedans. Merci pour les gars de var_dump, ça m'a mis sur le bon chemin.
Ajoutez ceci avant votre 'foreach':' var_dump ($ _ POST ['tableau']); 'et assurez-vous que le contenu du tableau est ce que vous attendez. – dave
Pouvez-vous poster le contenu de 'var_dump ($ _ POST ['tableau'])'? –
que voulez-vous dire par saut? n'obtenez-vous pas le résultat? essayer de 'echo $ query;' et vérifier –