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 01/03/2011, 05h06   #1
Membre habitué
 
Inscription : décembre 2007
Messages : 392
Détails du profil
Informations personnelles :
Localisation : Canada

Informations forums :
Inscription : décembre 2007
Messages : 392
Points : 118
Points : 118
Par défaut Afficher deux valeurs dans un while

Bonjour,

Le code suivant me permet de rechercher des commentaires

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$sql = "SELECT bpvcom.commentaire, membres.siteweb FROM bpvcom,membres where membres.firstname=bpvcom.utilisateurs AND  bpvcom.linkid=".$result["id"]."";
$requete = mysql_query( $sql, $link ) or die;
 
$table = array();
while ($row = mysql_fetch_array($requete)){
 
array_push($table,$row);
}
 
$commentaire = array();
$total_table6 = count($table6);
 
for ($i=0; $i < $total_table6; $i++)
{
	$commentaire[]= nl2br($table6[$i]['commentaire']);
 
 
}
$touslescommentaires = implode("</P>", $commentaire);
Je voudrais savoir si il est possible de mettre apres chaque commentaire le siteweb de l'utilisateur a la fin du message.

Style:

Code :
$commentaire[]= nl2br($table6[$i]['commentaire']+['siteweb');
J'ai essaye beaucoup de combinaison sans succes

Merci
voyageurdumonde est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2011, 07h59   #2
Expert Confirmé
 
Avatar de RunCodePhp
 
Inscription : janvier 2010
Messages : 2 707
Détails du profil
Informations personnelles :
Localisation : Réunion

Informations forums :
Inscription : janvier 2010
Messages : 2 707
Points : 3 277
Points : 3 277
Salut

Code :
1
2
3
4
5
6
7
8
$table = array();
while ($row = mysql_fetch_array($requete)){
 
array_push($table,$row);
}
 
$commentaire = array();
$total_table6 = count($table6);
Faudrait faire le point sur les noms des variables, car dans le array_push c'est $table alors qu'après c'est $table6 qui est exploité, à mon sens il y a une des 2 qui va pas.

En partant du principe que $table/$table6 soient les mêmes, et bien il est inutile de faire 2 fois une boucle sur les mêmes données.
Puis vouloir stocker 2 données ensemble, en Php faut juste faire une concaténation :
Code :
1
2
3
4
5
6
7
8
 
$membres = array();
while ($membre = mysql_fetch_array($requete)) {
    $membres[] = $membre;
    $commentaire[] = nl2br($membre['commentaire'].$membre['siteweb']);
}
 
print_r($commentaire);
J'ai volontairement pas utilisé array_push. Lit la doc, car il est dit que dans la majorité cette fonction est inutile, autant affecter le tableau directement.
D'ailleurs, faut voir s'il est utile de créer un 2ème tableau $commentaire alors qu'il stock les mêmes données que $membres.
Pourquoi ne pas exploiter $membres là où c'est prévu d'être affiché, suffit de faire la concaténation à ce moment là avec un echo, non ?
(ça économisera de la ressource, moins de code , etc ...)
En somme, à quoi bon stocker les éléments dans un autre tableau pour au final appeler une autre fonction comme implode() ?
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]
RunCodePhp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2011, 03h51   #3
Membre habitué
 
Inscription : décembre 2007
Messages : 392
Détails du profil
Informations personnelles :
Localisation : Canada

Informations forums :
Inscription : décembre 2007
Messages : 392
Points : 118
Points : 118
Merci RunCodePhp pour tes conseils.

Par contre, lorsque je recupere les commentaire et le siteweb avec ta fonction :

Code :
$commentaire[] = nl2br($membre['commentaire'].$membre['siteweb']);
Le site web est colle au commentaire , (par exemple: ...tres bon endroit a visiterwww.siteweb.com)

Peut on inserer un espace avant membre['siteweb']); ?

Merci
voyageurdumonde est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2011, 09h11   #4
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Il faut que tu revois les bases de la syntaxe PHP :
Code :
$commentaire[] = nl2br($membre['commentaire']." ".$membre['siteweb']);
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2011, 23h49   #5
Membre habitué
 
Inscription : décembre 2007
Messages : 392
Détails du profil
Informations personnelles :
Localisation : Canada

Informations forums :
Inscription : décembre 2007
Messages : 392
Points : 118
Points : 118
Merci sabotage, j'avoue ma médiocrité au niveau de la syntaxe PHP.
Par contre j’apprends tous les jours grâce à vous et à ce forum.
voyageurdumonde est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2011, 00h01   #6
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 465
Points : 8 465
pour parcourir un array c'est juste foreach, pas count + for
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h33.


 
 
 
 
Partenaires

Hébergement Web