pb avec array() et variable supérieure

Eléphanteau du PHP | 16 Messages

31 mars 2010, 00:50

:D bonjour à tous

voilà mon pb : j'ai réussi à incrémenter un tableau array ()

Code : Tout sélectionner

Array ( [0] => 0 [300] => 4.50 [700] => 6 [1000] => 7.30 [1200] => 9.5 [2500] => 11 [5000] => 13.4 [10000] => 20 )
mais je voudrais maintenant lors d'une requète du type si $poids=450 et qu'il ne correspond pas à la liste ci-dessus, qu'il passe à la suivante donc ici ce serait 700

voici mon code qui est incomplet car j'ai effacé mes recherches, je ne trouve pas ! si vous pouvez m'aider svp ! merci :priere:

Code : Tout sélectionner

$tableau = array(0 =>0); $req = mysql_query("SELECT poids, prix FROM grille_port_poids"); while( $donnees = mysql_fetch_assoc($req) ) { $tableau[$donnees['poids']] = $donnees['prix']; } $poids = $_GET['poids']; if ($poids<300) { $poids = 300; // si poids <300 donc par défaut 300 } $poids= ceil($poids/100)*100; // arrondi à la centaine supérieure --ici--- si $poids différent de array, passe à next.... echo ' votre colis pèse : '.$poids.' grs <br> port à payer : '.$tableau[$poids].' € ';

ViPHP
ViPHP | 5462 Messages

31 mars 2010, 00:57

faudrait trouver si y'a une logique derrière la suite de valeur, mais ca va prendre moins de temps de faire un switch, voir un petite boucle avec un break

devlop78
Invité n'ayant pas de compte PHPfrance

31 mars 2010, 03:48

Tu peux éventuellement faire un foreach sur ton tableau et faire une comparaison de type (int)$cle < $poids etc

Eléphanteau du PHP | 16 Messages

31 mars 2010, 09:26

merci les gars pour vos propositions, mais je comprend pas grand chose, je débute avec "array.... " et le php 8-|

----------------------------------------------------
je reviens pour vous dire que je vais essayer cela : du moins je vais l'adapter !
je vous dirais mon code final si ca marche ! :wink:
<?php
$arr = array('un', 'deux', 'trois', 'quatre', 'stop', 'cinq');
while (list(, $val) = each($arr)) {
if ($val == 'stop') {
break; /* Vous pourriez aussi utiliser 'break 1;' ici. */
}
echo "$val<br />\n";
}

Eléphanteau du PHP | 16 Messages

31 mars 2010, 09:51

=D> longue vie au forum !!! depuis que je viens ici, on me guide toujours correctement !!!! 8-) merci les gars !!!!

voici mon code qui marche à merveille : je me suis fixé sur l'histoire du break ! et j'ai trouvé un exemple facilement adaptable et c'est réglé ! si cela peut aider quelqu'un, je laisse le code final à dispo car apparemment, selon google, je ne serais pas le seul à chercher ca. :!:
$tableau = array(0 =>0);
$req = mysql_query("SELECT poids, prix FROM grille_port_poids");
while( $donnees = mysql_fetch_assoc($req) )
{
$tableau[$donnees['poids']] = $donnees['prix'];
}
print_r($tableau);

$poids = $_GET['poids'];

if ($poids<300) {
$poids = 300;
}

$poids= ceil($poids/100)*100; // arrondi à la centaine supérieure

$arr = $tableau;
while (list($cle, $val) = each($arr)) {
if ($cle >= $poids) {
break;
}
}
echo '
votre colis pèse : '.$poids.' grs
<br>
port à payer : '.$val.' €
';
?>