Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/02/2011, 23h41   #1
Nouveau Membre du Club
 
Inscription : décembre 2006
Messages : 151
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 151
Points : 37
Points : 37
Par défaut Récup requête SQL dans un array

salutatous,

j'ai le code suivant :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
$sql = "SELECT couriel FROM ma_table WHERE id_bis=" . $id . "";
$sql_bis = mysql_query($sql);
echo mysql_error();
 
while ( list ( $couriel ) = mysql_fetch_array($sql_bis)) {
 
	if ($couriel != '') {
		echo $couriel . ', ';
 
	} else {
		echo 'Aucun participant pour le moment...';
	}
}
j'arrive bien à récupérer et à afficher le contenu de $courriel
MAIS
si $courriel est vide et bien mon message "Aucun participant pour le moment..." ne s'affiche pas !!!

je m'aperçois bien que ma condition "if()... else..." disfonctionne !

je souhaiterai donc appliquer un sizeof()... sur l'array mais mon problème est que je n'arrive à récupérer le résultat de ma requête justement dans un array !

si vous avez une piste...
nicomax34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 23h44   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
enlève le list et $couriel sera un array
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 00h00   #3
Nouveau Membre du Club
 
Inscription : décembre 2006
Messages : 151
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 151
Points : 37
Points : 37
Salut,

si j'écris ceci :

Code :
1
2
3
4
5
6
7
8
9
while ( $couriel = mysql_fetch_array($sql_bis) ) {
 
if (sizeof($couriel) != 0) {
echo $couriel . ', ';
 
} else {
echo 'Aucun participant pour le moment...';
}
}
le 1er echo de ma condition m'affiche ceci :
Array, Array, Array,
nicomax34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 00h07   #4
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
oui normale si tu fais un echo sur un array il va t'afficher Array,
fait :
Code :
echo $couriel['couriel'], ', ';
mais ta methode n'est pas bonne, qu'est ce que tu veux faire enfaite ?
si tu veux juste savoir si t'as des email dans ta base compte juste le nombre de résultat direct dans t'as requete, pas besoin de while ni rien
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 00h16   #5
Nouveau Membre du Club
 
Inscription : décembre 2006
Messages : 151
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 151
Points : 37
Points : 37
ah là ça m'affiche bien le contenu de $courriel

en fait ce que je veux faire, c'est une condition qui me permet de savoir si le contenu de mon array $courriel est vide ou rempli

s'il est rempli, j'affiche son contenu... et s'il est vide j'affiche un message "Aucun participant pour le moment..."

et ce que je n'arrive pas à faire, c'est justement de : comment savoir si mon array est vide ou plein !
nicomax34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 00h21   #6
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
Citation:
Envoyé par nicomax34 Voir le message
ah là ça m'affiche bien le contenu de $courriel

en fait ce que je veux faire, c'est une condition qui me permet de savoir si le contenu de mon array $courriel est vide ou rempli

s'il est rempli, j'affiche son contenu... et s'il est vide j'affiche un message "Aucun participant pour le moment..."

et ce que je n'arrive pas à faire, c'est justement de : comment savoir si mon array est vide ou plein !
ton array correspond aux colonnes de chaque ligne de résultats de la requete, et pas a tout les resultats, donc la en gros a chaque fois qui va tomber sur une ligne qui a $couriel vide, il va marquer l'erreur

ce que tu veux savoir c'est si ta base est vide d'email ou pas ?
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 00h29   #7
Nouveau Membre du Club
 
Inscription : décembre 2006
Messages : 151
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 151
Points : 37
Points : 37
oui je veux savoir si ya des emails en base... et si oui ou non... j'affiche le ou les emails ou bien mon message
nicomax34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 00h36   #8
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
Citation:
Envoyé par nicomax34 Voir le message
oui je veux savoir si ya des emails en base... et si oui ou non... j'affiche le ou les emails ou bien mon message
tu dois faire un COUNT en SQL, requerer et résultat (pas besion de while)
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 00h41   #9
Nouveau Membre du Club
 
Inscription : décembre 2006
Messages : 151
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 151
Points : 37
Points : 37
OUF ! j'ai trouvé, voici :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$sql = "SELECT couriel FROM ma_table WHERE id_bis=" . $id . "";
$sql_bis = mysql_query($sql);
echo mysql_error();
 
$nb_lignes = mysql_num_rows($sql_bis);
 
