Array php

Résolu/Fermé
audi68 Messages postés 571 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 5 août 2015 - 17 mai 2011 à 22:33
audi68 Messages postés 571 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 5 août 2015 - 1 juin 2011 à 23:27
Bonjour a tous,

Voila je bloque
Je veux interroger ma bAse de donnees pour recuperer des donneEs qui sont de la forme texte1,texte2,texte3.......

Pour la mettre sous la forme
texte1
texte2
texte3
.....

require "connect.php";


$reponse = mysql_query("SELECT * FROM mabase WHERE id ='id'")or die(mysql_error()); // Requête SQL
while ($data = mysql_fetch_array($reponse) )
{

//mise option sous forme option 1 au lieu de option1,ption2

$d = array explode(",", $data['options']);

echo "$d";

}

je bloque je sais comment faire en manuel mais pas en auto


$d = explode("_", $options);

$non=$d[0];
$num=$d[1];
$num2=$d[2];


merci de votre aide





A voir également:

12 réponses

avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 501
17 mai 2011 à 22:47
Salut,

{ 
    //mise option sous forme option 1 au lieu de option1,ption2 

    $d = array explode(",", $data['options']); 

    echo "$d"; 

} 

Que vient faire « array » à cet endroit ?
Ta boucle est inutile puisqu'il n'y a qu'une ligne (tu précises un ID).

$d est donc un array.
Pour l'exploiter, tu peux utiliser foreach.
https://www.php.net/manual/fr/control-structures.foreach.php

Et n'oublie pas d'utiliser <br/> pour faire le retour à la ligne.
Je ne le vois nul part dans ton code.
1
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
Modifié par arthezius le 17/05/2011 à 22:51
A essayer:
$d = explode(",", $data['options']); 

foreach ($d as &$value) 
 { 
 echo '<p>'.$value.'</p>'; 
 }


La doc: https://www.php.net/manual/fr/control-structures.foreach.php

Edit: bien vu avion pour le "array" en trop
« La recherche commence là où s'arrête la connaissance. »
1
audi68 Messages postés 571 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 5 août 2015 9
17 mai 2011 à 23:00
merci de ta reponse

oui le array n etais pas au bon endroit mais j ai voulu essaier

jusqu a ici c est juste?
$Explode = explode(",", $data['options']);
$d = array($Explode);

ensuite je dois utiliser foreach?

foreach ($d as &$value) {
echo "Valeur : $value<br />\n";
}

franchement je cale je ne sais plus comment continuer

merci de ton aide
1
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 501
17 mai 2011 à 23:04
$Explode est déjà un array, c'est que retourne la fonction explode.
https://www.php.net/explode
(si tu as copié le « array » de là, sache que la partie qui précède le nom de la fonction est le type retourné par cette fonction).

Donc :
$d = explode(",", $data['options']);

foreach ($d as $value) {
    echo "Valeur : $value<br />\n";
}
Le « & » sert à indiquer une référence. Je l'ai retiré car c'est inutile dans ce cas.
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
audi68 Messages postés 571 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 5 août 2015 9
17 mai 2011 à 23:05
merci de ta reponse arthezius

j ai essaier mais il me donne cet erreur

Parse error: syntax error, unexpected '&', expecting T_VARIABLE or '$'

merci de votre aide
1
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 501
17 mai 2011 à 23:09
Essaye sans le « & »
0
audi68 Messages postés 571 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 5 août 2015 9
17 mai 2011 à 23:18
vous etes des CHEFS

Merci beaucoup de votre aide

Ca fonctionne niquel

Je ne savais pas explode est un array
Par contre l utilisation du "&" je n est pas trop compris
1
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 501
17 mai 2011 à 23:21
explode() n'est pas un array mais une fonction.
Et cette fonction, elle retourne (son résultat est) un array.
https://openclassrooms.com/fr/courses/918836-concevez-votre-site-web-avec-php-et-mysql/912352-les-fonctions
1
audi68 Messages postés 571 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 5 août 2015 9
17 mai 2011 à 23:26
ok je vais etudier ceci plus en details demain car la je suis mort

Merci encore de votre aide

a bientot
1
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 501
17 mai 2011 à 23:29
Et pour le « & » :
http://www.journaldunet.com/developpeur/tutoriel/php/040220-php-references.shtml
Mais si tu n'es pas encore très à l'aise avec le PHP, ce n'est pas très important.
1
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
18 mai 2011 à 13:56
Super intéressant ton lien!

