Je tourne en rond depuis plusieurs jours sur ce problème :
Constructeur
Code : Tout sélectionner
+---------------------+---------------------+
| id_constructeur | Constructeur |
+---------------------+---------------------+
| 1 | Renault |
+---------------------+---------------------+
| 2 | Citroen |
+---------------------+---------------------+
| 3 | Peugeot |
+---------------------+---------------------+Code : Tout sélectionner
+---------------------+---------------------+---------------------+
| id_constructeur | Categorie | Modele |
+---------------------+---------------------+---------------------+
| 1 | Citadine | Clio |
+---------------------+---------------------+---------------------+
| 1 | Citadine | Twingo |
+---------------------+---------------------+---------------------+
| 1 | Berline | Megane |
+---------------------+---------------------+---------------------+
| 2 | Citadine | Saxo |
+---------------------+---------------------+---------------------+
| 2 | Monospace | Picasso |
+---------------------+---------------------+---------------------+
| 1 | Berline | Laguna |
+---------------------+---------------------+---------------------+
| 3 | Berline | 407 |
+---------------------+---------------------+---------------------+
| 3 | Citadine | 106 |
+---------------------+---------------------+---------------------+
| 3 | Monospace | 806 |
+---------------------+---------------------+---------------------+avecRenault : Citadine: Clio, Twingo - Berline: Megane, Laguna
* Citroen: Citadine: Saxo - Monospace: Picasso
* Peugeot: Citadine: 106 - Berline: 407 - Monospace: 806
$sql = "SELECT constructeur.id_constructeur, constructeur.constructeur stock.categorie,stock.modele
FROM stock JOIN constructeur
ON constructeur.id_constructeur = stock.id_constructeur
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
while ($data = mysql_fetch_array($req) )
{
$tableau[$data['constructeur']][$data['categorie']][] = $data['modele'];
}
if (isset($tableau))
{
$i = 1;
foreach ($tableau as $cle1=>$valeur1)
{
if ($i === 1)
{
$str .= $cle1 . ": ";
}
else
{
$str .= "* ".$cle1 . ": ";
}
$i++;
$j = 1;
foreach ($valeur1 as $cle2=>$valeur2)
{
if ($j === 1)
{
$str .= "Cat: ".$cle2 . ": ";
}
else
{
$str .= " - Cat: ".$cle2 . ": ";
}
$j++;
foreach ($valeur2 as $cle3=>$valeur3)
{
$str .= $valeur3. " ";
}
}
}
}
else
{
echo "Pas de données a afficher";
}
echo "<br>";
echo $str;
Maintenant je voudrais pouvoir filtrer mon tableau par carburants afin d'avoir par exemple un résultat avec les citadine & berlines essence de tous les constructeurs et les monospaces dieselsde tous les constructeurs
J'ai pensé à creer une nouvelle table :
Code : Tout sélectionner
+---------------------+---------------------+
| Categorie| Carburant |
+---------------------+---------------------+
| Citadine | 0 ou 1|
+---------------------+---------------------+
| Berline | 0 ou 1|
+---------------------+---------------------+
| Monospace | 0 ou 1 |
+---------------------+---------------------+Carburant
0 = essence
1 = diesel
Avec une case à cocher dans un formulaire j'UPDATE la valeur 0 ou 1
Par conséquent je modifie ma requete pour y inclure le champ carburant, ce qui me retourne un tableau mais je n'arrive pas à filtrer ce tableau sur la condition 'carburant'
J'aurais voulu eviter de faire 2 requetes distinctes
J'ai essayé d'utilser la fonction array_filter mais sans succès.
Quelqu'un a t'il une pour que je puisse avancer ?
En vous remerciant.