Page 1 sur 1

pb avec array() et variable supérieure

Posté : 31 mars 2010, 00:50
par vincentpablo02
: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].' € ';

Re: pb avec array() et variable supérieure

Posté : 31 mars 2010, 00:57
par stealth35
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

Re: pb avec array() et variable supérieure

Posté : 31 mars 2010, 03:48
par devlop78
Tu peux éventuellement faire un foreach sur ton tableau et faire une comparaison de type (int)$cle < $poids etc

Re: pb avec array() et variable supérieure

Posté : 31 mars 2010, 09:26
par vincentpablo02
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";
}

Re: pb avec array() et variable supérieure

Posté : 31 mars 2010, 09:51
par vincentpablo02
=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.' €
';
?>