PHP et appel de SQL en PDO
Bonjour,
Je suis étudiant et je cherche à réaliser un petit site dynamique en php.
La lecture des différents post de ce forum ainsi que quelques bons livres m'ont permis de commencer en HTML et PHP, mais là je me heurte à un problème qui doit être tout simple mais qui me scotch depuis 2 jours.
voici mon bout de code qui ouvre un base sql et fait une requête pour rechercher si un enregistrement du même type existe déjà.
Je fais un test "if ($reponse != False)" pour savoir si c'est le cas..... mais xhaque fois, c'est la boucle else qui passe même si l'enregistrement testé existe.
Je dois faire une erreur de débutant (ce que je suis d'ailleurs) mais j'ai beau chercher.... je ne vois pas.
par avance merci de votre aide.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| if (isset($_POST['rajouter']) && $_POST['rajouter']=="Valider")
{
$content = $BDD->prepare('SELECT * FROM block WHERE Fabriquant= ?, Materiau= ?, Taille= ?, Luminosite= ?, Teinte= ?');
$content->execute(array(
$_POST['fabriquant'],
$_POST['materiau'],
$_POST['taille'],
$_POST['luminosite'],
$_POST['teinte']
));
$reponse = $content->fetch();
if ($reponse != False)
{
echo("Un tel bloc existe dèjà");
echo($reponse['Frabriqant']." ".$reponse['Materiau']." ".$reponse['Taille']." ".$reponse['Luminosite']." ".$reponse['Teinte']);
}
else
{
echo("on peut ecrire le nouvel enregistrement");
$req = $basedonnees->prepare('INSERT INTO block (Fabriquant, Materiau, Taille, Luminosite, Teinte, Nombre)
VALUE(:fabriquant, :materiau, :taille, :luminosite, :teinte, :nombre)');
$req->execute(array(
'fabriquant' => $_POST['fabriquant'],
'materiau' => $_POST['materiau'],
'taille' => $_POST['taille'],
'luminosite' => $_POST['luminosite'],
'teinte' => $_POST['teinte'],
'nombre' => $_POST['nombre']
));
}
$content->closeCursor();
} |
Et voila il suffit parfois de reflechir un peu...
je viens de trouver ma faute... une vrai faute de débutant.
j'avais oublié les AND entre les différentes conditions de ma requête....
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| if (isset($_POST['rajouter']) && $_POST['rajouter']=="Valider")
{
$content = $BDD->prepare('SELECT * FROM block WHERE Fabriquant= ? AND Materiau= ? AND Taille= ? AND Luminosite= ? AND Teinte= ?');
$content->execute(array(
$_POST['fabriquant'],
$_POST['materiau'],
$_POST['taille'],
$_POST['luminosite'],
$_POST['teinte']
));
$reponse = $content->fetch();
if ($reponse != False)
{
echo("Un tel bloc existe dèjà");
echo($reponse['Frabriqant']." ".$reponse['Materiau']." ".$reponse['Taille']." ".$reponse['Luminosite']." ".$reponse['Teinte']);
}
else
{
echo("on peut ecrire le nouvel enregistrement");
$req = $basedonnees->prepare('INSERT INTO block (Fabriquant, Materiau, Taille, Luminosite, Teinte, Nombre)
VALUE(:fabriquant, :materiau, :taille, :luminosite, :teinte, :nombre)');
$req->execute(array(
'fabriquant' => $_POST['fabriquant'],
'materiau' => $_POST['materiau'],
'taille' => $_POST['taille'],
'luminosite' => $_POST['luminosite'],
'teinte' => $_POST['teinte'],
'nombre' => $_POST['nombre']
));
}
$content->closeCursor();
} |
Ca marche mieux comme ca.....