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 :

requête mysql vers mysqli [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2013
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2013
    Messages : 27
    Points : 27
    Points
    27
    Par défaut requête mysql vers mysqli
    Bonjour à tous,

    je suis en train d'actualiser un generateur de formulaire depuis mysql vers mysqli

    je bute sur un détail :

    avec mysql, j'ai :

    $query = "select * from `fields` where page_id='".$page_id."' and ";
    if($up==0)
    $query .= "field_num > ".$field_num." order by field_num";
    else
    $query .= "field_num < ".$field_num." order by field_num desc";
    $result = mysql_query($query);
    La requète fonctionne

    pour mysqli je modifie en :

    $query = "select * from `fields` where page_id='".$page_id."' and ";
    if($up==0)
    $query .= "field_num > ".$field_num." order by field_num";
    else
    $query .= "field_num < ".$field_num." order by field_num desc";

    $result = $con->query($query);
    mais la requête semble ignorer ce qui est dans le "if"... "else"....

    Cela provient-il du passage à mysqli qui n'interprète pas de la même façon la requête ? Faut-il revoir toute la requête ?

    Par avance, merci

  2. #2
    Membre habitué
    Inscrit en
    Janvier 2007
    Messages
    437
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 437
    Points : 184
    Points
    184
    Par défaut
    salut essayes ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
     
    if($up==0){
    $field = "field_num > $field_num order by field_num";
     } else {
    $field = "field_num < $field_num order by field_num desc";
    }
    $query = "select * from `fields` where page_id=  $page_id and $field ";
    $result = $con->query($query);

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2013
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2013
    Messages : 27
    Points : 27
    Points
    27
    Par défaut
    Merci de votre réponse,

    mais après essai, le résultat est identique.

    je pense que c'est le field_num > ".$field_num." ou field_num > $field_num qui n'est pas interprété dans la requête. Je vais essayer de chercher de ce côté.

    Merci encore

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2013
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2013
    Messages : 27
    Points : 27
    Points
    27
    Par défaut
    Bon j'ai trouvé :

    pour mysql j'avais :

    $query = "select * from `fields` where page_id='".$page_id."' and ";
    if($up==0)
    $query .= "field_num > ".$field_num." order by field_num";
    else
    $query .= "field_num < ".$field_num." order by field_num desc";
    $result = mysql_query($query);
    pour mysqli cela devient :

    $query = "select * from `fields` where page_id='".$page_id."' and ";
    if($up==0)
    $query .= "field_num > ".$field_num." order by field_num desc";
    else
    $query .= "field_num < ".$field_num." order by field_num";
    $result = $con->query($query);
    J'ai simplement inversé "desc" entre les deux $query.=
    Et le fonctionnement devient identique sur les deux sites (mysql et mysqli)

    J'ai un peu de mal à comprendre le pourquoi du comment mais je passe en résolu

    Avec mes excuses pour le dérangement

  5. #5
    Membre éprouvé Avatar de Willy_k
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 540
    Points : 1 067
    Points
    1 067
    Par défaut
    Salut,

    Je sais que vous avez résolu votre problème mais que contenait $up (un var_dump($up);) ? Cela vous emmènera sûrement à comprendre le pourquoi.
    Le bienfait n'est jamais perdu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL-5.6] Requête MySQL vers celle en PDO avec PHP
    Par tonton.odilon dans le forum Débuter
    Réponses: 5
    Dernier message: 09/03/2016, 12h46
  2. [AC-2010] Traduire une requête Mysql vers accès. le casse tête
    Par Roroness dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 07/10/2015, 21h51
  3. Passage mysql vers mysqli - mysqli_result
    Par Fredo8 dans le forum MySQL
    Réponses: 0
    Dernier message: 23/04/2015, 09h38
  4. [9.1] requête : MySQL vers PostgreSQL
    Par siro1 dans le forum Débuter
    Réponses: 10
    Dernier message: 18/07/2014, 16h06
  5. lenteur de requête mysql vers un poste windows
    Par richard dev dans le forum Réseau
    Réponses: 3
    Dernier message: 08/06/2009, 11h09

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