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 :

Exécution de deux requêtes


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Exécution de deux requêtes
    Bonjour le forum,
    Voila mon souci, j'ai plusieurs script php pour exécuter des requêtes PDO sur ma BDD. Ils fonctionnent tous indépendamment, mais lorsque je veux les inclure dans ma page, seul le premier s'exécute et ça quelque soit l'ordre dans lequel je les écrits.
    J'ai eu beau fouiller les forums et des recherches sur google, à priori, il y aurait une fonction à appliquer sur mon script de connexion.
    Pour être honnête, j'ai vu qu'il y en avait un certain nombre (voire un nombre certain) et j'ai peur d'être passé à coté.
    Je joint mon script de connexion:
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    try {
    	$bd = new PDO('mysql:host=localhost;dbname=coffre;charset=utf8', 'root', 'root');
    	$bd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    	}
    catch(PDOException $e)
    {
            echo'Erreur : ' .$e->getMessage();
    }

    Merci de m'indiquer de quel setAttribute j'aurais besoin et en comprendre l'utilité.
    PS: Prenez soin de vous et de vos proches !

  2. #2
    Modérateur

    salut,

    poste voir au moins deux scripts qui s'exécutent indépendamment et surtout poste aussi le script qui ne fonctionne pas.
    # Dans la Création, tout est permis mais tout n'est pas utile...

  3. #3
    Futur Membre du Club
    Merci rawsrc
    Pour commencer et dans la même page j'ai déclaré mes variables puis ouvert la connexion à ma BDD
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $idJ = $_SESSION['id'];
    $nom1 = $_SESSION['nom'];
    $prenom1 = $_SESSION['prenom'];
    $date_jeu =date('d-m-Y H:i:s');
    $lot1 = '<script type="text/javascript">document.write(lot1);</script>';
    $solution = '<script type="text/javascript">document.write(num);</script>'

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    try {
    	$bd = new PDO('mysql:host=localhost;dbname=coffre;charset=utf8', 'root', 'root');
    	$bd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    	}
    catch(PDOException $e)
    {
            echo'Erreur : ' .$e->getMessage();
    }

    Plus loin dans mon code, je fais une première requête dans un paragraphe.
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <p> Total de votre butin :
    	<?php 
    		$reponse = $bd->query('SELECT SUM(lingots) AS total FROM jeu_1 WHERE id_joueur');
    		while($butin=$reponse->fetch()) {
    		 echo $butin['total'];
    		}
    		$reponse->closeCursor();
    	?> Lingots
    </p>

    Puis encore plus loin dans ma page, je fais ma seconde requête
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $req = $bd->prepare("INSERT INTO jeu_1 (nom, prenom, id_joueur, date_jeu)
    		VALUES (:nom, :prenom, :id_joueur, :date_jeu) ");
    		$req->bindParam(':nom', $nom);
    		$req->bindParam(':prenom', $prenom);
    		$req->bindParam(':id_joueur', $id_joueur);
                    $req->bindParam(':date_jeu', $date_jeu);
    		$req->execute();
    		$req->closeCursor();

    Le fait est que la première fonctionne et que si le les interverties, la seconde qui passe alors en première position fonctionne.
    J'ai aussi essayé de faire une déconnexion à ma BDD entre les deux, mais rien n'y fait. Je suis dans l'impasse !

  4. #4
    Modérateur

    euh il ne te manquerait pas la fin de la requête :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    $reponse = $bd->query('SELECT SUM(lingots) AS total FROM jeu_1 WHERE id_joueur');

    tu sais : finir le code après le WHERE.
    # Dans la Création, tout est permis mais tout n'est pas utile...

  5. #5
    Futur Membre du Club
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
     
    $reponse = $bd->query('SELECT SUM(lingots) AS total FROM jeu_1 WHERE id_joueur'.$idJ.' ');

    OUI, ça devait être comme cela, sauf que le code ne marche plus.

  6. #6
    Modérateur

    ok montre ce que te renvoie :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    echo 'SELECT SUM(lingots) AS total FROM jeu_1 WHERE id_joueur'.$idJ
    # Dans la Création, tout est permis mais tout n'est pas utile...

  7. #7
    Futur Membre du Club
    Désolé, c'est moi qui me suis trompé dans ma dernière variable.
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
     
    $reponse = $bd->query('SELECT SUM(lingots) AS total FROM jeu_1 WHERE id_joueur'.$id_joueur.'');

    J'avais pris la variable d'une autre page. Du coup, les 2 fonctionnent.
    Un grand merci pour ton aide et bonne soirée.