Recherche valeur dans tableau

Eléphanteau du PHP | 16 Messages

14 août 2014, 17:29

Bonjour à toutes et à tous,
pauvre débutant que je suis, je "bloque" sur un problème de recherche d'une valeur dans un tableau en fonction de deux critères de recherche. Dans un formulaire j'ai un champ qui s'appelle "Nom du produit" et un second champ intitulé "Nombre de jours de location". Comment retrouver dans un tableau la valeur qui correspond à ces critères ? Je m'explique: l'utilisateur choisit par exemple "Scie sauteuse" dans le champ 1 et "3 jours" dans le champ 2. Je dois pouvoir retrouver la valeur 150 qui correspond au coût de location en fonction de ces 2 critères choisis. Suis-je assez clair ? Merci pour votre aide.

Eléphant du PHP | 113 Messages

14 août 2014, 18:04

Ton tableau est formé de quelle façon ? Est-ce que c'est une table de base de donnée ou un tableau en php ?

Par exemple dans le cas d'un tableau en php:
________________________________________________________________
NomProduit | Prix loc 1j | Prix loc 2j | Prix loc 3j | Prix loc 1S| Prix loc 1M |
__________|__________|_________|__________|_________|___________|

ce qui donne un truc du genre :

$tableau = array(
array("nomProduit"=>"Scie Sauteuse",array("1"=>"10","2"=>"20","3"=>"30","4"=>"50")),
array("nomProduit"=>"Scie à dent",array("1"=>"5","2"=>"11","3"=>"17","4"=>"33")),
array("nomProduit"=>"Marteau rouillé",array("1"=>"7","2"=>"15","3"=>"30","4"=>"55"))
);

du coup pour faire une recherche dedans il faudrait faire de cette façon:
foreach ($tableau as $value) {
   if ($value['nomProduit']==$_POST['Nom du produit']) {
      $prix = $value[$_POST['Nom du produit']][$_POST['Nombre de jours de location']];
      break;   // Stop la boucle
   }
}
Si c'est une base de donnée, il te faut faire une requête, ce qui est plus "pratique"
Modifié en dernier par toytoy le 14 août 2014, 19:20, modifié 1 fois.

Eléphanteau du PHP | 16 Messages

14 août 2014, 18:13

Merci pour cette réponse rapide. C'est un tableau php et je vais tester ta proposition rapidement.