Récupération de données avec une boucle pour 1 ?

Eléphant du PHP | 96 Messages

01 mai 2013, 18:26

Bonjour,

je regarde un peu les scripts d'espace membre tout fait et j'en ai vue 1 qui fait une boucle pour récupérer les infos du membre en bdd.
$session=$_SESSION['pseudo'];

if(!$_SESSION['pseudo']) {

header('Location: error.php?err=6'); exit(); }

$verif=mysql_query("SELECT * FROM membres WHERE pseudo='$session'");
$verif1=mysql_num_rows($verif);
if($verif1 == 0) {

session_unset();
session_destroy();

header('Location: error.php?err=5'); exit(); }

while ($resultat = mysql_fetch_array($verif) )

{

$email = $resultat['email'];
$points_jeux = $resultat['points_jeux'];
$id = $resultat['id'];

}

mysql_free_result($verif);

?>
Alors ce bout de code est appelé sur chaque page via un require_once.

Mais pourquoi une boucle while est présente alors que le script ne prend que les infos d'une seule personne ? Est-ce normal ou ce code à un sérieux problème d'optimisation et est très lourd inutilement ?

A la base, ce script à été pour un site qui utilise beaucoup d'update (site de jeux), voilà pourquoi ce code est présent sur chaque page (via require) pour mettre à jour les données régulièrement.

Mais quid du while ?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

01 mai 2013, 21:15

salut,

il n'y a pas vraiment de problème de perf vue qu'il ne devrait y avoir un seul "tour" de while.
tu peux bien sur le supprimer cela ne devrait pas être génant.

si tu veux un code plus moderne, remplace l'utilisation de l'extension mysql par l'extension mysqli.

tu peux revoir l'organisation du code pour être plus simple, mais globalement il semble foncitonnel et relativement correct (la requete devrait être faire une clef primaire numérique si tu souhaite vraiment optimiser la chose).

@+
Il en faut peu pour être heureux ......