[PHP-MySQL] - Tri de requètes...
Kristof
-
Danila -
Danila -
Bonjourà tous !!
Voilà, je suis en train de programmer un WebZine en PHP avec BdD MySql, et j'ai une sacrée liste de chroniques, je propose donc les groupes dans l'ordre alphabétique sur mon site.
Pas de problème jusque là, je fait une requète par lettre, par exemple "A%" pour le A, etc... J'affiche donc page par page les chroniques des groupes qui commencent par A, B, etc.
Mon souci, c'est que certains groupes qui se croient + malins que les autres ont un nom qui est... un nombre (ou qui commence par un nombre)...
Ce qui se fait le + souvent, quand on dresse une liste alphabétique, c'est qu'on met un # pour signifier 'les groupes dont le nom commence par un nombre'.
Voilà mon soucis : comment aller chercher dans la table les groupes qui commencent par un nombre ??
Si qqu'un a la solution, je le remercie par avance !!
merci !!
Voilà, je suis en train de programmer un WebZine en PHP avec BdD MySql, et j'ai une sacrée liste de chroniques, je propose donc les groupes dans l'ordre alphabétique sur mon site.
Pas de problème jusque là, je fait une requète par lettre, par exemple "A%" pour le A, etc... J'affiche donc page par page les chroniques des groupes qui commencent par A, B, etc.
Mon souci, c'est que certains groupes qui se croient + malins que les autres ont un nom qui est... un nombre (ou qui commence par un nombre)...
Ce qui se fait le + souvent, quand on dresse une liste alphabétique, c'est qu'on met un # pour signifier 'les groupes dont le nom commence par un nombre'.
Voilà mon soucis : comment aller chercher dans la table les groupes qui commencent par un nombre ??
Si qqu'un a la solution, je le remercie par avance !!
merci !!
A voir également:
- [PHP-MySQL] - Tri de requètes...
- Comment faire un tri personnalisé sur excel - Guide
- Logiciel tri photo - Guide
- Easy php - Télécharger - Divers Web & Internet
- Mysql community download - Télécharger - Bases de données
- Expert php pinterest - Télécharger - Langages
4 réponses
Salut, et merci pour ta réponse...
En fait mon problème s'est résolu de lui même, un peu au hasard, et je dois bien avouer que je ne sais toujours pas comment, mais bon ça marche !!!
voilà mon code :
En fait mon problème s'est résolu de lui même, un peu au hasard, et je dois bien avouer que je ne sais toujours pas comment, mais bon ça marche !!!
voilà mon code :
if (isset ($auteur_chron))
{
$auteur_lien = "&auteur_chron=".$auteur_chron ;
$tri_par_auteur = "AND `auteur` LIKE CONVERT( _utf8 '".$auteur_chron."'USING latin1 ) COLLATE latin1_swedish_ci" ;
}
else
{
$auteur_lien ="" ;
$tri_par_auteur="";
}
$alpha = range("A","Z") ;
foreach ($alpha as $alettre)
{
echo "<a href='echo.php?page=chroniques&page_chron=toutes".$auteur_lien."&lettre=".$alettre."'>".$alettre."</a> - " ;
}
echo "<a href='echo.php?page=chroniques&page_chron=toutes".$auteur_lien."&lettre=0'>#</a>" ;
if (isset ($lettre))
{
if($lettre == "0")
{
$sql = "SELECT * FROM `critiques` WHERE `groupe` ".$tri_par_auteur." ORDER BY `groupe` ASC " ;
$result = mysql_query($sql,$connect) ;
}
else
{
$sql = "SELECT * FROM `critiques` WHERE `groupe` LIKE CONVERT(_utf8 '".$lettre."%' USING latin1) COLLATE latin1_swedish_ci ".$tri_par_auteur." ORDER BY `groupe` ASC " ;
$result = mysql_query($sql,$connect) ;
}
while($row = mysql_fetch_array($result))
{
list($groupe,$titre,$label,$critique,$auteur,$date_chron,$id,$lien) = $row ;
$groupe = strtoupper ($groupe) ;
$auteur = ucwords($auteur) ;
$critique = nl2br($critique) ;
echo "<div class='cadre_forum'><span class = 'groupes_chroniques'>".$groupe."</span> ".$titre." <span class='reponses'>".$label."</span></div>
<div class='texte_forum'>".$critique." <a href = 'http://".$lien."' target='_blank'>".$lien."</a><br>
<span class='auteur'>".$auteur."</span></div>" ;
}
}
salut j'ai un ptit soucis j'ai aussi un table a tier j utilise ORDER BY mais ça ne marche pas.
<?
//AFFICHAGE:Display
// appel du serveur
$id = mysql_connect($server,$user,$password) OR die("Echec de la connexion au serveur");
//ouverture de la base de donne
$id_db = mysql_select_db($base) OR die("Echec de la connexion à la base de donnée");
//ouverture et ecriture dans la table
$result = mysql_query("INSERT INTO $table ( `N°` , `Item Name` , `Quantity` , `Brand` , `Serial Number` , `Part Number` , `Supplier` , `Destination Team` , `Destination Activity` , `Price` , `Buying date` , `Category` , `Status` , `observation` )
VALUES ('$N', '$Item_name', '$Quantity', '$Brand', '$Serial_Number', '$Part_number', '$Supplier', '$team','$Destination_activity', '$Price', '$Date_Bying ', '$Category ', '$Status ', '$Observation')
SELECT * FROM $table ORDER BY N ")
OR die("Echec de la reception des données");
//Tous les champs de toutes les fiches triées par ordre croissant du champ fldA
$resut=mysql_query("" );
mysql_close($id);
?>
Bonjour abaly
Pour un order by il faut préciser si le tri est decroissante ou croissante:
p-e: SELECT * FROM $table ORDER BY N desc (ou asc)
Mais dites moi à propos de cette partie:
$result = mysql_query("INSERT INTO $table ( `N°` , `Item Name` , `Quantity` , `Brand` , `Serial Number` , `Part Number` , `Supplier` , `Destination Team` , `Destination Activity` , `Price` , `Buying date` , `Category` , `Status` , `observation` )
VALUES ('$N', '$Item_name', '$Quantity', '$Brand', '$Serial_Number', '$Part_number', '$Supplier', '$team','$Destination_activity', '$Price', '$Date_Bying ', '$Category ', '$Status ', '$Observation')
SELECT * FROM $table ORDER BY N ")
OR die("Echec de la reception des données");
ou est ce que la parenthese de mysql_query est fermée ainsi que les guillemets? et la syntax de intert into je pense que c'est tout simplement : INSERT INTO table (ch1,ch2,...) VALUES (v1,v2,...) et c'est tous
mais je vois que dans la meme requete vous augmentez SELECT...car d'aprés ce que vous avez écrit j'ai l'impression que meme le SELECT est dans la fonction mysql_query.
soyez plus claire svp?
Pour un order by il faut préciser si le tri est decroissante ou croissante:
p-e: SELECT * FROM $table ORDER BY N desc (ou asc)
Mais dites moi à propos de cette partie:
$result = mysql_query("INSERT INTO $table ( `N°` , `Item Name` , `Quantity` , `Brand` , `Serial Number` , `Part Number` , `Supplier` , `Destination Team` , `Destination Activity` , `Price` , `Buying date` , `Category` , `Status` , `observation` )
VALUES ('$N', '$Item_name', '$Quantity', '$Brand', '$Serial_Number', '$Part_number', '$Supplier', '$team','$Destination_activity', '$Price', '$Date_Bying ', '$Category ', '$Status ', '$Observation')
SELECT * FROM $table ORDER BY N ")
OR die("Echec de la reception des données");
ou est ce que la parenthese de mysql_query est fermée ainsi que les guillemets? et la syntax de intert into je pense que c'est tout simplement : INSERT INTO table (ch1,ch2,...) VALUES (v1,v2,...) et c'est tous
mais je vois que dans la meme requete vous augmentez SELECT...car d'aprés ce que vous avez écrit j'ai l'impression que meme le SELECT est dans la fonction mysql_query.
soyez plus claire svp?