par
Hubert Roksor » 09 déc. 2007, 15:58
Bien sûr il n'y a pas de différence entre les requêtes, elles sont identiques; ce dont tu parles est la manière de les traiter. (le terme précis serait "requêtage")
La meilleure façon de faire devrait ressembler à
$sql = 'SELECT * FROM config';
$result = mysql_query($sql);
if (!$result)
{
trigger_error('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
exit;
}
while ($row = mysql_fetch_assoc($result))
{
}
Premièrement, je déconseille fortement l'utilisation de "or die()" pour plusieurs raisons : ça crée des lignes trop longues où il est facile de se tromper (la preuve étant que tu t'es trompé de nom de variable). De plus, "die" ne donne aucune indication sur le script ou la ligne qui l'a invoqué. Je recommande d'utiliser un vrai "if" qui permet d'exécuter plusieurs commandes et est plus lisible, combiné à trigger_error() pour afficher le script et le numéro de ligne. Sous PHP5 tu peux choisir de générer une exception à la place.
mysql_query() renvoit une ressource représentant le résultat, c'est pour cela que son contenu est stocké dans une variable dont le nom est
$result. mysql_fetch_assoc() renvoit une ligne de résultat, d'où
$row.
Je déconseille d'utiliser un nom différent à chaque invocation de $sql ou $result, ça n'a aucun intérêt, cela retarde la destruction du résultat (donc on utilise plus de mémoire) et ça favorise les erreurs de variables.
Bien sûr il n'y a pas de différence entre les requêtes, elles sont identiques; ce dont tu parles est la manière de les traiter. (le terme précis serait "requêtage")
La meilleure façon de faire devrait ressembler à
[php]$sql = 'SELECT * FROM config';
$result = mysql_query($sql);
if (!$result)
{
trigger_error('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
exit;
}
while ($row = mysql_fetch_assoc($result))
{
}[/php]
Premièrement, je déconseille fortement l'utilisation de "or die()" pour plusieurs raisons : ça crée des lignes trop longues où il est facile de se tromper (la preuve étant que tu t'es trompé de nom de variable). De plus, "die" ne donne aucune indication sur le script ou la ligne qui l'a invoqué. Je recommande d'utiliser un vrai "if" qui permet d'exécuter plusieurs commandes et est plus lisible, combiné à trigger_error() pour afficher le script et le numéro de ligne. Sous PHP5 tu peux choisir de générer une exception à la place.
mysql_query() renvoit une ressource représentant le résultat, c'est pour cela que son contenu est stocké dans une variable dont le nom est [b]$result[/b]. mysql_fetch_assoc() renvoit une ligne de résultat, d'où [b]$row[/b].
Je déconseille d'utiliser un nom différent à chaque invocation de $sql ou $result, ça n'a aucun intérêt, cela retarde la destruction du résultat (donc on utilise plus de mémoire) et ça favorise les erreurs de variables.