> Tous les forumsForum des Webmasters

 Problème Mysql + LienSujet résolu
Statut du sujet : RESOLU Imprimer
 killermano66
  Posté le 15/01/2008 @ 14:13  
 Petit astucien

12 Messages

Bonjour,

Voilà, je suis en train de coder une page qui me permettra entre autre d'afficher une liste d'article ( sous formes de liens ) par ordre alphabétique.

Donc ma table comporte 4 champ (id, nom, redacteur, contenu). Celle-ci est aussi complté,de ce coté là je n'ai pas de soucis.

Donc lorsque je tente d'afficher le nom de mes articles par ordre alphabétique, sans y inclure de lien ça fonctionne, mais ça ne me sert pas a grand chose.

Pour insérer les liens dans ma table, j'ai tout d'abord tenter de mettre dans mon champ nom le nom de l'article sous forme de lien comme ceci :
<a href ="www.bimbamboom.com">Nom de l'article</a>
Le problème c'est que j'ai l'impression que mysql prend en compte les caractères de ma balise HTML ce qui me désorganise le tout. Je n'ai donc plus mes articles par ordre alphabétique lorsque je fais ça.

http://www.rpg-z.com/mysql_killer/articles/articles_alphabetique.php

Donc j'ai pensé a une autre solution, qui serait de créer un autre champ qui contindrait le lien de mes articles : www.bimbamboom.com par exemple. Mon problème réside dans comment inclure ce lien et je penses que je le fait d'une mauvaise façon :

<?php
//Affichage de la liste des articles de notre base de donnée par ordre alphabétique
$affiche = mysql_query ("SELECT nom FROM articles ORDER BY nom") or die ((mysql_error));
while ($donnees = mysql_fetch_array ($affiche))
{
?>
<a href = <?php $donnees['lien']; ?>><?php $donnees['nom']; ?></a>

<?php
echo '<br />';
}
mysql_close();
?>

ce qui me donne :
http://www.rpg-z.com/mysql_killer/articles/articles_alphabetique2.php
En clair pas grand chose d'intéréssant vu que plus rien ne s'affiche.

Je vous laisse ici le code complet de ma première page :
<?php
mysql_connect ("", "", ""); // Connection au serveur Mysql
mysql_select_db ("hawke1"); //Selection de la base de donné


//nombre d'articles dans la base de donnée
$retour = mysql_query("SELECT COUNT(*) AS nbre_entrees FROM articles");
$donnees = mysql_fetch_array($retour);
?>
<strong>Liste des articles :</strong><br />
<i>Il y a actuellement</i> &nbsp; <?php echo $donnees['nbre_entrees']; ?>
&nbsp; <i>articles dans notre base de donnée</i><br /><br />

<?php
//Affichage de la liste des articles de notre base de donnée par ordre alphabétique
$affiche = mysql_query ("SELECT nom FROM articles ORDER BY nom") or die ((mysql_error));
while ($donnees = mysql_fetch_array ($affiche))
{

echo $donnees['nom'];
echo '<br />';
}
mysql_close();?>

Et celui de la deuxieme page :
<?php
mysql_connect ("", "", ""); // Connection au serveur Mysql
mysql_select_db ("hawke1"); //Selection de la base de donné


//nombre d'articles dans la base de donnée
$retour = mysql_query("SELECT COUNT(*) AS nbre_entrees FROM articles");
$donnees = mysql_fetch_array($retour);
?>
<strong>Liste des articles :</strong><br />
<i>Il y a actuellement</i> &nbsp; <?php echo $donnees['nbre_entrees']; ?>
&nbsp; <i>articles dans notre base de donnée</i><br /><br />

<?php
//Affichage de la liste des articles de notre base de donnée par ordre alphabétique
$affiche = mysql_query ("SELECT nom FROM articles ORDER BY nom") or die ((mysql_error));
while ($donnees = mysql_fetch_array ($affiche))
{
?>
<a href = <?php $donnees['lien']; ?>><?php $donnees['nom']; ?></a>

<?php
echo '<br />';
}
mysql_close();
?>

Voila en espérant avoir était a peu prés clair. Merci de votre attention et de vos j'espères futures réponses ;)

Killermano

 Afficher le profil de killermano66Envoyer un message privé à killermano66
 
 
Publicité
 tirikou  Posté le 15/01/2008 à 14:59  
Astucien


1027 Messages

Bonjour,

Je crois que l'écriture du lien se fait plutot ainsi :

<a href = "<?php echo $donnees['lien']; ?>" ><?php echo $donnees['nom']; ?></a>

Il te manquerait le echo et des doubles quotes dans le href.

Afficher le profil de tirikouEnvoyer un message privé à tirikou
 Revenir en haut de la page
 tirikou  Posté le 15/01/2008 à 15:03  
Astucien


1027 Messages

Autre chose,

dans ta requete tu ne selectionnes que le champs nom alors que tu demandes le champs lien aussi.

Tu devrais sans doute faire SELECT nom, lien ORDER BY nom.

Afficher le profil de tirikouEnvoyer un message privé à tirikou
 Revenir en haut de la page
 killermano66  Posté le 15/01/2008 à 15:36  
Petit astucien

12 Messages
Merci à vous deux pour vos réponses, j'ai un peu honte de mes oublis sur le coup. Merci encore ;)
Afficher le profil de killermano66Envoyer un message privé à killermano66
 Revenir en haut de la page
 killermano66  Posté le 15/01/2008 à 19:14  
Petit astucien

12 Messages

Bon, je viens de tester, mon problème persiste, les articles ne sont toujours pas ordonnés par ordre alphabétique :

http://www.rpg-z.com/mysql_killer/articles/articles_alphabetique2.php#

Mon code actuel :

  1. <?php
  2. mysql_connect ("", "", ""); // Connection au serveur Mysql
  3. mysql_select_db ("hawke1"); //Selection de la base de donné
  4. //nombre d'articles dans la base de donnée
  5. $retour = mysql_query("SELECT COUNT(*) AS nbre_entrees FROM articles");
  6. $donnees = mysql_fetch_array($retour);
  7. ?>
  8. <strong>Liste des articles :</strong><br />
  9. <i>Il y a actuellement</i> &nbsp; <?php echo $donnees['nbre_entrees']; ?>
  10. &nbsp; <i>articles dans notre base de donnée</i><br /><br />
  11. <?php
  12. //Affichage de la liste des articles de notre base de donnée par ordre alphabétique
  13. $affiche = mysql_query ("SELECT nom, lien FROM articles ORDER BY nom") or die ((mysql_error));
  14. while ($donnees = mysql_fetch_array ($affiche))
  15. {
  16. ?>
  17. <a href = "<?php echo $donnees['lien']; ?>" ><?php echo $donnees['nom']; ?></a>
  18. <?php
  19. echo '<br />';
  20. }
  21. ?>

Voilà, là je vois vraiment plus de solution, je suis comme on dirait totalement bloqué. Si quelqu'un voit mon problème ... En tout cas merci à vous ;)



Modifié par killermano66 le 15/01/2008 19:22
Afficher le profil de killermano66Envoyer un message privé à killermano66
 Revenir en haut de la page
 tirikou  Posté le 15/01/2008 à 19:23  
Astucien


1027 Messages
Ton champs nom est de quel type dans ta bdd ? VACHARD ? Text ?
Afficher le profil de tirikouEnvoyer un message privé à tirikou
 Revenir en haut de la page
 killermano66  Posté le 15/01/2008 à 19:30  
Petit astucien

12 Messages

Il est de type Varchard j'ai imité le nombre de caractère a 150.

Mais si je le met en TEXT ca me donne le même résultat.



Modifié par killermano66 le 15/01/2008 19:32
Afficher le profil de killermano66Envoyer un message privé à killermano66
 Revenir en haut de la page
 tirikou  Posté le 15/01/2008 à 19:39  
Astucien


1027 Messages

