Le problème doit certainement venir de ma 2e requete imbriqué pour le champ "idingredient".
1 2 3 4 5 6 7 8 9 10 11 12 13
| for($i=0; $i<$NB_ING;$i++)
{
$sql = "SELECT id FROM ingredient WHERE nom_in='" . $CHOIX_INGREDIENT[$i] ."' ";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$total = mysql_num_rows($req);
while($data = mysql_fetch_array($req))
{
echo $data["id"];
}
} |
Puisque la , je n'ai pas ma liste d'ID affiché , je n'ai rien.
Donc cela veut dire que ma requete imbriqué sensé renvoyer l'ID Ingrédient ne fonctionnes pas , il renvoie un "vide" et d'ou cette erreur qu'il peut pas insérer de l'espace dans le champ not null.
Pourtant lorsque je fais mon for pour afficher mes noms d'ingrédients , il me les affiches. alala , c'est sacrément embétant ça...
J'ai essaye d'une autre façon :
$sql = "INSERT INTO composede SELECT max(modele.id),ingredient.id FROM modele,ingredient WHERE nom_in='" . $_POST['tab'][$i] ."' group by ingredient.id ";
La je n'ai pas de message d'erreur , mais hélas , il ne se passe rien.
j'ai remarqué que lorsque je fais la requete à la main dans phpmyadmin avec un nom d'ingrédient, cela fonctionnes.
Le problème ne peut venir que de la :
WHERE nom_in='" . $_POST['tab'][$i] ."'
puisque lorsque je fais :
1 2
| $sql = "INSERT INTO composede SELECT max(modele.id),ingredient.id FROM modele,ingredient WHERE nom_in='oeuf' group by ingredient.id ";
$req= mysql_query($sql) or die('Erreur SQL ! '.$sql.'<br>'.mysql_error()); |
L'insertion se réalise
Si quelqu'un sait , son aide me serait la bienvenue.
Ou une autre solution pour contourner le problème , c'est pour récupérer plusieurs valeurs de checkbox pour ensuite les insérer dans une table , c'est à un peu près l'idée...
Partager