Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/12/2007, 09h48   #1
Invité de passage
 
Inscription : décembre 2007
Messages : 5
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 5
Points : 1
Points : 1
Par défaut [SQL] Problème de non-execution de requete

Bonjour à tous,

J'ai un problème : J'éxecute un SELECT dans PhpMyAdmin, elle me sort le résulat, tout vas bien. Seulement quand j'éxecute la même requête dans un fichier php elle ne marche pas :

- Aucune erreurs affchées,
- Pas de résultat stocké dans un mysql_fetch_array();
- 0 enregistrements comptés dans un mysql_num_rows() (alors qu'il devrait y en avoir 1)


J'ai vérifié tous les types de champs en rapport avec les données selectionnées, j'ai vérifié tous les noms de champs en rapport avec la requête, ainsi que leur longueur, enfin bref j'ai tout vérifier mais sur php ce ne marche pas et il ne me dit pas pourquoi...

Voici la requête ():
Citation:
SELECT id_adr, id_titre_adr, id_langue_adr FROM t_adresse WHERE nom_adr='Jean-paulette' AND prenom_adr='heinrich' AND rue_adr='exemple 89' AND npa_adr='929930'
Logann est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2007, 10h21   #2
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
Tu peux nous montrer le code PHP qui effectue cette requete pour voir si on voit une erreur?
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2007, 10h39   #3
Invité de passage
 
Inscription : décembre 2007
Messages : 5
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 5
Points : 1
Points : 1
Le voici (avec une connection correcte à la base de donnée avant):

Citation:
//test si l'adresse existe déja dans al base de donnée
$test_adresse = mysql_query("SELECT id_adr, id_titre_adr, id_langue_adr FROM t_adresse WHERE nom_adr='".$nom_adr."' AND prenom_adr='".$prenom_adr."' AND rue_adr='".$rue_adr."' AND npa_adr='".$npa_adr."'");

$row_test_adresse = mysql_fetch_array($test_adresse);
$id_adr = $row_test_adresse['id_adr']; //N'affiche rien

$nbr = mysql_num_rows($test_adresse); //me retourne 0
Logann est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2007, 11h10   #4
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
Il faut toujours tester le retour de mysql_query pour s'assurer qu'il n'y a pas d'erreur
Code :
1
2
//test si l'adresse existe déja dans al base de donnée
$test_adresse = mysql_query("SELECT id_adr, id_titre_adr, id_langue_adr FROM t_adresse WHERE nom_adr='".$nom_adr."' AND prenom_adr='".$prenom_adr."' AND rue_adr='".$rue_adr."' AND npa_adr='".$npa_adr."'") or die("Erreur sql :" . mysql_error());
Peut-être qu'il y a un probleme d'apostrophes.
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2007, 11h18   #5
Invité de passage
 
Inscription : décembre 2007
Messages : 5
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 5
Points : 1
Points : 1
J'ai tester avec le 'or die', mais rien a faire, aucune erreurs.

J'ai modifer la requête mais c'est toujours la même chose, dans mysql ca marche mais pas dans php :

Citation:
SELECT id_adr, id_titre_adr, id_langue_adr FROM t_adresse WHERE nom_adr=...' AND prenom_adr='...' AND rue_adr LIKE CONVERT( _utf8 '...' USING latin1 ) COLLATE latin1_swedish_ci AND npa_adr='...'
C'est bizarre tout ca ...
Logann est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2007, 11h27   #6
Invité de passage
 
Inscription : décembre 2007
Messages : 5
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 5
Points : 1
Points : 1
j'ai trouver la source du problème :

C'est le champ rue_adr qui gène php mais pas PhpMyAdmin, ce que je fait avec lui :

je lui insère une rue et un numéro (ex: Rue des exemples 89), il a comme type 'longtext'.

voila le paramètre extrait :

Citation:
WHERE ... AND rue_adr LIKE CONVERT( _utf8 '".$rue_adr."' USING latin1 ) COLLATE latin1_swedish_ci
2ème précision, le bout de code ci_dessus je l'ai pomper du code lorsqu'on fait un recherche sous PhpMyAdmin. J'ai essaier de rechercher une rue existante dans la base, et il me la retrouve!! Mais php de ne veu ou ne peu pas la faire, mais il ne génère pas d'erreur pour autant.
Logann est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2007, 11h39   #7
Membre Expert
 
Avatar de Doksuri
 
Tiger Scott
Développeur Web
Inscription : juin 2006
Messages : 1 251
Détails du profil
Informations personnelles :
Nom : Tiger Scott
Âge : 42

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : juin 2006
Messages : 1 251
Points : 1 514
Points : 1 514
salut,

1) t'as essayé un <SELECT * ...> tout bete ?
2) t'as vérifié que ta requete était bien générée avec un echo $ta_reqeuete ?
__________________
La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

N'oubliez pas le Le tag resolu.

Need_!
Doksuri est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2007, 12h00   #8
Invité de passage
 
Inscription : décembre 2007
Messages : 5
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 5
Points : 1
Points : 1
Alors je suis sur le cul ... si je fait le recherche comme ca (c'est le champ en gras qui posait problème:

Citation:
SELECT id_adr, id_titre_adr, id_langue_adr FROM t_adresse WHERE rue_adr='text AND nom_adr='text' AND prenom_adr='text' AND npa_adr='990942'
ou comme ca

Citation:
SELECT id_adr, id_titre_adr, id_langue_adr FROM t_adresse WHERE rue_adr LIKE CONVERT( _utf8 'text' USING latin1 ) AND nom_adr='text' AND prenom_adr='text' AND npa_adr='990942'
ben ca marche pas mais si je fait comme ca ca marche :

Citation:
SELECT id_adr, id_titre_adr, id_langue_adr FROM t_adresse WHERE rue_adr LIKE CONVERT( _utf8 '%text%' USING latin1 ) AND nom_adr='text' AND prenom_adr='text' AND npa_adr='66884'
(la différence avec celle du dessus c'est les '%' ajouter en début et en fin de la string a rechercher).


Alors voilà, c'est un problème qui restera à jamais mystérieux

Merci de votre aide et bonne journée
Logann est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h30.


 
 
 
 
Partenaires

Hébergement Web