Autrement dit (et si j'ai bien compris) avec les références, une fonction peut d'une certaine manière nous retourner plusieurs variable et non plus uniquement le résultat d'un return....
0
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 501
18 mai 2011 à 14:37
Oui, c'est une des utilités des références.
Lorsque tu passes une variable à une fonction demandant une référence, la variable n'est pas copiée à l'intérieur de la fonction mais c'est directement la variable qui sera utilisée dedans, donc tu peux la modifier, les changements se feront aussi à l'extérieur de la fonction.
0
audi68 Messages postés 571 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 5 août 2015 9
18 mai 2011 à 21:44
non je ne suis pas encore au parfaitement au point mais ton article est interressant je vais essaier avec des exemple

Merci encore pour votre aide
1
audi68 Messages postés 571 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 5 août 2015 9
18 mai 2011 à 21:59
ah j ai encore une derniere "petite" question sur notre exemple

$d = explode(",", $data['options']);

foreach ($d as $value) {
echo "Valeur : $value<br />\n";
}


nous recuperons notre valeur $value sous cette forme
option 1
option 2
....

moi j aimerais recuperer sous un variable
Comme mon exemple
<tr>
<td style="text-align: left; border-bottom: solid 1px #303030; background-color: #474747">
<li style="list-style: square; margin: 0px; padding: 0px; margin-left: 20px">option 1</li>
</td>
</tr>

<tr>
<td style="text-align: left; border-bottom: solid 1px #303030; background-color: #343434">
<li style="list-style: square; margin: 0px; padding: 0px; margin-left: 20px">option 2</li>
</td>

Vous voyez ce que je veux?
Pas facile a expliquer

Merci
1
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
18 mai 2011 à 23:26
Pourquoi utiliser un tableau? C'est complètement inutile dans ton cas...

Sinon, voici ce qui devrait fonctionner comme tu veux:
foreach ($d as $value)
	{
	echo '<tr>
	<td style="text-align: left; border-bottom: solid 1px #303030; background-color: #474747">
	<li style="list-style: square; margin: 0px; padding: 0px; margin-left: 20px">'.$value.'</li>
	</td>
	</tr>';
	}
0
audi68 Messages postés 571 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 5 août 2015 9
1 juin 2011 à 22:40
si je l affiche dans un tableau c est des liens de photos que je recupere

une dernieres question sur les aray

je veux recuperer les uniquement les 5 premiers resultats je fait donc comme cela

$d = explode(",", $data['photos']);

$a=$d[0];
$b=$d[1];
$c=$d[2];
$d=$d[3];
$e=$d[4];
$f=$d[5];

j ai uniquepment les 4 premiers images qui s affiche pas les 2 suivantes prq?

il y a un double point qui s affiche ":"

Merci de ton aide
0
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
1 juin 2011 à 22:57
si je l affiche dans un tableau c est des liens de photos que je recupere 

<tr>
<td style="text-align: left; border-bottom: solid 1px #303030; background-color: #474747">
<li style="list-style: square; margin: 0px; padding: 0px; margin-left: 20px">option 1</li>
</td>
</tr> 

Tu affiches une cellule par ligne.
Tu aurai très bien pu simplifier en:
<p style="text-align: left; border-bottom: solid 1px #303030; background-color: #474747">
<li style="list-style: square; margin: 0px; padding: 0px; margin-left: 20px">option 1</li>
</p>

Ainsi tu n'avais pas besoin d'utiliser de tableau.

j ai uniquepment les 4 premiers images qui s affiche pas les 2 suivantes prq? 

Fait un echo sur la variable $data['photos'] et affiche ici le résultat.
echo $data['photos'];
0
audi68 Messages postés 571 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 5 août 2015 9
1 juin 2011 à 23:07
merci de ta reponse

oui je peux simplifier c est vrai je vais faire ca par apres

si je fait un "echo $data['photos'];" tous s affiche
0
audi68 Messages postés 571 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 5 août 2015 9
1 juin 2011 à 23:10
j ai trouvé l 'ereur j avais 2 fois $d

$d = explode(",", $data['photos']);

$a=$d[0];
$b=$d[1];
$c=$d[2];
$d=$d[3];
$e=$d[4];
$f=$d[5];


Merci de ton aide
0
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
1 juin 2011 à 23:22
Ah oui effectivement, j'avais pas vu ça.
Ta variable $d était donc réécrite.
0
audi68 Messages postés 571 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 5 août 2015 9
1 juin 2011 à 23:27
oui c etais pour ca maintenat ca marche niquel

Merci
0