Bon voici ce que j'ai fait :
<?php
$prix = 250; // tu récupères normalement cette variable depuis ton formulaire
echo 'Prix = '.$prix.'<br /> <br />'; // affichage
$tableau = array( // ce tableau serait dans ton cas la ressource renvoyée par mysql_query()
array('article'=>'article A', 'montant' => 199, 'coef' => 0.5), // correspond à une ligne renvoyée par la requête "SELECT article, montant, coef FROM calcul WHERE min <= $prix AND max >= $prix'"
array('article'=>'article B', 'montant' => 299, 'coef' => 1),
array('article'=>'article C', 'montant' => 399, 'coef' => 1.2),
array('article'=>'article D', 'montant' => 499, 'coef' => 1.5),
array('article'=>'article E', 'montant' => 599, 'coef' => 3),
array('article'=>'article F', 'montant' => 699, 'coef' => 1),
);
foreach($tableau as $data) { // correspond chez toi à while($data = mysql_fetch_assoc($req) vu qu'ici on a un tableau
// calcul de la remise
if($data['montant'] < $prix) {
$res = $data['montant'];
} else {
$res = ($data['coef'] * $prix);
}
if($data['montant'] < $res) {
$res = $data['montant'];
}
// stockage de la valeur calculée (remise) dans le tableau $data : on ajoute une nouvelle colonne 'remise' avec comme valeur $res
$data['remise'] = $res;
// on stocke le tableau $data dans une nouvelle cellule de $tableau_articles
$tableau_articles[] = $data;
}
/* On a maintenant un tableau de lignes (tableau A)
$tableau_articles est un tableau à plusieurs dimensions, puisqu'on a $tableau_articles[0]['article'], $tableau_articles[0]['remise'] etc
$tableau_articles[0] = | article | montant | coef | remise |
$tableau_articles[1] = | article | montant | coef | remise |
$tableau_articles[2] = | article | montant | coef | remise |
$tableau_articles[3] = | article | montant | coef | remise |
*/
?>
<!-- le HTML ici sert juste à l'affichage, pour présenter les données traitées -->
Tableau non trié :<br />
<table border="1">
<tr>
<td>Article</td><td>Prix</td><td>Coef</td><td>Remise</td>
</tr>
<?php
foreach($tableau_articles as $article) {
echo '<tr>';
echo '<td>'.$article['article'].'</td><td>'.$article['montant'].'</td><td>'.$article['coef'].'</td><td>'.$article['remise'].'</td>';
echo '</tr>';
}
?>
</table>
<br /> <br />
Tableau trié sur la remise :<br />
<table border="1">
<tr>
<td>Article</td><td>Prix</td><td>Coef</td><td>Remise</td>
</tr>
<?php
// On veut ici un tableau de colonnes
// On regroupe dans chaque tableau les valeurs de même type (un tableau pour les articles, un pour les montants etc)
// La correspondance entre un montant et sa remise se fera grâce aux clés numériques
foreach ($tableau_articles as $key => $row) {
// si on regarde le tableau A affiché plus haut, on voit que $key vaudra 0,1,2,3 et $row sera un tableau [| article | montant | coef | remise |]
$article[$key] = $row['article'];
$montant[$key] = $row['montant'];
$coef[$key] = $row['coef'];
$remise[$key] = $row['remise'];
}
/* On obtient
$article : | article 0 | article 1 | article 2 | article 3 |
$montant : | montant 0 | montant 1 | montant 2 | montant 3 |
$coef : | coef 0 | coef 1 | coef 2 | coef 3 |
$remise : | remise 0 | remise 1 | remise 2 | remise 3 |
*/
// on demande ici de trier le tableau $remise en ordre décroissant, en gardant les correspondances au sein du tableau $tableau_articles avec les clés numériques communes
array_multisort($remise, SORT_DESC, $tableau_articles);
// on l'affiche
foreach($tableau_articles as $produit) {
echo '<tr>';
echo '<td>'.$produit['article'].'</td><td>'.$produit['montant'].'</td><td>'.$produit['coef'].'</td><td>'.$produit['remise'].'</td>';
echo '</tr>';
}
?>
</table>
J'ai commenté chaque ligne, maintenant si tu as une question sur un point précis, demande. Dès que tu vois un élément de syntaxe inconnu, ou que tu ne comprends pas dans le contexte, va voir dans la doc.
Quand tu es sur une page du manuel, pense à regarder les exemples (je suis d'accord que la signature d'une méthode et l'explication des paramètres ne sont pas toujours très facile à comprendre). Fais aussi de petits scripts de test pour manipuler les tableaux, utiliser les fonctions que tu découvres, ainsi tu comprendras bien chaque chose.