Trie par prix croissant
Résolu
neo88100
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
ElementW Messages postés 4814 Date d'inscription Statut Contributeur Dernière intervention -
ElementW Messages postés 4814 Date d'inscription Statut Contributeur Dernière intervention -
A voir également:
- Trie par prix croissant
- Excel trier par ordre croissant chiffre - Guide
- Prix d'un appel local - Forum telephonie fixe
- Historique prix amazon - Guide
- Prix réparation rétroéclairage tv led - Forum TV & Vidéo
- Écran tv cassé réparation prix - Forum TV & Vidéo
3 réponses
'lut, comme tes résultats proviennent d'une base SQL, on va lui faire faire le tri:
Et là, magie, tes résultats seront récupérés triés dans l'ordre.
$sql = "SELECT Designationpr, Prixpr, Idpr FROM produits ORDER BY Prixpr ASC";
ORDER BY Prixpr ASCveut dire "TRIER PAR Prixpr CROISSANT".
Et là, magie, tes résultats seront récupérés triés dans l'ordre.
Je ne connais pas le php mais la commande SQL Select peut être suivie
par un ORDER BY Prixpr Asc ou Desc devrait te permettre de mettre les prix en croissant ou décroissant
par un ORDER BY Prixpr Asc ou Desc devrait te permettre de mettre les prix en croissant ou décroissant
Merci pour ta réponse,
Enfaite j'aimerais que l'utilisateur puisse choisir lui même le trie et changer à sa guise, j'ai trouvé comme code celui ci mais il me met des erreurs pour les lignes en gras pouvez-vous m'aider svp :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<?php
// Connexion à la base de donnée
$base = mysqli_connect ('localhost', 'root', '')
or die("Impossible de se connecter : " . mysqli_error());
mysqli_select_db ($base,'p&v bike') ;
// Le nom de notre table
$tablename = 'produits';
// Tri sur colonne
$tri_autorises = array('Idpr','Designationpr','Prixpr');
$order_by = in_array(isset($_GET['order']),$tri_autorises) ? $_GET['order'] : 'Idpr';
// Sens du tri
$order_dir = isset($_GET['inverse']) ? 'DESC' : 'ASC';
// Préparation de la requête
$sqli = "
SELECT Designationpr, Prixpr, Idpr
FROM produits
ORDER BY {$order_by} {$order_dir}
";
$result = mysqli_query($sqli);
// Notre fonction qui affiche les liens
function sort_link($text, $order=false)
{
global $order_by, $order_dir;
if(!$order)
$order = $text;
$link = '<a href="?order=' . $order;
if($order_by==$order && $order_dir=='ASC')
$link .= '&inverse=true';
$link .= '"';
if($order_by==$order && $order_dir=='ASC')
$link .= ' class="order_asc"';
elseif($order_by==$order && $order_dir=='DESC')
$link .= ' class="order_desc"';
$link .= '>' . $text . '</a>';
return $link;
}
// Affichage
?>
<style type="text/css">
a.order_asc,
a.order_desc:hover {
padding-right:15px;
background:transparent url(s_asc.png) right no-repeat;
}
a.order_desc,
a.order_asc:hover {
padding-right:15px;
background:transparent url(s_desc.png) right no-repeat;
}
</style>
<table>
<tr>
<th><?php echo sort_link('Idpr', 'idpr') ?></th>
<th><?php echo sort_link('Designationpr', 'designationpr') ?></th>
<th><?php echo sort_link('Prixpr', 'prixpr') ?></th>
</tr>
<?php while( $row=mysqli_fetch_assoc($result) ) : ?>
<tr>
<td><?php echo $row['Idpr'] ?></td>
<td><?php echo $row['Designationpr'] ?></td>
<td><?php echo $row['Prixpr'] ?></td>
</tr>
<?php endwhile ?>
</table>
Enfaite j'aimerais que l'utilisateur puisse choisir lui même le trie et changer à sa guise, j'ai trouvé comme code celui ci mais il me met des erreurs pour les lignes en gras pouvez-vous m'aider svp :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<?php
// Connexion à la base de donnée
$base = mysqli_connect ('localhost', 'root', '')
or die("Impossible de se connecter : " . mysqli_error());
mysqli_select_db ($base,'p&v bike') ;
// Le nom de notre table
$tablename = 'produits';
// Tri sur colonne
$tri_autorises = array('Idpr','Designationpr','Prixpr');
$order_by = in_array(isset($_GET['order']),$tri_autorises) ? $_GET['order'] : 'Idpr';
// Sens du tri
$order_dir = isset($_GET['inverse']) ? 'DESC' : 'ASC';
// Préparation de la requête
$sqli = "
SELECT Designationpr, Prixpr, Idpr
FROM produits
ORDER BY {$order_by} {$order_dir}
";
$result = mysqli_query($sqli);
// Notre fonction qui affiche les liens
function sort_link($text, $order=false)
{
global $order_by, $order_dir;
if(!$order)
$order = $text;
$link = '<a href="?order=' . $order;
if($order_by==$order && $order_dir=='ASC')
$link .= '&inverse=true';
$link .= '"';
if($order_by==$order && $order_dir=='ASC')
$link .= ' class="order_asc"';
elseif($order_by==$order && $order_dir=='DESC')
$link .= ' class="order_desc"';
$link .= '>' . $text . '</a>';
return $link;
}
// Affichage
?>
<style type="text/css">
a.order_asc,
a.order_desc:hover {
padding-right:15px;
background:transparent url(s_asc.png) right no-repeat;
}
a.order_desc,
a.order_asc:hover {
padding-right:15px;
background:transparent url(s_desc.png) right no-repeat;
}
</style>
<table>
<tr>
<th><?php echo sort_link('Idpr', 'idpr') ?></th>
<th><?php echo sort_link('Designationpr', 'designationpr') ?></th>
<th><?php echo sort_link('Prixpr', 'prixpr') ?></th>
</tr>
<?php while( $row=mysqli_fetch_assoc($result) ) : ?>
<tr>
<td><?php echo $row['Idpr'] ?></td>
<td><?php echo $row['Designationpr'] ?></td>
<td><?php echo $row['Prixpr'] ?></td>
</tr>
<?php endwhile ?>
</table>
Ta requête SQL n'est pas bonne: PHP fait la substitution des variables lors de l'attribution de
Comme ceci c'est mieux:
$sqlicomme prévu, mais pour une raison qui m'échappe tu les as entourées de crochets qui cassent la syntaxe et donc la requête. Et comme elle est invalide,
mysqli_queryéchoue et renvoie
false, valeur que prend
$resultqui est évidemment incorrecte pour
mysqli_fetch_assoc().
Comme ceci c'est mieux:
$sqli = " SELECT Designationpr, Prixpr, Idpr FROM produits ORDER BY $order_by $order_dir";Et surtout, tu n'as pas passé le contexte
$baseen paramètre à
mysqli_query!
Merci de ta réponse, j'ai changé la syntaxe mais j'ai toujours 2 erreures,
) Warning: mysqli_query() expects at least 2 parameters, 1 given in C:\wamp\www\P&V bike\essai.php on line 32
qui correspond à : "$result = mysqli_query($sql);"
et
Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, null given in C:\wamp\www\P&V bike\essai.php on line 79
qui correspond à : "<?php while( $row=mysqli_fetch_assoc($result) ) : ?>"
Je ne comprend pas quand tu dis :"tu n'as pas passé le contexte $bas en paramètre
mysqli_query"
Alexandre
) Warning: mysqli_query() expects at least 2 parameters, 1 given in C:\wamp\www\P&V bike\essai.php on line 32
qui correspond à : "$result = mysqli_query($sql);"
et
Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, null given in C:\wamp\www\P&V bike\essai.php on line 79
qui correspond à : "<?php while( $row=mysqli_fetch_assoc($result) ) : ?>"
Je ne comprend pas quand tu dis :"tu n'as pas passé le contexte $bas en paramètre
mysqli_query"
Alexandre