Array php

Résolu
audi68 Messages postés 571 Date d'inscription   Statut Membre Dernière intervention   -  
audi68 Messages postés 571 Date d'inscription   Statut Membre Dernière intervention   -
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 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
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   Statut Membre Dernière intervention   475
 
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   Statut Membre Dernière intervention   9
 
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 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
$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   Statut Membre Dernière intervention   9
 
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 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
Essaye sans le « & »
0
audi68 Messages postés 571 Date d'inscription   Statut Membre Dernière intervention   9
 
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 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
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   Statut Membre Dernière intervention   9
 
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 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
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   Statut Membre Dernière intervention   475
 
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 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
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   Statut Membre Dernière intervention   9
 
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   Statut Membre Dernière intervention   9
 
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   Statut Membre Dernière intervention   475
 
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   Statut Membre Dernière intervention   9
 
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   Statut Membre Dernière intervention   475
 
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   Statut Membre Dernière intervention   9
 
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   Statut Membre Dernière intervention   9
 
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   Statut Membre Dernière intervention   475
 
Ah oui effectivement, j'avais pas vu ça.
Ta variable $d était donc réécrite.
0
audi68 Messages postés 571 Date d'inscription   Statut Membre Dernière intervention   9
 
oui c etais pour ca maintenat ca marche niquel

Merci
0