Ma Bdd 'clignote'... Fonctionne, fonctionne pas...
larrieu
Messages postés5Date d'inscriptionmercredi 9 juin 2004StatutMembreDernière intervention24 novembre 2004
-
15 nov. 2004 à 12:00
larrieu
Messages postés5Date d'inscriptionmercredi 9 juin 2004StatutMembreDernière intervention24 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.
A voir également:
Ma Bdd 'clignote'... Fonctionne, fonctionne pas...
ehmarc
Messages postés393Date d'inscriptionmardi 2 décembre 2003StatutMembreDernière intervention29 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-)
ehmarc
Messages postés393Date d'inscriptionmardi 2 décembre 2003StatutMembreDernière intervention29 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-)
larrieu
Messages postés5Date d'inscriptionmercredi 9 juin 2004StatutMembreDernière intervention24 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...