Requete sql et condition if [Résolu/Fermé]

Signaler
Messages postés
101
Date d'inscription
mardi 28 décembre 2010
Statut
Membre
Dernière intervention
9 janvier 2013
-
Messages postés
101
Date d'inscription
mardi 28 décembre 2010
Statut
Membre
Dernière intervention
9 janvier 2013
-
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

Messages postés
314
Date d'inscription
mardi 4 septembre 2012
Statut
Membre
Dernière intervention
6 février 2013
16
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.
Messages postés
5358
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
877
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>
Messages postés
101
Date d'inscription
mardi 28 décembre 2010
Statut
Membre
Dernière intervention
9 janvier 2013
2
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.