IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

PHP et appel de SQL en PDO


Sujet :

PHP & Base de données

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2017
    Messages : 2
    Points : 1
    Points
    1
    Par défaut 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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();	
    	}

  2. #2
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2017
    Messages : 2
    Points : 1
    Points
    1
    Par défaut 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.....

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Active les erreurs PDO quand tu developpes :
    http://php.net/manual/fr/pdo.error-handling.php
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. php sql et PDO
    Par kalare dans le forum Langage
    Réponses: 2
    Dernier message: 09/06/2013, 20h08
  2. [SQL-Server] Appel de SQL serveur dans PHP
    Par EE dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 23/02/2007, 16h21
  3. Réponses: 6
    Dernier message: 16/11/2005, 21h43
  4. Réponses: 4
    Dernier message: 11/10/2005, 11h17
  5. Réponses: 7
    Dernier message: 08/10/2005, 09h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo