Flux rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

Probleme de tri PHP/MYSQL

Ricky38, le dimanche 30 mars 2008 à 21:59:50
Bonjour,

j'ai fait un formulaire de recherche sur mon site, tout fonctionne bien la seule chose j'aimerais bien faire afficher le résultat en ordre alphabétique de ma colonne latin par exemple.

J'ai essayer de plusieurs manières mais ça ne fonctionne pas, j'espère que vous pourrez m'aider.

voici mon code pour rechercher dans ma base de données :
<?php
  include('connexion.php');

  echo $date;


    $h = $_POST['name'];
    echo "<BR>\n";

    echo $row['date']; 
    echo "<BR>\n";
    $SQL = "SELECT * FROM bois WHERE latin LIKE '%$h%' OR francais LIKE '%$h%' OR anglais LIKE '%$h%' OR pays_fr LIKE '%$h%' OR pays_ang LIKE '%$h%' OR cont_fr LIKE '%$h%' OR cont_ang LIKE '%$h%'";
    $result = mysql_query($SQL) or die("La requête <BR><PRE>$SQL</PRE>a échoué : ".mysql_error());
    $article =mysql_fetch_object($result);
    $result = mysql_query($SQL) ;
	$enregistrements = mysql_num_rows($result);
    //j'ai defini une variable $i pour afficher 5 enregistremnt par ligne
    echo "<TABLE border =\"0\" width=\"100%\" CELLPADDING=\"0\" cellspacing=\"0\">";
echo "$enregistrements enregistrements ont été trouvés pour <EM>$h</EM>.\n";
echo "<BR>\n";
echo "Cliquez sur l'image pour voir la page des détails\n";
//initialiser la variable $i a 0
   $i=0;
   while($row = mysql_fetch_row($result))
      {
$id = $row['0'];
$photo = $row['6'];
$latin = $row['3'];
$francais = $row['4'];	
$anglais = $row['5'];
$pays = $row['8'];  
    if ($i==0)
     {
  echo "<TR>";
  }

//on incremente la variable
  $i=$i+1;
?>
</center>
<p>
<p>
<p>
<center>
  <table align="center" width="852" border="1" cellpadding="0">
    <tr>
    <td width="52" valign="middle"><form method="post" action="../../bois.php">
              <input type="image" border="0" value="Submit" src="<?php echo "$photo"; ?>" width="55" height="34" name="img" border="0">
              <input type="hidden" name="img" value="<?php echo "$id"; ?>">
      </form></td>
    <td width="200" valign="middle"><span class="style1"><?php echo "$latin"; ?></span></td>
    <td width="200" valign="middle"><span class="style5"><?php echo "$francais"; ?></span></td>
    <td width="200" valign="middle"><span class="style5"><?php echo "$anglais"; ?></span></td>
    <td width="200" valign="middle"><span class="style5"><?php echo "$pays"; ?></span></td>
  </tr>
</table>
</center>
 <?php
  if ($i==5)
  {
  echo "</TR>";
  $i=0;
  }
   }
 echo"</table>";  
 ?>


Merci d'avance pour votre aide.
Configuration: Windows XP
Firefox 2.0.0.13
Répondre à Ricky38  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Le D, le dimanche 30 mars 2008 à 23:09:43
Bonjour,

Pourquoi ne pas faire un order by "votre champs à trié" ASC dans la requête SQL ?

Ainsi le résultat de ta requête sera trié dans l'ordre alphabétique.


par exemple :


$SQL = "SELECT * FROM bois WHERE latin LIKE '%$h%' OR francais LIKE '%$h%' OR anglais LIKE '%$h%' OR pays_fr LIKE '%$h%' OR pays_ang LIKE '%$h%' OR cont_fr LIKE '%$h%' OR cont_ang LIKE '%$h%' ORDER BY latin ASC";

1+
Répondre à Le D

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Ricky38, le dimanche 30 mars 2008 à 23:43:44
merci a vous deux Le D et chantaussel

Oui de cette façon ça fonctionne

Mais je me demandais si je pouvais le faire autrement. Je m'explique et j'essaie d'être clair. Ma formule dit
cher dans la table bois où latin contient la recherche OU si francais contient la recherche et ainsi de suite

quand je mets un ORDER BY latin à la fin et bien tout les résultats sont affichée et les noms latins en ordre

ex si je recherche un nom latimn j'aimerais que les noms latins soient en ordre
et si je recherche un nom francais que les noms francais soient en ordre dans le résultat
et ainsi de suite.

j'ai essayé ceci mais avec erreur :
$SQL = "SELECT * FROM bois WHERE latin LIKE '%$h%' ORDER BY latin ASC OR francais LIKE '%$h%' ORDER BY francais ASC OR anglais LIKE '%$h%' ORDER BY anglais ASC OR pays_fr LIKE '%$h%' ORDER BY pays_fr ASC OR pays_ang LIKE '%$h%' ORDER BY pays_ang ASC OR cont_fr LIKE '%$h%' ORDER BY cont_fr ASC OR cont_ang LIKE '%$h%' ORDER BY cont_ang ASC";
Répondre à Ricky38

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
chantaussel, le dimanche 30 mars 2008 à 23:12:43
Il te suffit de rajouter un ORDER BY à la fin de ta sélection :

