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 17/11/2011, 20h44   #1
Membre actif
 
Homme
Inscription : avril 2011
Messages : 426
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2011
Messages : 426
Points : 171
Points : 171
Par défaut Optimisation code double boucle while

Bonsoir,

J'aimerais ne faire qu'une seule requête d'autant plus qu'il s'agit de la même.

Comment procéderiez vous pour faire qu'une seule requête pour ce code ?

Par avance merci pour votre aide

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
//requete type articles
	$sql_type_article = $bdd->prepare('SELECT id_type_article,type_article_intitule FROM pevtt_type_article');
	$sql_type_article->execute();
 
	echo '<ul id="jsddm">';
		//redaction
		echo '<li><a href="#">Création</a>';
		echo '<ul>';
			while ($tab_type_article = $sql_type_article->fetch()) 
			{
				$type_article = htmlspecialchars($tab_type_article['type_article_intitule']);
				$id_type_article = intval($tab_type_article['id_article_intitule']);
 
				echo'<li><a href="/php/articles/rediger_article.php?type_article='.$id_type_article.'">'.$type_article.'</a></li>';		
			}
		echo'</ul>';
		echo'</li>';
 
		$sql_type_article = $bdd->prepare('SELECT id_type_article,type_article_intitule FROM pevtt_type_article');
		$sql_type_article->execute();
 
		//gestion
		echo'<li><a href="#">Gestion</a>';
		echo'<ul>';
			while ($tab_type_article = $sql_type_article->fetch()) 
			{
				$type_article = htmlspecialchars($tab_type_article['type_article_intitule']);
				$id_type_article = intval($tab_type_article['id_article_intitule']);
 
				echo'<li><a href="/php/articles/liste_article.php?type_article='.$id_type_article.'">'.$type_article.'</a></li>';		
			}
		echo'</ul>';
		echo'</li>';
	echo'</ul>';
heretik25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2011, 09h10   #2
Expert Confirmé
 
Avatar de grunk
 
Homme Olivier
Développeur Web
Inscription : août 2003
Messages : 1 837
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Âge : 27
Localisation : France, Côte d'Or (Bourgogne)

Informations professionnelles :
Activité : Développeur Web
Secteur : Industrie

Informations forums :
Inscription : août 2003
Messages : 1 837
Points : 3 318
Points : 3 318
Un fetchAll qui va te retourner tous les résultats. Te reste plus qu' a itérer autant de fois que nécessaire sur ce jeu de résultat.

Au passage le principe du prepare/execute c'est que tu n'a pas besoin de repréparer la requête pour la réexecuter.
Dans ton code pour la seconde requête
Code :
$sql_type_article->execute();
aurait suffit
grunk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2011, 09h55   #3
Modérateur
 
Inscription : septembre 2010
Messages : 7 165
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 165
Points : 8 538
Points : 8 538
Citation:
Envoyé par grunk Voir le message
Un fetchAll qui va te retourner tous les résultats. Te reste plus qu' a itérer autant de fois que nécessaire sur ce jeu de résultat.

Au passage le principe du prepare/execute c'est que tu n'a pas besoin de repréparer la requête pour la réexecuter.
Dans ton code pour la seconde requête
Code :
$sql_type_article->execute();
aurait suffit
autant faire un foreach direct sur le statement

Code :
foreach($sql_type_article as $tab_type_article)
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2011, 15h38   #4
Membre actif
 
Homme
Inscription : avril 2011
Messages : 426
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2011
Messages : 426
Points : 171
Points : 171
Merci pour vos explications !
heretik25 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 13h51.


 
 
 
 
Partenaires

Hébergement Web