Requete sql et condition if

Résolu/Fermé
ced3E Messages postés 101 Date d'inscription mardi 28 décembre 2010 Statut Membre Dernière intervention 9 janvier 2013 - 5 déc. 2012 à 06:51
ced3E Messages postés 101 Date d'inscription mardi 28 décembre 2010 Statut Membre Dernière intervention 9 janvier 2013 - 6 déc. 2012 à 04:44
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

xXCool00Xx Messages postés 314 Date d'inscription mardi 4 septembre 2012 Statut Membre Dernière intervention 6 février 2013 18
5 déc. 2012 à 06:58
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
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
5 déc. 2012 à 10:49
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
ced3E Messages postés 101 Date d'inscription mardi 28 décembre 2010 Statut Membre Dernière intervention 9 janvier 2013 2
6 déc. 2012 à 04:44
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