Je me demande dans quelle mesure mysql est à même de trier dans l'ordre alphabétique la chaine de caractères qui est contenue dans ce champs. Ne peux tu pas ajouter un champ avec un nom simple pour définir ton article ? Et trier sur ce champs.

Cela me semble plus sûr.

Afficher le profil de tirikouEnvoyer un message privé à tirikou
 Revenir en haut de la page
 killermano66  Posté le 15/01/2008 à 19:43  
Petit astucien

12 Messages

Ben si Mysql le fait normalement :

$affiche = mysql_query ("SELECT nom, lien FROM articles ORDER BY nom")

ORDER by nom demande a mysql de trier le champ nom par ordre alphabétique.

Maintenant utiliser un autre champ pour faire ça, je vois pas trop comment vu que je veux que ce soit les tître de mes articles qui soient triés par ordre alphabétique donc forcément le champ qui l'ai contient ( le champ nom ). A moins bien sur que quelque chose m'échape, ce qui est trés loin d'être impossible. En tout cas merci de vos explications.

Afficher le profil de killermano66Envoyer un message privé à killermano66
 Revenir en haut de la page
 tirikou  Posté le 15/01/2008 à 23:33  
Astucien


1027 Messages

Je viens d'essayer de faire un tri dans ma bdd sur un champ text qui contient un long texte.

Même problème que toi, il ne me les met pas dans l'ordre alphabétique.

Même en Vachard ça ne fonctionne pas.

Si tu mettais un champ avec juste le premier mot de ton champ nom. Tu pourrais trier dessus et n'afficher que les champs liens et nom.

Vois pas le problème.

Afficher le profil de tirikouEnvoyer un message privé à tirikou
 Revenir en haut de la page
 Malcolm  Posté le 16/01/2008 à 09:31  
  Astucien


7307 Messages

ça dépend ce que vous appelez "alphabétique" ...

Il faut savoir que les catactères (que ça soit en VARCHAR ou TEXT, peu importe : VARCHAR est limité à 255 caractères maxi, TEXT à 65 535) sont triés par ordre ASCII, en ASCII le "A" est le n°32 et le "a" est le n° 65 : "andré" arrivera donc après "Bernard" selon cette logique.

Concernant les caractères spéciaux, le "é" n'est pas à côté du "e", c'est valable pour toutes les lettres accentuées. L'espace est avant le "A".

Il faudrait donner un exemple de valeurs pour lesquelles tu tentes d'effectuer le tri ...

Et tu peux spécifier, dans la clause "ORDER BY", plusieurs champs : ORDER BY nom ASC, url DESC : les résultats seront triés d'abord par nom, en ordre alphabétique et à chaque "étage" du tri des noms, les url seront affichées par ordre alphabétique inverse dans mon exemple.

Afficher le profil de Malcolm Voir la configuration de MalcolmEnvoyer un message privé à Malcolm
  Revenir en haut de la page
 killermano66  Posté le 16/01/2008 à 12:25  
Petit astucien

12 Messages

J'ai résolu le problème yier soir, il y avait simplement une erreur dans une de mes entrée de ma table qui foutait le bordel.

Donc dans mon cas Mysql gère trés bien le classement par ordre alphabétique même de longues phrases ( enfin apparement il se peut que certains problèmes surviennent dans le futur. On saît jamais ).

En tout cas merci à vous pour votre aide et vos conseil ;)

Afficher le profil de killermano66Envoyer un message privé à killermano66
 Revenir en haut de la page
Haut de la page 
Inscrivez-vous !
- Posez vos questions

- Résolvez vos problèmes

- Aidez les autres

- Participez et créez vos discussions

- Dialoguez en privé avec d'autres membres

- Suivez vos sujets préférés

- Affichez les signatures des membres

TOUT EST GRATUIT !

Je crée mon compte




Vous avez besoin d'aide ?
Des centaines d'experts sont à votre disposition sur les forums PC Astuces pour vous aider gratuitement, 24h/24, 7j/7.

Les derniers sujets résolus !
 

 > Tous les forumsForum des Webmasters

 
Forum PC Astuces© 1997-2008 WebastucesAller en haut de la page