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


A voir également:

13 réponses

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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
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
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
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
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
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
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
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
Palermo_57 Messages postés 12 Statut Membre
 
Ok d'accord
Merci de tes réponses je vais test alors =)
0
jeremy.s Messages postés 1248 Statut Membre 79
 
Oublie pas le or die(), et si t'as une erreur dis la moi :)
0