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 03/02/2011, 22h22   #1
Invité de passage
 
Inscription : novembre 2006
Messages : 7
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 7
Points : 1
Points : 1
Par défaut Classement des résulats

Bonsoir,

je souhaiterai un petit peu d'aide.
J'essai d'effectuer le listing d'une table pour la mettre dans un array() traité (qui passe dans une Class de gestion de formulaire).

Je vais illustrer un peu :

Code :
1
2
3
4
5
6
7
8
9
 
$medias = mysql_query("SELECT ". $select ." FROM keywords ". $where ." ORDER BY ordre") or die(mysql_error());
 
While($o = mysql_fetch_row($medias)){
 
					$arr[$o[0]] = $o[1];
				}
 
				 return $arr;
Voilà une partie du code qui liste mes infos de la table et les met dans un array. Ce que je souhaiterai faire c'est à chaque changement de la valeur 'ordre' inserer une ligne vide au tableau. (Cette ligne vide, affichera ensuite un <option> vide pour faire un saut).

J'ai essayé en empilant un tableau etc. Mais rien n'y fais (mes 'ordre' vont de 0 à 6) il ne s'affiche qu'une fois, mais en debogage j'ai tous mes espaces. Et dès que j'empile (soit du style $arr[] = ''; soit du style $x + $arr ) sa ne fonctionne pas.

Merci beaucoup.
Mith55 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2011, 22h42   #2
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
Ce n'est pas propre de procéder ainsi car tu mets un élement de mise en forme dans tes données.
C'est à ta classe de formulaire de s'occuper de la mise en forme.

Ce que tu veux n'est cependant pas compliqué :
Code :
1
2
3
4
5
6
 
$ordre = 0;
while($o = mysql_fetch_row($medias)){
	if ($o[2] != $ordre) { $arr[] = ""; $ordre = $o[2]; }
        else { $arr[$o[0]] = $o[1]; }
}
Ca ne marche que si $o[1] n'est pas un chiffre (ce qui illustre bien que tu devoies les données) et que si tu recuperes la valeur ordre dans la requête.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2011, 23h29   #3
Invité de passage
 
Inscription : novembre 2006
Messages : 7
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 7
Points : 1
Points : 1
Merci à toi, je test sa et je te dis les retours.

Mais j'avais fais quelque chose dans le genre et sa ne marché pas, enfin je vais voir sa.

Sinon, pour le mysql_fetch_row, le manuel php conseil cette utilisation à mysql_fetch_array ; j'ai pris la mauvaise abidue d'utiliser le 2nd. Pourquoi le 1er est-il préconisé ?

Merci pour ta réponse.
Mith55 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2011, 11h28   #4
Invité de passage
 
Inscription : novembre 2006
Messages : 7
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 7
Points : 1
Points : 1
Sa me fait comme d'habitude, le dernier s'affiche mais pas les 5 premiers.
Je pense que le faite du $arr[] s'écrase puisque quand j'enregistre $arr[$o[0]], je dois écraser les données.
Mith55 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h08.


 
 
 
 
Partenaires

Hébergement Web