if ($nb_lignes != 0) {
 
while ( $couriel = mysql_fetch_array($sql_bis) ) {
echo $couriel['participant_couriel'], ', ';
}
 
} else {
echo 'Aucun participant pour le moment...';
}
nicomax34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 00h57   #10
Nouveau Membre du Club
 
Inscription : décembre 2006
Messages : 151
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 151
Points : 37
Points : 37
une dernière question :

mon affichage me donne :
courriel_01@courriel.fr, courriel_02@courriel.fr, courriel_03@courriel.fr,

comment faire pour supprimer la dernière virgule au niveau de l'affichage ?


merci en tout cas pour m'avoir mis sur la voie
nicomax34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 01h04   #11
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
pareil toujours en une seul requete et toujours pas besion de while, en SQL avec GROUP_CONCAT
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 15h45   #12
Membre du Club
 
Avatar de Paniez
 
Inscription : janvier 2003
Messages : 160
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : janvier 2003
Messages : 160
Points : 54
Points : 54
Citation:
Envoyé par nicomax34 Voir le message
une dernière question :

mon affichage me donne :
courriel_01@courriel.fr, courriel_02@courriel.fr, courriel_03@courriel.fr,

comment faire pour supprimer la dernière virgule au niveau de l'affichage ?
Salut,
Au lieu de :
Code :
1
2
3
4
 
while ( $couriel = mysql_fetch_array($sql_bis) ) {
echo $couriel['participant_couriel'], ', ';
}
je ferais un :
Code :
1
2
3
4
5
6
 
$res='';
while ( $couriel = mysql_fetch_array($sql_bis) ) {
$res.= $couriel['participant_couriel'], ', ';
}
echo substr($res,0, -1);
Paniez est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 15h59   #13
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
Citation:
Envoyé par Paniez Voir le message
Salut,
Au lieu de :
Code :
1
2
3
4
 
while ( $couriel = mysql_fetch_array($sql_bis) ) {
echo $couriel['participant_couriel'], ', ';
}
je ferais un :
Code :
1
2
3
4
5
6
 
$res='';
while ( $couriel = mysql_fetch_array($sql_bis) ) {
$res.= $couriel['participant_couriel'], ', ';
}
echo substr($res,0, -1);
c'est pas terrible..., GROUP_CONCAT le fait direct, sinon faire un implode
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 21h40   #14
Nouveau Membre du Club
 
Inscription : décembre 2006
Messages : 151
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 151
Points : 37
Points : 37
entre temps et grâce aux conseils de stealth35, mon code a évolué.

j'ai remplacé ceci :

Code :
1
2
3
while ( $couriel = mysql_fetch_array($sql_bis) ) {
echo $couriel['participant_couriel'], ', ';
}
par cela :

Code :
1
2
3
4
while($data = mysql_fetch_assoc($sql_bis)) {
$couriel[] = $data['participant_couriel'];
echo $data['participant_couriel'] . ', ';
}
et donc si je remplace le code juste au-dessus par ta méthode, Paniez, comme ceci :

Code :
1
2
3
4
5
6
$res='';
while ( $couriel = mysql_fetch_array($sql_bis) ) {
$couriel[] = $data['participant_couriel'];
$res.= $data['participant_couriel'], ', ';
}
echo substr($res,0, -1);
ça m'affiche cette erreur :
Parse error: syntax error, unexpected ',' in /blablabla/mon_fichier.php
nicomax34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/02/2011, 09h56   #15
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
utilise implode
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2011, 14h04   #16
Membre du Club
 
Avatar de Paniez
 
Inscription : janvier 2003
Messages : 160
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : janvier 2003
Messages : 160
Points : 54
Points : 54
Citation:
Envoyé par nicomax34 Voir le message
et donc si je remplace le code juste au-dessus par ta méthode, Paniez, comme ceci :

Code :
1
2
3
4
5
6
$res='';
while ( $couriel = mysql_fetch_array($sql_bis) ) {
$couriel[] = $data['participant_couriel'];
$res.= $data['participant_couriel'], ', ';
}
echo substr($res,0, -1);
ça m'affiche cette erreur :
Parse error: syntax error, unexpected ',' in /blablabla/mon_fichier.php
Re,
Je n'avais pas fait attention, mais il y a une virgule à la place du point :
Code :
1
2
$res.= $data['participant_couriel']. ', ';
Paniez est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h07.


 
 
 
 
Partenaires

Hébergement Web