[Php] Mettre les resultas while en variable
Résolu/Fermé
A voir également:
- [Php] Mettre les resultas while en variable
- Easy php - Télécharger - Divers Web & Internet
- Factorielle en c boucle while - Forum C
- Get_magic_quotes_gpc php 8 ✓ - Forum PHP
- Vba excel sélectionner une plage de cellules variable ✓ - Forum VB / VBA
9 réponses
Neliel
Messages postés
6146
Date d'inscription
jeudi 9 juillet 2009
Statut
Contributeur
Dernière intervention
20 mars 2017
1 691
15 mai 2010 à 12:20
15 mai 2010 à 12:20
Ce n'est pas le while qui te donne les alias, mais le mysql_fetch_array qui lui est une fonction PHP qui renvoie une donnée.
Tu n'as qu'à essayer de les mettre dans une liste du genre:
Tu n'as qu'à essayer de les mettre dans une liste du genre:
while($don_cat_sec2=mysql_fetch_array($rep_cat_sec2) { $alias[]=$don_cat_sec2['alias']; }
Neliel
Messages postés
6146
Date d'inscription
jeudi 9 juillet 2009
Statut
Contributeur
Dernière intervention
20 mars 2017
1 691
15 mai 2010 à 12:12
15 mai 2010 à 12:12
Bonjour,
while n'est pas une fonction PHP, c'est un mot clé comme if par exemple... while ne renvoie rien, tu ne peux donc pas faire:
$pc=while(...)
while n'est pas une fonction PHP, c'est un mot clé comme if par exemple... while ne renvoie rien, tu ne peux donc pas faire:
$pc=while(...)
OK. comme ca, j'arrive a avoir les retour. seulement, comment avoir automatiquement les $alias[] dans le sql qui augmentent de chiffres afin de devenir $alias[0] puis $alias[1] jusqu'à ce qu'il n'y ait plus d'alias a mettre?
car la j' dois entre manuellement combien je vais avoir de catégorie.
P.S: bien sur, je continue de cherchez a cote. Je pose la question ca permet de ne pas perdre de temps mais c'est pas de la demande de boulot tout fait :p
Pour infos, je suis en train de faire mon cms donc je demande pas a ce que l'on me le fasse :p
car la j' dois entre manuellement combien je vais avoir de catégorie.
P.S: bien sur, je continue de cherchez a cote. Je pose la question ca permet de ne pas perdre de temps mais c'est pas de la demande de boulot tout fait :p
Pour infos, je suis en train de faire mon cms donc je demande pas a ce que l'on me le fasse :p
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Neliel
Messages postés
6146
Date d'inscription
jeudi 9 juillet 2009
Statut
Contributeur
Dernière intervention
20 mars 2017
1 691
15 mai 2010 à 12:40
15 mai 2010 à 12:40
Comme ceci... (je prend une requête sql en exemple)
Imagines que tu as une liste de nom dans une liste $nom[], et que tu veux afficher le prénom, stocké dans une table "personne", de tous dans une page php, tu fais:
En somme, tu met ta requête dans une boucle... tu peux très bien imbriqué plusieurs boucles ensembles, exemple, tu peux très bien faire:
Imagines que tu as une liste de nom dans une liste $nom[], et que tu veux afficher le prénom, stocké dans une table "personne", de tous dans une page php, tu fais:
for($position=0;$position<sizeof($nom);$position++) { $nom_courant=$nom[$position]; $req="select prenom from personne where nom='".$nom_courant."'"; $res=mysql_query($req) or die(mysql_error()); $donnees=mysql_fetch_array($res); echo "prénom :".$donnees['prenom']; }
En somme, tu met ta requête dans une boucle... tu peux très bien imbriqué plusieurs boucles ensembles, exemple, tu peux très bien faire:
for($position=0;$position<sizeof($nom);$position++) { $nom_courant=$nom[$position]; $req="select prenom from personne where nom='".$nom_courant."'"; $res=mysql_query($req) or die(mysql_error()); while($donnees=mysql_fetch_array($res)) { .... } }
Oui mais ce système augmente drastiquement le nombre de requête a effectué. si j'ai 100 articles a afficher, cela vas faire 100 requêtes.
C'est pour cela que je voulais avoir une requête qui se modifie automatiquement avec les données récolter.
déjà 3 requêtes pour afficher une suite d'articles, c'est pas très optimiser on doit pouvoir faire mieux, si j'en rajoute a mort, c'est le serveur qui vas m'éjecter.
c'est pas possible d'entrée en variable le résultat d'une recherche qui sort par un while ou un for?
car la j'ai plus qu'a modifier ma requête pour faire des ajout. le pb, c'est que le while ou le for ne vont pas dans la requête il faut donc que j'enregistre les données qu'il me donne afin de les réinjecter.
Donc comment faire?
C'est pour cela que je voulais avoir une requête qui se modifie automatiquement avec les données récolter.
déjà 3 requêtes pour afficher une suite d'articles, c'est pas très optimiser on doit pouvoir faire mieux, si j'en rajoute a mort, c'est le serveur qui vas m'éjecter.
c'est pas possible d'entrée en variable le résultat d'une recherche qui sort par un while ou un for?
car la j'ai plus qu'a modifier ma requête pour faire des ajout. le pb, c'est que le while ou le for ne vont pas dans la requête il faut donc que j'enregistre les données qu'il me donne afin de les réinjecter.
Donc comment faire?
Neliel
Messages postés
6146
Date d'inscription
jeudi 9 juillet 2009
Statut
Contributeur
Dernière intervention
20 mars 2017
1 691
15 mai 2010 à 17:58
15 mai 2010 à 17:58
A tester:
Si tu as une liste $nom[]...
Alors, peut-être tu peux faire ceci:
$chaine="nom='";
while($pos<sizeof($nom))
{
nom_courant=$nom[$pos];
if($pos!=0)
$chaine=$chaine." AND nom=";
$chaine=$chaine.$nom_courant."'";
$pos++;
}
Tu devrais avoir une chaine qui ressemble à ça
"nom='patrick' AND nom='louis' AND nom='Marie'...."
Ensuite tu l'insère dans ta requête
req = "select prenom from personne where ".$chaine;
C'est un truc que je viens d'élaborer donc je n'ai aucune certitude que cela va fonctionner.
Si tu as une liste $nom[]...
Alors, peut-être tu peux faire ceci:
$chaine="nom='";
while($pos<sizeof($nom))
{
nom_courant=$nom[$pos];
if($pos!=0)
$chaine=$chaine." AND nom=";
$chaine=$chaine.$nom_courant."'";
$pos++;
}
Tu devrais avoir une chaine qui ressemble à ça
"nom='patrick' AND nom='louis' AND nom='Marie'...."
Ensuite tu l'insère dans ta requête
req = "select prenom from personne where ".$chaine;
C'est un truc que je viens d'élaborer donc je n'ai aucune certitude que cela va fonctionner.
oki. Je vais tester j'ai aussi un truc que j'ai trouver ailleurs:
a voir aussi
$req = mysql_query("SELECT nom FROM client;",$db); while ($info = mysql_fetch_array($req)) { $varT .= $info[nom] .", " ; }
a voir aussi
Bon, j'ai reussis avec le code
j'ai bien ce que je veux qui apparait en plus.
Merci de ton aide ( je vais aussi tester ton code afin de pouvoir passer de l'un a l'autre si nécessaire. mais il me semble que se sont les même.
$varT=''; while($don_cat_sec2=mysql_fetch_array($rep_cat_sec2)){ $varT.=' OR alias_cat="'.$don_cat_sec2['alias'].'"'." "; } $sql_acc='SELECT * FROM article WHERE alias_cat="'.$cat.'"'.$varT.' ORDER by ordre ASC';
j'ai bien ce que je veux qui apparait en plus.
Merci de ton aide ( je vais aussi tester ton code afin de pouvoir passer de l'un a l'autre si nécessaire. mais il me semble que se sont les même.