Ma Bdd 'clignote'... Fonctionne, fonctionne pas...

larrieu Messages postés 5 Date d'inscription mercredi 9 juin 2004 Statut Membre Dernière intervention 24 novembre 2004 - 15 nov. 2004 à 12:00
larrieu Messages postés 5 Date d'inscription mercredi 9 juin 2004 Statut Membre Dernière intervention 24 novembre 2004 - 16 nov. 2004 à 11:00
Bonjour,

Je suis un peu dépassé...

Ma bdd sur mysql comprend une table annonce, des champs idannonce, sujet, message, pseudo (de l'auteur),mail (de l'auteur), etc...

J'ai 40 annonces enregistrées pour les tests.

Je fais une recherche d'annonce par son N°, l'auteur ou le mail de l'auteur.
Un formulaire, avec des champs type=text m'envoie, en POST, l'info : soit l'$id, soit l'$auteur, soit le $mail.
Je n'ai plus qu'à faire une requête :

if ($id != "") {

$id = rtrim(strtolower($id));
mysql_select_db($bdd, $connect);$query "SELECT * FROM annonce WHERE idannonce $id";
$enreg = mysql_query($query, $connect);
if ($enreg) $res = mysql_num_rows($enreg);
}

if ($auteur != "") {

$auteur = rtrim(strtolower($auteur));
mysql_select_db($bdd, $connect);$query "SELECT * FROM annonce WHERE pseudo $auteur";
$enreg = mysql_query($query, $connect);
if ($enreg) $res = mysql_num_rows($enreg);
}

Dans le cas de l'$id, ça marche, mais pour l'$auteur (champ pseudo) ou le $mail (champ email), la réponse est 0 ligne...

Je n'y comprends plus rien.

Je viens de passer des heures. Il doit y avoir un truc que je ne vois pas.

Pourriez-vous m'aider ?

Merci

C'est en forgeant qu'on devient patissier.

4 réponses

ehmarc Messages postés 393 Date d'inscription mardi 2 décembre 2003 Statut Membre Dernière intervention 29 septembre 2008
15 nov. 2004 à 18:55
salut

pour ta deuxieme requete
remplace :

$query "SELECT * FROM annonce WHERE pseudo $auteur";


par

$query "SELECT * FROM annonce WHERE pseudo '$auteur'";


il fo mettre des ' au niveau du champ quand c du texte sinon l'interpretateur MySQL va pas comprendre les espaces ....

Ta premiere requete marche parceque ton champ de cle est de type int longint etc... alors que la ca s'apparente plus a du varchar ou du text. Grossomodo l'esprit de ta reponse c ca....

++

"Aucun de nous ne sait ce que nous savons tous, ensemble."
Lao Tseu inventeur du "copier coller" 8-)
0
LaurentKOogar Messages postés 369 Date d'inscription samedi 4 septembre 2004 Statut Membre Dernière intervention 20 octobre 2013
15 nov. 2004 à 20:13
yo,

Je pense qu'il faut également les mettre avec l'id :$query "SELECT * FROM annonce WHERE idannonce '$id'";

Laurent
[http//phpsources.net http//phpsources.net]
0
ehmarc Messages postés 393 Date d'inscription mardi 2 décembre 2003 Statut Membre Dernière intervention 29 septembre 2008
15 nov. 2004 à 22:59
Salut

Il est plus facile de les mettre n'importe quand.

Il faudrait aussi d'ailleurs mettre des ` alt GR + 7 autour du nom de table pour que ca soit exportable à a peu pres n'importe quel config
$query "SELECT * FROM `annonce` WHERE pseudo '$auteur'";


De la a dire qu'il faut obligatoirement aussi si c un champ preformater (c à dire déclarer en int double float ou l'on sait exactement la forme du mot....) ya peut etre aussi un souci de performance c'est à dire une requete avec un int et les '' serait moins rapides que sans mais le gain doit tellement etre minime maintenant que ca vaut pas le coup...

Perso dans le doute je les met tout le temps

++

"Aucun de nous ne sait ce que nous savons tous, ensemble."
Lao Tseu inventeur du "copier coller" 8-)
0
larrieu Messages postés 5 Date d'inscription mercredi 9 juin 2004 Statut Membre Dernière intervention 24 novembre 2004
16 nov. 2004 à 11:00
Bonjour,

Merci à tous pour vos réponses.

J'avais mis les quotes et j'avais aussi essayé avec le alt 96 mais rien n'y faisait. Et puis, tout d'un coup, ca a marché, et- je ne sais pas comment surtout que la façon d'écrire le $query pour $auteur était différente (quote ou pas) de celle du $query^pour le $mail...

J'ai, par acquis de conscience, réinstallé easyPhp... Ca marche...

Merci à nouveau

C'est en forgeant qu'on devient patissier.
0
Rejoignez-nous