MySQL limite d'une requete

Répondre
MzDavid
le 28/08/2004 à 17:10
MzDavid
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
bibi
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
allserv
le 28/08/2004 à 20:40
allserv
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 ?
Sedilbur
le 28/08/2004 à 20:45
Sedilbur

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...
Sedilbur
le 28/08/2004 à 20:52
Sedilbur
Et bien remplacer mysql_fetch_rows par mysql_fetch_array
Et awi allserv pardon
(C'est vraiment pas mon jour :XD)
MzDavid
le 31/08/2004 à 10:12
MzDavid
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
mojorisin
le 31/08/2004 à 10:18
mojorisin
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
bibi
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
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours