par
Hubert Roksor » 24 janv. 2007, 03:03
Généralement, la politique de PHPFrance est d'éviter d'écrire les scripts à la place des utilisateurs mais plutôt de donner des indications pour que chacun résolve ses propres problème. Néanmoins un court exemple peut parfois être plus efficace qu'un long discours alors on fera une exception pour cette fois.
Voici à quoi devrait ressembler ton script ($db est bien entendu la connexion à la base). Clique sur le nom des fonctions pour plus d'infos, et s'il te reste des interrogations n'hésite pas à poster.
$sql = 'SELECT url, nom, style
FROM liens
ORDER BY style DESC';
$result = mysql_query($sql, $db);
if (!$result)
{
die('Erreur MySQL : ' . mysql_error($db));
}
$style = '';
while ($row = mysql_fetch_assoc($result))
{
if ($row['style'] != $style)
{
$style = str_pad($row['style'], 20, '-', STR_PAD_BOTH);
echo '<h5>', utf8_encode($style), '</h5>';
}
echo '<h6><a href="', $row['url'], '" target="_blank">', utf8_encode($row['nom']), '</a></h6>';
}
mysql_free_result($result);
Quelques notes :
- tu remarqueras que la requête SQL est sur plusieurs lignes pour une meilleure lisibilité
- les noms des champs sont dans le même ordre que dans la base, ça permet de remarquer certaines erreurs plus facilement donc c'est une bonne habitude à prendre
- à toi d'implémenter le système que tu préfère pour agencer les styles dans l'ordre que tu préfères (un champs numérique "ordre_style" par exemple)
- il faudrait vérifier ça, mais normalement utf8_encode() ne devrait pas être nécessaire. Essaie d'exécuter la requête suivante en début de script et retire utf8_encode() pour voir si ça change les caractères accentués:
Généralement, la politique de PHPFrance est d'éviter d'écrire les scripts à la place des utilisateurs mais plutôt de donner des indications pour que chacun résolve ses propres problème. Néanmoins un court exemple peut parfois être plus efficace qu'un long discours alors on fera une exception pour cette fois.
Voici à quoi devrait ressembler ton script ($db est bien entendu la connexion à la base). Clique sur le nom des fonctions pour plus d'infos, et s'il te reste des interrogations n'hésite pas à poster.
[php]$sql = 'SELECT url, nom, style
FROM liens
ORDER BY style DESC';
$result = mysql_query($sql, $db);
if (!$result)
{
die('Erreur MySQL : ' . mysql_error($db));
}
$style = '';
while ($row = mysql_fetch_assoc($result))
{
if ($row['style'] != $style)
{
$style = str_pad($row['style'], 20, '-', STR_PAD_BOTH);
echo '<h5>', utf8_encode($style), '</h5>';
}
echo '<h6><a href="', $row['url'], '" target="_blank">', utf8_encode($row['nom']), '</a></h6>';
}
mysql_free_result($result);[/php]
Quelques notes :
[list][*]tu remarqueras que la requête SQL est sur plusieurs lignes pour une meilleure lisibilité
[*]les noms des champs sont dans le même ordre que dans la base, ça permet de remarquer certaines erreurs plus facilement donc c'est une bonne habitude à prendre
[*]à toi d'implémenter le système que tu préfère pour agencer les styles dans l'ordre que tu préfères (un champs numérique "ordre_style" par exemple)
[*]il faudrait vérifier ça, mais normalement utf8_encode() ne devrait pas être nécessaire. Essaie d'exécuter la requête suivante en début de script et retire utf8_encode() pour voir si ça change les caractères accentués:
[code]SET NAMES 'utf8'[/code][/list]