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 :

[MySQLi] Exploiter procédure stockée


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 18
    Par défaut [MySQLi] Exploiter procédure stockée
    Bonjour,

    J'ai créé mes procédures qui fonctionnent sous mysql mais comment les exploiter avec PHP?

    J'ai fais un test mais ca ne fonctionne que la premiere fois.

    Voila mes procédures , elle me permettent de lister les commandes d'un client,de connaitre le nombre de commande qu'il a passé et d'affiche le détail d'une commande.

    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
    delimiter $$
    CREATE PROCEDURE detail_commande(IN numero_commande SMALLINT UNSIGNED)
    BEGIN
    	SELECT jaquette,j.libelle AS nom_jeu,image,quantite,l.prix AS pri
    	FROM relation_jvp r, jeu_video j, ligne_commande l, plateforme p
    	WHERE num_relation_jvp=id_relation_jvp
    	AND num_jeu_video=id_jeu_video
    	AND num_plateforme=id_plateforme
    	AND num_commande=numero_commande;
    END$$
    DELIMITER ;
     
     
    delimiter $$
    CREATE PROCEDURE liste_commande_par_client(IN numero_client SMALLINT UNSIGNED)
    BEGIN
    	SELECT id_commande, DATE_FORMAT( date_com, '%d %m %Y' ) AS com_date, SUM( quantite * prix ) AS montant_commande
    	FROM commande, ligne_commande
    	WHERE id_commande=num_commande
    	AND num_client=numero_client
    	GROUP BY id_commande
    	ORDER BY date_com DESC;
    END$$
    DELIMITER ;
     
    delimiter $$
    CREATE PROCEDURE nb_commande_par_client (IN numero_client SMALLINT)
    BEGIN
    	SELECT COUNT(id_commande) AS nb_commande
    	FROM commande
    	WHERE num_client =numero_client;
    END$$
    DELIMITER ;
    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
    <?php
    $connexion=new mysqli('localhost','client','simple','e_trade_games');
    $requete="CALL nb_commande_par_client(".$_SESSION['client']['id_client'].")";
    $resultat=$connexion->query($requete);
    $ligne=$resultat->fetch_object();
    if($ligne->nb_commande>0){
    	echo '<table><tr><td colspan="3">Liste de vos '.$ligne->nb_commande.' commande(s)</td></tr>
    	<tr><td>Date</td><td>Montant Commande</td><td>Détail</td></tr>';
    	$requete="CALL liste_commande_par_client(".$_SESSION['client']['id_client'].");";
    	echo $requete;
    	$resultat=$connexion->query($requete);
    	while($ligne=$resultat->fetch_object()){
    		echo '<tr><td>'.$ligne->com_date.'</td>
    		<td>'.$ligne->montant_commande.'</td>
    		<td><a href="index.php?page=historique&action=detail_commande&id_com='.$ligne->id_commande.'"><img src=""/></a></td>';
    	}
    	echo '</table>';
    }
    else{
    	echo 'Vous n\'avez effectué aucune commande';
    }
    $connexion->close();
    ?>

    Comment les exploite t'on en PHP? Le nombre de commande est bon lors de l'appel de la premiere procédure mais le deuxième me renvoie l'erreur suivante:

    Fatal error: Call to a member function fetch_object() on a non-object in C:\Program Files\wamp\www\e_trade_games\partie_client\affichage\historique\accueil.php on line 12
    Faut-il que je mette des paramètres en out pour pouvoir sélectionner des colonnes ou c'est le meme principe que pour les vues.
    En espérant que vous pourrez m'aider.

    Merci.

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Par défaut
    Bonjour,

    Est-ce que la requête stockée fonctionne si tu l'utilises à la place de la procédure dans le script?

Discussions similaires

  1. [MySQL] MYSQLI et procédures stockées
    Par tribaleur dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 03/03/2015, 11h21
  2. [MySQL] Utiliser les procédures stockées MySQL et étendre MySQLi dans PHP
    Par RideKick dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 12/09/2009, 13h14
  3. Exploitation résultat d'une Procédure stockée
    Par zavier666 dans le forum Développement
    Réponses: 7
    Dernier message: 08/01/2009, 21h53
  4. [Comparatif] Procédures stockées, triggers, etc.
    Par MCZz dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 28/08/2002, 12h27

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