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_prepare sur plusieurs tables


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
    Assistant logistique
    Inscrit en
    Octobre 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Assistant logistique

    Informations forums :
    Inscription : Octobre 2016
    Messages : 11
    Par défaut mysqli_prepare sur plusieurs tables
    Bonjour,

    Je souhaiterai savoir s'il est possible de faire un mysqli_prepare sur plusieurs tables avec des jonctions ?

    Exemple :

    • SELECT id, Nom, Prenom, Sexe FROM utilisateurs, sexe WHERE utlisateurs.id_sexe = sexe.id AND id = ?



    Je vous remercie par avance pour votre précieuse aide

    A bientôt
    Gawel

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    A partir du moment où la requête est syntaxiquement correcte (qu'elle marche sans exploser dans PhpMyAdmin par exemple), tu peux parfaitement en faire une requête préparée.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre habitué
    Homme Profil pro
    Assistant logistique
    Inscrit en
    Octobre 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Assistant logistique

    Informations forums :
    Inscription : Octobre 2016
    Messages : 11
    Par défaut
    Merci pour le retour rapide

    Cependant, j'ai testé ma requête en direct et celle-ci fonctionne, alors que par le prepare, j'ai comme retour : "mysqli_stmt_bind_param() expects parameter 1 to be mysqli_stmt, boolean" !
    c'est pour cela que cela m'étonne beaucoup....


  4. #4
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par défaut
    Oui y'a pas de différence avec une requête "normale". Simplement les variables sont associées à des symboles ce qui rend les requêtes beaucoup plus sûres et aussi plus rapides quand s'agit de requêtes multiples.

    Au passage on utilise mysqli principalement pour mettre à jour d'anciens sites faits avec mysql. Sinon pour de nouveaux projets, pdo est bien plus agréable et pratique que mysqli. L'avenir (et le présent) c'est pdo.

    EDIT : oops je n'avais pas vu ta seconde question. Fais voir ton code.

  5. #5
    Membre habitué
    Homme Profil pro
    Assistant logistique
    Inscrit en
    Octobre 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Assistant logistique

    Informations forums :
    Inscription : Octobre 2016
    Messages : 11
    Par défaut
    BOnjour,

    Oui je sais bien que PDO est l'avenir (et le présent) mais je bosse sur un petit site uniquement pour moi et j'essaye de faire avec ce que je connais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $req_devis = mysqli_prepare($mysqli,'SELECT vignobles.vignoble,devis.prix, devis.date FROM vignobles,  devis WHERE vignobles.id = devis.id_vignoble AND devis.id_utilisateur = ?');
    mysqli_stmt_bind_param($req_devis,"i", $id);
    mysqli_stmt_execute($req_devis); 
    mysqli_stmt_bind_result($req_devis, $donnees_devis['vignobles.vignoble'], $donnees_devis['devis.prix'], $donnees_devis['devis.date']);
    while(mysqli_stmt_fetch($req_devis))
    Je te remercie

  6. #6
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    ça a l'air correct Pour le debug, ajoute une vérification de $req_devis et un affichage de l'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $req_devis = mysqli_prepare($mysqli,'SELECT vignobles.vignoble,devis.prix, devis.date FROM vignobles,  devis WHERE vignobles.id = devis.id_vignoble AND devis.id_utilisateur = ?');
    if ($req_devis === false) {
        die("Erreur : ".mysqli_error($mysqli));
    }
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  7. #7
    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
    Par défaut
    Au passage, fais les jointure avec JOIN
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT vignobles.vignoble,devis.prix, devis.date FROM vignobles
    JOIN devis ON vignobles.id = devis.id_vignoble
    WHERE devis.id_utilisateur = ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. select sur plusieurs table, question sur jointure
    Par Schulman dans le forum Langage SQL
    Réponses: 7
    Dernier message: 03/09/2004, 13h54
  2. Encore une requête complexe sur plusieurs tables
    Par DenPro dans le forum Langage SQL
    Réponses: 5
    Dernier message: 09/12/2003, 19h05
  3. order by sur plusieurs tables
    Par Mad_Max dans le forum Requêtes
    Réponses: 2
    Dernier message: 09/12/2003, 12h17
  4. Requête complexe sur plusieurs table
    Par DenPro dans le forum Langage SQL
    Réponses: 13
    Dernier message: 25/11/2003, 17h50
  5. A propos d'une requête SQL sur plusieurs tables...
    Par ylebihan dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/09/2003, 16h26

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