l'affichage d'un select rame - PHP - Programmation
Marsh Posté le 14-11-2004 à 19:53:44
Code :
|
Qu'est ce que ca fout là ça?
Code :
|
Vire moi ce slash
Marsh Posté le 14-11-2004 à 20:37:11
la 1ère balise de l'option me servira à écrire "Selectionnez..." par exemple.
J'ai viré le slash. Merci.
Mais mon problème persiste, sauf si je vire ma boucle for.
Marsh Posté le 14-11-2004 à 20:40:02
rmm a écrit : la 1ère balise de l'option me servira à écrire "Selectionnez..." par exemple. |
ca rame que sous IE?
edit: + url de la page
Marsh Posté le 14-11-2004 à 20:40:32
t'as quoi en sortie (pas le script, mais la page qui arrive dans MSIE)
Marsh Posté le 14-11-2004 à 20:47:15
Pour l'instant mais tests n'ont lieu que sur IE.
J'ai le haut de la page qui s'affiche (1 image et un texte tout simple) ensuite, j'ai deux input et le select en question qui devraient apparaître. Seulement, ça fait plus que ramer, ça bloque.
J'ai oublié de précisé que mes variables viennent d'une bd :
mysql_select_db($database_Conn, $Conn);
$proj_sql = ' SELECT DISTINCT projet FROM users ';
$rs_proj = mysql_query($proj_sql, $Conn) or die(mysql_error());
$proj = mysql_fetch_array($rs_proj);
$num_proj = mysql_num_rows($rs_proj);
Pour l'instant, $num_proj = 1 et $proj[0]=gestion de projet
Merci
Marsh Posté le 14-11-2004 à 21:14:10
A part le fait que la syntaxe soit bizarre (parce que le parcours de résultat d'une bd, c'est pas comme tu le fais, un mysql_fetch_* => 1 seul résultat, c'est là-dessus qu'il faut boucler), combien de résultat t'es supposé obtenir ? un seul ?
Marsh Posté le 14-11-2004 à 21:19:05
pour l'instant, dans ma bd, j'ai un seul intitulé de projet, donc je n'obtiens qu'un résultat, mais ensuite je testerai plusieurs projets.
Je ne comprend par pourquoi ma syntaxe est bizarre.
Marsh Posté le 14-11-2004 à 21:24:11
Désolé, je suis lamentable! j'ai oublié un $ dans ma boucle for!
Merci qd meme.
J'accepte néanmoins une proposition de meilleur syntaxe pour le parcours de ma bd.
Marsh Posté le 14-11-2004 à 21:27:30
rmm a écrit : |
Interromps moi si je me trompe
Tu executes une requête, tu lis un seul résultat puis tu crées une boucle pour afficher les résultats
Tu sens pas comme un problème là ?
Bref, te casses pas la tête
Code :
|
à moins que tes résultats soient toujours renvoyés en une seule ligne
Marsh Posté le 14-11-2004 à 21:43:17
Là je t'avoue je suis perdu.
J'obtiens deux valeurs avec ma requête SQL ("Gestion de projet" et "Economie" )
Quand, j'exécute mon "for", j'obtiens seulement "Gestion de projet"
Quand j'exécute ton "while", j'obtiens seulement "Economie".
Marsh Posté le 14-11-2004 à 21:59:00
ok, je viens de comprendre!
Fatigué moi aujourd'hui.
en tout cas MERCI :-)
Marsh Posté le 14-11-2004 à 23:06:21
Utilise mysql_unbuffered_query(...);
Ca va plus vite lorsqu'il y a des grosses requettes.
Mais a ne utiliser dans des requette croiser.
Code :
|
Marsh Posté le 15-11-2004 à 17:52:14
un mysql_result("select count(*) from ta_table",0,0) ira beaucoup plus vite qu'un mysql_num_rows de ta requette
Marsh Posté le 15-11-2004 à 18:32:52
paulmuadib a écrit : un mysql_result("select count(*) from ta_table",0,0) ira beaucoup plus vite qu'un mysql_num_rows de ta requette |
Pas toujours.
Ceci marche seulement s'il souhaite récupérer uniquement le nombre d'enregistrement par contre s'il doit récupérer des informations plus le nombre d'enregistrement mysql_num_row est utile afin de pas faire une requette pour récupérer les résultat et une autre pour récupérer le nombre.
Marsh Posté le 16-11-2004 à 09:34:02
je parle essentiellement pour des resultats comprenant un nombre de lignes important
je préfère effectuer 2 requetes et ainsi gagner un temps non négligeable
Marsh Posté le 14-11-2004 à 19:52:26
Bonsoir tout le monde!
Lorsque je rajoute ce morceau de code php dans le select suivant, l'affichage (IE) rame énormément.
<select style="width:192px;" name="projet" id="projet"/>
<option></option>
<?php
for ($i=0; i<$num_proj; $i++)
{ echo '<option>'.$proj[$i].'</option>';
}
?>
</select>
Quelqu'un sait me dire pourquoi?
Est-ce que je peux contourner ce problème?
Merci d'avance!