requete php mysql

requete php mysql - PHP - Programmation

Marsh Posté le 03-05-2006 à 17:55:30    

cette fois, je bloque vraiment!!!
 
j'ai une requête de type : $query_resultatenquete = "SELECT * FROM information WHERE nom = '$choix'";
($choix etant une variable récupéré par la methode POST).
 
ça marche nikel... sauf que j'aimerais si $choix n'existe pas dans ma table (donc si l'utilisateur cherche une personne qui n'est pas dans la base) qu'il affiche une phrase du genre 'ce nom n'existe pas'
là, il m'affiche une page vide (forcément puisque je fais exprès de taper un nom qui n'existe pas).
je ne sais pas trop ou coder tout ça...
 
HELP, si quelqun a une idée, merci

Reply

Marsh Posté le 03-05-2006 à 17:55:30   

Reply

Marsh Posté le 03-05-2006 à 17:59:21    

Je vois pas trop ou est le probléme....
 

Code :
  1. $query_resultatenquete = "SELECT * FROM information WHERE nom = '$choix'"
  2. if($query_resultatenquete)
  3. {
  4.     //traitement
  5. }
  6. else
  7. {
  8.      echo"pas d'utilisateur de ce nom...";
  9. }


Message édité par hardrog le 03-05-2006 à 17:59:38
Reply

Marsh Posté le 03-05-2006 à 18:12:28    

hemmm, ouais c mega simple :-(((, je cherchais tellement compliqué ma foi. MERCI MERCI

Reply

Marsh Posté le 03-05-2006 à 18:13:39    

c la fin de la journée c normal :lol:

Reply

Marsh Posté le 04-05-2006 à 02:14:49    

ouais enfin là le code de hardrog fera pas ce que tu veux : $query_resultatenquete existera toujours, le message d'abscence de résultat ne s'affichera jamais. Et même la ressource de ta requête à la base existera toujours, même s'il n'y a pas de résultat.  
C'est au niveau du mysql_fetch_array que ça se joue.
 

Code :
  1. //au passage, n'oublie pas de protéger tes string venant de l'utilisateur avec mysql_real_escape_string
  2. $query = 'SELECT * FROM information WHERE nom = "'.mysql_real_escape_string($choix).'"';
  3. $rs = mysl_query($query) //sera une ressource meme s'il n'y a pas de résultat
  4. $data = null;
  5. //c'est ici que ça se joue
  6. //mysql_fetch_array($rs) renverra false s'il n'y a pas de résultats
  7. if ($data = mysql_fetch_array($rs)) {
  8. //résultat
  9. } else {
  10. //pas de résultat
  11. }


Message édité par Djebel1 le 04-05-2006 à 02:18:02
Reply

Marsh Posté le 04-05-2006 à 10:33:36    

merci Djebel1, effectivement, je m'en suis rendu compte... je cherchais une autre solution avant de poster mais ta réponse vient à point :-)
Je teste de suite!

Reply

Marsh Posté le 04-05-2006 à 11:09:14    

j'ai testé!! il bloque sur   $data = null;
j'ai un message d'erreur :  
Parse error: parse error, unexpected T_VARIABLE in D:\serveur\monsite.com\annuairecrit.php on line 12   (ligne 12 c donc le $data = null;

Reply

Marsh Posté le 04-05-2006 à 11:10:24    

Parce qu'il manque un point-virgule après mysql_query()

Reply

Marsh Posté le 04-05-2006 à 11:27:18    

bahhh vouiiiiiiiiiiii :-(((!!! ça marche du coup merci

Reply

Marsh Posté le 04-05-2006 à 11:43:31    

suite : bon je change un peu de sujet
variable de session :  
j'ai créé une variable de session :  
if (isset($_POST['login']))  
{ session_register('login');
$_SESSION ['login'] = $_POST['login'];
 
et en debut de chaque page :  
session start() puis je teste si la variable de session login existe
session_start();
if ( $_SESSION ['login'] == "password" ) // Si le mot de passe est bon
{ traitement}
else {formulaire de saisie du login}
 
sauf que quand je rentre l'url d'une des pages protégé en direct, effectivement il m'affiche le formulaire de saisie (normal puisque la variable login n'existe pas) mais j'ai en plus un :  
Undefined index: login in D:\serveur\monsite.com\criteres.php on line 3 la ligne 3 correspondant à  
if ( $_SESSION ['login'] == "password" )  
j'ai déjà testé avec un if (isset($_SESSION['login'])) et j'ai le même résultat.
 
d'autre part, j'ai un ensemble de 4 pages necessitant la variable de session pour s'afficher,  
formulaire de saisie du mot de passe... si ok... affichage page 1, de page une lien vers page 2...de page 2 lien vers page 3 ect... en debut de chaque page, le fameux test si la variable de session est bonne... donc ça marche mais quand de la page 2 par exemple je clique sur le lien de retour en page 1, j'ai automatiquement le formulaire de saisie du login qui s'affiche alors que la variable de saisie existe déjà!!!
 
je ne comprend pas trop!!!

Reply

Marsh Posté le 04-05-2006 à 11:43:31   

Reply

Marsh Posté le 04-05-2006 à 11:45:58    

if (isset($_SESSION['login']) && $_SESSION['login'] == ...) ne doit pas afficher de Notice.
 
Sinon, ton session_register ne sert à rien.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 04-05-2006 à 12:01:31    

moi j'hallucine un peu parceque ça marche juste avec un if (isset($_SESSION['login'])) BIZZARD mais pourtant ça marchait pas...
bref, je ne test pas si le mot de passe est bon puisque à priori si la variable de session existe c que forcément l'utilisateur c'est authentifié avec le bon mot de passe au debut!!! oulààà j'ai besoin de vacance moi :-))))
MERCI

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed