MySQL limite d'une requete
Avant d'aller plus loin dans l'avancee de mon job, je m'interroge sur plusieurs points :
1/ Quelle est la taille maxi d'une requete MySQL (genre : SELECT nana WHERE nanana...)
Peut elle faire 50 ou 100 lignes de texte, requete tres complexe, comment savoir en combien de temps elle peut etre calculée ?
2/ Quel est l'Interet de creer des tables temp. a partir de combien (taille de la requete ou nombre d'enregistrement) ?
3/ Comment creer une liste de choix dynamiques (html select) à partir des contenus de la colonne "pays" par exemple donc liste de choix dynamique des "pays" disponibles de la table.
J'espere que je suis clair
merci d'avance,
David
MzaDvid
le 28/08/2004 à 18:50
bibi
1/ Quelle est la taille maxi d'une requete MySQL (genre : SELECT nana WHERE nanana...)
Peut elle faire 50 ou 100 lignes de texte, requete tres complexe, comment savoir en combien de temps elle peut etre calculée ?
oui elle peu faire 50 ou 100 lignes de textes, des requete tres complexe. savoir en combien de temps peut avec le microtime
3/ Comment creer une liste de choix dynamiques (html select) à partir des contenus de la colonne "pays" par exemple donc liste de choix dynamique des "pays" disponibles de la table.
ca c en javascript
commit suicide
3/ Comment creer une liste de choix dynamiques (html select) à partir des contenus de la colonne "pays" par exemple donc liste de choix dynamique des "pays" disponibles de la table.
Ce n'est pas du javascript ca...
// Tu recuperes tous les enregistrements
$sql = "SELECT * FROM matable";
$query = mysql_query($query);
// Tu commences à construire ton select
echo "<select name=\"mon_select\">";
// Tu affiche les options
while($data=mysql_fetch_array($query)){
echo"<option value=\"".$data["id"]."\">".stripslashes($data["pays"])."</option>";
}
// tu finis ton select
echo "</select>";
C'est bien ca que tu voulais ?
2/ Quel est l'Interet de creer des tables temp. a partir de combien (taille de la requete ou nombre d'enregistrement) ?
Je n'ai jamais entendu parler "des tables temp." Je ne comprend dès lors pas la question :-(
3/ Comment creer une liste de choix dynamiques (html select) à partir des contenus de la colonne "pays" par exemple donc liste de choix dynamique des "pays" disponibles de la table.
Et bien le principe est simple, dans la boucle qui récupère les données( ici le nom des pays) tu crée un choix <option> un petit exemple:
<html>
<head>
<title></title>
</head>
<body>
<select id="pays" name="pays">
<?php
$connect = mysql_connect(***,***,***);
mysql_select_db($connect, 'BASE');
$sql = 'SELECT * FROM pays';
$result= mysql_query($sql);
while($row = mysql_fetch_rows($result) )
{
echo '<option value="'. $row['id_du_pays'] .'">'. $row['nom_du_pays'] .'</option>';
}
?>
</select>
</body>
</html>
Bon maintenant, si tu désires en plus de la liste, une seconde liste qui contiendra les différentes villes de chaque pays, tu devras utiliser du javascript (comme la dit Bibi)
M'enfin je ne vois pas trop l'intérêt de faire ça en tout cas pour ma part. Je trouve ça inutile et c'est une perte de temps...
Arf allserver à été plus rapide :-(
Et bien remplacer mysql_fetch_rows par mysql_fetch_array
Et awi allserv pardon
(C'est vraiment pas mon jour :XD)
Merci beaucoup !!
Ok je vois j'essaie !
MzaDvid
Pour mon SELECT dynamique, pour que les pays n'apparaissent qu'une fois ds la liste :
Pour trouver qui possède les animaux, utilisez cette requête :
mysql> SELECT maitre FROM animal;
+--------+
| maitre |
+--------+
| Harold |
| Gwen |
| Harold |
| Benny |
| Diane |
| Gwen |
| Gwen |
| Benny |
| Diane |
+--------+
Toutefois, remarquez que la requête récupère le champ maitre de chaque enregistrement, et certains apparaissent plus d'une fois. Pour minimiser l'affichage, récupérez chaque résultat unique une seule fois en ajoutant le mot-clef DISTINCT :
mysql> SELECT DISTINCT maitre FROM animal;
+--------+
| maitre |
+--------+
| Benny |
| Diane |
| Gwen |
| Harold |
+--------+
MzaDvid
Oui tu peux utiliser DISTINCT pour cela.
Par contre je me permettrai juste une petite remarque :
souvent, lorsque l'on est obliger d'avoir recours a DISTINCT, c'est qu'il y a une erreur de conception de la base de données. Il vaut mieux utiliser une table de liaison à la place. Sur un nombre important d'entrées, DISTINCt peut se révéler très couteux en temps de calcul.
echo ’16i[q]sa[ln0=aln100%Pln100/snlbx]sbA0D4D465452snlbxq’|dc
le 31/08/2004 à 13:20
bibi
je suis pas d'accord avec toi. le DISTINCT c'est pas quand on a une mauvaise conception de la base. Pour son truc avec les chiens, un maitre peut avoir plusieurs chiens. Donc si on référence un chien par NomMaitre NomChien par exemple, bah pour aficher tous les maitres différents, il faudra faire un DISTINCT mais ce n'est pas pour autant que la table est mal concue
commit suicide
Ecrire un message
Votre message vient d'être créé avec succès.
BB-Code
Pour insérer une URL clickable
Pour insérer une adresse E-mail
Pour annoter
Pour écrire du code
Pour faire un lien vers une fonction PHP
Pour écrire du texte préformaté
Pour écrire du texte en gras
Pour écrire du texte en italique
Pour écrire du texte souligné
Pour écrire du texte barré
Pour écrire un titre principal
Pour écrire un titre secondaire
Pour écrire une liste
Smiley
:bond:
:boxe:
:bsmile:
:bump:
:clap:
:coeur:
:cool:
:cry:
:eek:
:evil:
:fleur:
:fou2:
:fou:
:grin:
:grrr:
:hammer:
:hippy:
:hum:
:idee2:
:idee:
:kdo:
:king:
:ko:
:lol:
:love2:
:love:
:mad:
:maitre:
:noel:
:oops:
:raa:
:razz:
:roll:
:sad:
:skull:
:smile:
:timide:
:trink:
:vice:
:vomi:
:wink:
:zzz: