optimiser mes requêtes

Eléphant du PHP | 206 Messages

10 avr. 2007, 22:50

Bonjour tout le monde !

Je travaille actuellement sur mon projet de gestion d'une équipe de basket, et je me suis planché aujourd'hui sur la création des joueurs lors de l'inscription.
Donc quand l'utilisateur s'inscrit il se trouve avec 9 joueurs.
Voici comment j'ai fait sur la page d'inscription. Mais le problème est le nombre de requêtes !
Je pense qu'il doit y avoir plus simple.

Merci d'avance de votre aide
//On éxécute la requête qui enregistre un nouveau membre.
mysql_query("INSERT INTO membres (pseudo, mot_de_passe, confirmation, email, confirmation_code, inscrit, derniere_visite) VALUES ('".$pseudo."', '".$mot_de_passe."', '0', '".$email."', '".$code_confirmation."', '".$temps."', '".$temps."')");
													
// Création de l'équipe
$retour = mysql_query("SELECT id FROM membres WHERE pseudo ='".$pseudo."'");
$donnees = mysql_fetch_array($retour);
mysql_query("INSERT INTO equipes (id_membre, nom,nom_stade) VALUES ('".$donnees['id']."', '".$equipe."', '".$nom_stade."')");

//Création des joueurs
$prenom0 = array ("Roger ", "Albert ", "Marcel ", "Florian ", "Antoine ", "Sébastien ", "Jean-Paul ", "Morgan ", "Laurent ", "Simon ", "Nathan ", "Jules ", "Anthony ", "Alexis ", "Léo ", "Quentin ", "Alexandre ", "Clément ", "Romain ", "Bertrand ");

$nom0 = array ("Lucas", "Théo", "Valentin", "Philippe", "Enzo", "Maxime", "Mathis", "Moison", "Corentin", "Martin", "Rémi", "Evan", "Bastien", "Mohamed", "Guillaume", "Samuel", "Dorian", "Dylan", "Axel", "Baptiste");

													
while ($nombre_de_joueurs <= 9)
{
// prénom - nom
$numero_nom = mt_rand(0,19);
$numero_nom2 = mt_rand(0,19);
$prenom = $prenom0[$numero_nom]; 
$nom = $nom0[$numero_nom2];
													
//caractéristiques
$taille = mt_rand(150,235);
$tir = mt_rand(0,55);
$dribble = mt_rand(0,55);
$passe = mt_rand(0,55);
$rebond = mt_rand(0,55);
$contre = mt_rand(0,55);
$interception = mt_rand(0,55);
mysql_query("INSERT INTO joueurs (id_membre, nom, prenom, taille, tir, dribble, passe, rebond, contre, interception) 
VALUES ('".$donnees['id']."', '".$prenom."', '".$nom."', '".$taille."', '".$tir."', '".$dribble."', '".$passe."', '".$rebond."', '".$contre."', '".$interception."')");

$nombre_de_joueurs++;

}
Modifié en dernier par Snipy le 10 avr. 2007, 23:37, modifié 4 fois.

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

10 avr. 2007, 23:15

Si tu optimisais déjà l'affichage de ton code ? Histoire qu'on ait pas trop à scroller sur la droite...

Merci bien :)

Edit : bon vu que tu veux insérer 9 lignes, je ne vois pas trop comment tu peux optimiser... il te faut 9 INSERT, ou alors étudier un INSERT multiple. Mais bon, le gain de temps ne sera pas forcément faramineux, à tester.

http://dev.mysql.com/doc/refman/5.0/fr/insert.html

Eléphant du PHP | 206 Messages

11 avr. 2007, 13:45

Et au niveau des mt_rand, ça ne risque pas lorsqu'on en additionne un nombre conséquent de ralentir significativement le chargement de la page ?
Car ici ça ne posera pas de problème, mais je compte l'utiliser fréquemment pour aoir des résultats aléatoires.