$SQL = "SELECT * FROM bois WHERE latin LIKE '%$h%' OR francais LIKE '%$h%' OR anglais LIKE '%$h%' OR pays_fr LIKE '%$h%' OR pays_ang LIKE '%$h%' OR cont_fr LIKE '%$h%' OR cont_ang LIKE '%$h%' ORDER BY latin";


Je pense que ça devrait le faire!

Bon courage! ;)

edit : Le D a été plus rapide! Quelques bases en javascript, débute en php/mySQL
J'essaie de mettre en ligne mon arbre généalogique.
Répondre à chantaussel

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Le D, le dimanche 30 mars 2008 à 23:17:22
Désolé ^^
Répondre à Le D

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
chantaussel, le dimanche 30 mars 2008 à 23:52:30
Je ne comprends pas vraiment ce que tu veux faire car j'ai du mal à visualiser ce qu'il y a dans ta bdd. Dis-nous un peu plus précisément comment elle est structurée (les différents champs et les entrées) Quelques bases en javascript, débute en php/mySQL
J'essaie de mettre en ligne mon arbre généalogique.
Répondre à chantaussel

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Ricky38, le lundi 31 mars 2008 à 00:00:02
ok alors ma dase de données contient :


ID
les noms latins
les noms francais
les noms anglais
les pays anglais et francais
les continents anglais et francais
etc...

en gros c'est un inventaire d'essences de bois, sa provenance, son nom francais, son nom latin, son nom anglais, son continent et son pays.

si je tape dans la recherche le mot érable il me sort toute les entrées qui contient érable.

ce que j'aimerais :

si je tape érable et bien le résultat s'affiche et tous les noms francais sont en ordre
si je tape maple le résultat s'affiche et toules noms anglais sont en ordre
Répondre à Ricky38

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 chantaussel, le lundi 31 mars 2008 à 00:21:52
Ok, je comprends... Mais la solution ne me vient pas tout de suite...

Il faudrait trouver un moyen qu'il te ressorte le nom du champ dans lequel il a trouvé la chaine de caractères en question, stocker le nom du champ dans une variable, puis se resservir de cette variable dans le ORDER BY. Ça doit être possible mais je sais pas trop comment!

Ya un problème qui me vient tout de suite : qu'est ce qui se passe si des noms d'essence se disent de la même façon dans plusieurs langues?

Et ce serait pas possible qu'au moment où tu tapes "érable" tu lui dise que c'est du français? Ça simplifierait grandement les choses!

J'y réfléchis et si je trouve quelque chose je t'en fais part! Quelques bases en javascript, débute en php/mySQL
J'essaie de mettre en ligne mon arbre généalogique.
Répondre à chantaussel
[PHP/MYSQL]recupération de données... (Résolu)bonjour, je fais un site en php/mysql j'ai créé un formulaire où j'ai une liste déroulante comportant mes utilisateurs et une zone texte correspondant au service auquel appartient c utilisateurs. lorsque je choisis un utilisateur,... www.commentcamarche.net/forum/affich-1294314-php-mysql-recuperation-de-donnees
Apache php mysql help help help (Résolu)bonjour j essaie d installer apache php mysql tout va bien juske la en tar gz tout roule je teste mon serveur apache , la page d accueil s affiche ok c en html . Donc mon serveur c lire le html , g installé php mysql avec apache pour que tout... www.commentcamarche.net/forum/affich-1296475-apache-php-mysql-help-help-help
PHP/MySQL:script pour site d'annonces,.... (Résolu)salut, j'ai des connaissances de base en PHP/MYsql. Pour les besoins d'un site d'annonces, je cherche un script qui permet de rentrer une annonce dans une catégorie, de l'afficher, de la confirmer et ensuite de la publier dans la... www.commentcamarche.net/forum/affich-2679335-php-mysql-script-pour-site-d-annonces
Installation rapide de LAMP (Apache+MySql+php) sous LinuxLAMP = Linux+Apache+MySql+Php. C'est le serveur web par excellence. L'ensemble est facile à installer. Installation rapide sudo aptitude install apache2 php5 mysql-server php5-mysql libapache2-mod-php5 Le mot de passe administrateur mySQL... www.commentcamarche.net/faq/sujet-7971-installation-rapide-de-lamp-apache-mysql-php-sous-linux
[Installation APACHE PHP MYSQL] (Résolu)Bonjour à tous, je suis sur une fedora core3 avec apache 1.3.33, php 5.0.3, mysql 4.0.23 Me voici avec un probleme, j'ai installé les sources d'Apache+PHP+MySQL sans probleme, pour que phpmyadmin puisse fonctionner j'ai voulu changer la... www.commentcamarche.net/forum/affich-1345080-installation-apache-php-mysql
Dreamweaver-php-mysql.... (Résolu)slt! je recherche des tutoriels ou des bons liens concernant la relation dreamweaver-php-mysql.... où trouver ça? merci!! www.commentcamarche.net/forum/affich-1265588-dreamweaver-php-mysql
Besoin d'Info PHP/MYSQL pour album photos (Résolu)Bonjour à tous, Je suis débutant en PHP/MYSQL- et j'aimerais avoir un conseil, vu que je n'ai pas trouver sur le net. Je doit faire l'étude d'un site sous PHP/MYSQL, et mettre plusieurs albums photos sur un serveur. (photo 30ko –... www.commentcamarche.net/forum/affich-575713-besoin-d-info-php-mysql-pour-album-photos
Toutes les réponses pour « probleme de tri PHP/MYSQL »