Récuperation SQL

Palermo_57 Messages postés 12 Statut Membre -  
jeremy.s Messages postés 1248 Statut Membre -
Bonjour à tous,
j'ai un petit problème concernant mon code :

Je veux récupérer plusieurs champs dans ma BDD mais j'ai une erreur dans ma requête:
J'exporte mes données dans un Excel mais il y'a une colone que je n'arrive pas à récupérer:

<?php

$req=$pdo->prepare("SELECT nom_uti ,prenom_uti ,birth_uti , titre_en,date_in as DATE_IN,date_ou,mensuel_mouvement ,code_contrat ,start_contrat,end_contrat ,expiration_contrat ,titre_bateau ,num_certificat

FROM utilisateur,mouvement,boat,contract,function,contract_module

where utilisateur.id_uti=mouvement.id_uti
and mouvement.id_contrat=contract.id_contrat
and mouvement.id_contrat=boat.id_contrat
and mouvement.id_bateau=boat.id_bateau and mouvement.fonction_mouvement=function.id_function
and num_certificat not like 'L%'");

Mon erreur se situe au niveau du not like je 'narrive pas à trouver la syntaxe correcte tandis que en SQL ma requête marche.

merci de vos réponse

13 réponses

  1. jeremy.s Messages postés 1248 Statut Membre 79
     
    Salut !

    Tu es sur que l'erreur vient de la ?

    Essaye ca :
    $req=$pdo->prepare(" ta requete");
    $req->execute() or die(print_r($req->errorInfo()));
    Et si t'as une erreur il te l'affichera :)

    0
  2. Palermo_57 Messages postés 12 Statut Membre
     
    Salut Jérémy

    Oui Oui c'est bien à la ligne là,
    mais je voudrais savoir en gros quel est la syntaxe en PHP
    d'un NOT LIKE
    car la syntaxe SQL marche parfaitement bien sur PhpMyAdmin

    Cordialement
    0
  3. jeremy.s Messages postés 1248 Statut Membre 79
     
    Quel est le type de num_certificat ? Si c'est un int, tu ne peux pas utilisé le LIKE. Par contre si c'est un varchar, ca devrait allé.
    Tu cherches bien les lignes où num_certificat ne commence pas par L ?
    0
  4. Palermo_57 Messages postés 12 Statut Membre
     
    C'est exactement ça j'ai deux type de num_certificat :

    ex: L164654 et un autre type 138466

    et donc je veux récupérer les lignes qui n'ont pas le L
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. jeremy.s Messages postés 1248 Statut Membre 79
     
    Donc c'est un varchar ?

    Mmh tu n'as pas préciser la table où est num_certificat,
    where utilisateur.id_uti=mouvement.id_uti
    and mouvement.id_contrat=contract.id_contrat
    and mouvement.id_contrat=boat.id_contrat
    and mouvement.id_bateau=boat.id_bateau
    and mouvement.fonction_mouvement=function.id_function
    and num_certificat not like 'L%'");

    0
  7. Palermo_57 Messages postés 12 Statut Membre
     
    Même pas c'est un type text

    et si, la table de num_certificat est contract_module
    0
  8. jeremy.s Messages postés 1248 Statut Membre 79
     
    Bah essaye avec contract_module.num_certificat not like 'L%'

    Sinon tu as mis le or die() ?
    Tu as eu un message ?

    0
  9. Palermo_57 Messages postés 12 Statut Membre
     
    Alors j'ai essayer avec ta méthode,

    http://puu.sh/39BpX.png

    Ci-dessus un lien de l'erreur que j'ai eu avec ta méthode

    http://puu.sh/39BsW.png

    Et la l'erreur avec le code que j'avais poster =(
    0
  10. jeremy.s Messages postés 1248 Statut Membre 79
     
    Il faut que tu mette bien les nom de table devant chaque nom de colonne quand tu fais des requetes sur plusieurs table.
    Car là tu le fais dans le where, mais pas dans le select.

    Et renvois ta requete aussi (modifier) :)
    0
  11. Palermo_57 Messages postés 12 Statut Membre
     
    $req=$pdo->prepare("SELECT nom_uti ,prenom_uti ,birth_uti , titre_en,date_in as DATE_IN,date_ou,mensuel_mouvement ,code_contrat ,start_contrat,end_contrat ,expiration_contrat ,titre_bateau ,num_certificat

    FROM utilisateur,mouvement,boat,contract,function,contract_module

    where utilisateur.id_uti=mouvement.id_uti
    and mouvement.id_contrat=contract.id_contrat
    and mouvement.id_contrat=boat.id_contrat
    and mouvement.id_bateau=boat.id_bateau and mouvement.fonction_mouvement=function.id_function
    and num_certificat not like 'L%'");

    Ma requête

    La tienne

    $req=$pdo->prepare("SELECT nom_uti ,prenom_uti ,birth_uti , titre_en,date_in as DATE_IN,date_ou,mensuel_mouvement ,code_contrat ,start_contrat,end_contrat ,expiration_contrat ,titre_bateau ,num_certificat

    FROM utilisateur,mouvement,boat,contract,function,contract_module

    where utilisateur.id_uti=mouvement.id_uti
    and mouvement.id_contrat=contract.id_contrat
    and mouvement.id_contrat=boat.id_contrat
    and mouvement.id_bateau=boat.id_bateau and mouvement.fonction_mouvement=function.id_function
    and contract_module.num_certificat not like 'L%'");
    0
    1. Palermo_57 Messages postés 12 Statut Membre
       
      Mais le pire c'est que si je n'ajoute pas cette ligne tout mon export sur Excel marche
      0
  12. jeremy.s Messages postés 1248 Statut Membre 79
     
    Ok donc c'est vraiment à cette ligne la ...

    Bah met aussi les noms de table dans le select, si tu veuxpas te faire chier tu as cette syntaxe :

    select p.nom, p.prenom, v.nom
    from personne p, ville v
    where p.ville = v.nom

    0
  13. Palermo_57 Messages postés 12 Statut Membre
     
    Ok d'accord
    Merci de tes réponses je vais test alors =)
    0
  14. jeremy.s Messages postés 1248 Statut Membre 79
     
    Oublie pas le or die(), et si t'as une erreur dis la moi :)
    0