Requete sql et condition if

Résolu
Bonjour,

J' ai du mal comprendre ce qui ne vas pas dans mon code, je voudrais demander une comparaison entre le résulta du select et ma variable.

Mon problème viens de la requete " sql " qui compare ma variable "add_friend" avec le résulta data['email'].

voila le code :

<?php

$add_friend = isset($_POST['add_friend']) ? trim(mysql_real_escape_string($_POST['add_friend'])) : '';

mysql_connect("localhost","root", "") OR die('Erreur de connexion à la base');
mysql_select_db("my");

$res = mysql_query("SELECT email FROM members WHERE email = '$add_friend'");

$sql = mysql_query ("SELECT email FROM friends
LEFT JOIN members ON friends.id_friend = id WHERE id_me = " . $_SESSION['id'] . " ");

while($data=mysql_fetch_assoc($sql))

$errors = array();

if( $data['email'] == $add_friend) $errors[] = 'déja ami';
if( $_SESSION['email'] == $add_friend) $errors[] = 'Ceci est votre email';
if(mysql_num_rows($res) == 0) $errors[] = 'Email innconu';
if(!filter_var($add_friend, FILTER_VALIDATE_EMAIL)) $errors[] = 'L\'adresse email est non invalide';

if(count($errors) > 0) {
echo '<div class="errors">';
echo 'Il y a '.count($errors).' erreur(s) :<br/>';
foreach($errors as $error){
echo '- '.$error.'<br/>';
}
echo '</div>';
}
?>

Merci d' avance de votre aide :)

3 réponses

  1. Salut, d'apres ce que je vois c'est :
    $add_friend = isset($_POST['add_friend']) ? trim(mysql_real_escape_string($_POST['add_friend'])) : '';
    Mais comme je n'est pas le code en couleur etc.,. Je ne peux pas trop t'aider a resoudre le probleme.
    0
    1. je n'ai pas trop creusé ton code mais a première vue il manque les {} de ta boucle while

      il l'init de l'array doit etre en dehors de la boucle
      $errors = array();
      while($data=mysql_fetch_assoc($sql)){
      
      
      
      
      
      if( $data['email'] == $add_friend) $errors[] = 'déja ami';
      if( $_SESSION['email'] == $add_friend) $errors[] = 'Ceci est votre email';
      if(mysql_num_rows($res) == 0) $errors[] = 'Email innconu';
      if(!filter_var($add_friend, FILTER_VALIDATE_EMAIL)) $errors[] = 'L\'adresse email est non invalide';
      <code>}
      </code>
      0
      1. Merci de votre aide je viens de finir mon code, j' utilise ma variable dans mon where.

        $resulte = mysql_query("SELECT id_me = " . $_SESSION['id'] . " FROM friends WHERE id_friend = '$variable_email' ");

        et bien sur des conditions if pour m' assurer que la variable est correctement remplie.
        0