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 :

récupération des enregistrements avec PDO Fetch


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2018
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2018
    Messages : 9
    Par défaut récupération des enregistrements avec PDO Fetch
    Bonjour,

    Je suis actuellement en conception d'un panier sur un site web , je rencontre donc des problèmes avec ce dernier .

    Quelques explications avant , le client arrive sélectionne un produit clique sur ajouter et arrive donc sur la page panier . Je récupère bien l'id de l'article ainsi que la quantité mais j'ai un problème concernant le prix ... Impossible de le récupérer après de multiples tentatives , il me retourne un "boolean true" et rien d'autres . Je vous joins ici le code .

    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
    34
    35
    36
    37
    38
     
    <?php
    session_start();
    include_once("function.php");
     
     
     
     
     
     
     
    if(isset($_SESSION['identifiant']) AND isset($_SESSION['password']))
    			{
     
    							//si il y a un session existante donc si la session est ouverte
     
     
     
    if(isset($_POST['idart']) && isset($_POST['qty']))
    {
    	$_SESSION['qty'] = $_POST['qty'];
    	$qty = $_SESSION['qty'];
     
    	echo $qty ;
     
    	$_SESSION['idart'] = $_POST['idart'];
    	$idart = $_SESSION['idart'];
     
    	echo $idart; 						
     
    }
    			}						
    			else
    			{
    							// Sinon la session est inexistante ...
    							echo "vous n'etes pas connecté";
    			}
    ?>
    ici le code défectueux :

    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
     
    <?php
     
    //on instancie la connexion
    $cnx = ouvrirconnexionbase();
     
     
     
    //On prépare la requete
     
    $sql = $cnx->prepare("SELECT Prix FROM t_articles WHERE id= ?;") or die(mysqli_error($cnx)) ;
    $sql->bind_param('i',$_POST['idart']) ;  //i	correspond à une variable de type entier/ s	correspond à une variable de type chaîne de caractères
    $sql->execute(); //execute la requete
    //$result = $sql->fetch(); //execute la requete
    $result = $sql->fecth(PDO::FETCH_OBJ);
    echo gettype ( $result );
    $cnx->close();  
    ?>
    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
     
    <?php
    if(isset($_POST['vider']))
    {
    	$_SESSION['panier'] = array();
    }
     
     
    ?>
     
    <?php
    // $NbrCol : le nombre de colonnes
    // $NbrLigne : calcul automatique AVANT affichage
    // -------------------------------------------------------
    // (exemple)
    $NbrCol = 3;
    $tableau =$_SESSION['panier'];
    // -------------------------------------------------------
    // nombre de cellules à remplir
    $NbreData = count($tableau);
    // -------------------------------------------------------
    // calcul du nombre de lignes
    if (round($NbreData/$NbrCol)!=($NbreData/$NbrCol)) {
    	$NbrLigne = round(($NbreData/$NbrCol)+0.5);
    } else {
    	$NbrLigne = $NbreData/$NbrCol;
    }
    // -------------------------------------------------------
    // affichage
    if ($NbreData != 0) 
    {
    	$k = 0; // indice du tableau
    ?>
    	<table border="1">
    	<tbody>
    <?php
    	for ($i=1; $i<=$NbrLigne; $i++) 
    	{
    		// ligne $i
    ?>
    		<tr>
    <?php		for ($j=1; $j<=$NbrCol; $j++) 
    		{ // colonne $j
    			if ($k<$NbreData) {
    ?>
    			<td>
    <?php			// -------------------------
    			// DONNEES A AFFICHER dans la cellule
    			echo $tableau[$k];
    			// -------------------------
    ?>
    			</td>
    <?php
    				$k++;
    			} else { // cellule vide
    ?>
    			<td>&nbsp;</td>
    <?php
    			}
    		}
    ?>
    		</tr>
    <?php	}
    ?>
    	</tbody>
    	</table>
    <?php
    } else { ?>
    	pas de données à afficher
    <?php
    }
    ?>

    Je vous remercie d'avance !

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $result = $sql->fetch(PDO::FETCH_OBJ);
    à préciser que ce bout de code retourne une erreur de type fetch n'accepte pas de paramètre ????
    c'est là ou j'ai jeté l'éponge en essayant de résoudre le problème sur le chat

    le message d'erreur :
    mysqli_stmt::fetch() expects exactly 0 parameters, 1 given
    Mais bien sûr ...
    https://www.php.net/manual/fr/pdostatement.fetch.php

    elle sert a quoi alors la liste des paramètres données dans la doc ????

    ou alors il y a un souci d'engine ou de version ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql->bind_param(1,$_POST['idart'], PDO::PARAM_INT) ;
    A+.

  4. #4
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2018
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2018
    Messages : 9
    Par défaut
    Bonjour andry.aime ,

    J'ai essaye ton code , et j'obtient l'erreur suivante :

    " Fatal error: Cannot pass parameter 3 by reference"


    Merci bien d'avoir répondu .

  5. #5
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2018
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2018
    Messages : 9
    Par défaut
    Je penses qu'il serait intéressant que je mentionne ici les extensions car j'ai un doute sur le fait que ce soit peut être cela qui bloque ..

    API Extensions : mysql,mysqli,pdo_mysql;

    PDO drivers : mysql, sqlite ;

    PDO Driver for MySQL : Client API version : mysqlnd 5.0.10 - 20111026 - $Id: e707c415db32080b3752b232487a435ee0372157 $ ;

    PDO Driver for SQLite 3.x : SQLite Library : 3.7.7.1 ;

    MysqlI Support : Client API library version : mysqlnd 5.0.10 - 20111026 - $Id: e707c415db32080b3752b232487a435ee0372157 $ ;

    MySQL Support : Client API version : mysqlnd 5.0.10 - 20111026 - $Id: e707c415db32080b3752b232487a435ee0372157 $ ;

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1- :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $result = $sql->fecth(...........);
    2- Tu mélanges "procédural" et "orienté objet" : (mysqli::$error / mysqli_error)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = $cnx->prepare("....") or die(mysqli_error($cnx)) ;
    Ici, il faut mettre :
    3- MAINTENANT, la "QUESTION QUI TUE" : tu utilises mysqli ou PDO ???

Discussions similaires

  1. [PDO] Affichage des enregistrement avec php 5 PDO
    Par walid kh dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 19/04/2015, 17h00
  2. Réponses: 13
    Dernier message: 05/09/2006, 16h25
  3. récupération des paramètres avec javascript
    Par pcdj dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 07/07/2006, 09h45
  4. Récupération des paramètres avec une procedure stockée
    Par samlerouge dans le forum Bases de données
    Réponses: 2
    Dernier message: 31/03/2004, 22h00
  5. Réponses: 13
    Dernier message: 20/03/2003, 08h11

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