Récuperation SQL

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. 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

    1. $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%'");
      1. Mais le pire c'est que si je n'ajoute pas cette ligne tout mon export sur Excel marche
    2. 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) :)
      1. 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 =(
        1. Bah essaye avec contract_module.num_certificat not like 'L%'

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

          1. Même pas c'est un type text

            et si, la table de num_certificat est contract_module
            1. 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%'");

              1. 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
                1. 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 ?
                  1. 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
                    1. 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 :)