Bonjour,
Boites commançant par 3 premières lettres spécifiques :
Code:$where = "WHERE boite LIKE '" . substr($boite, 0, 3) . "%'";
Version imprimable
Bonjour,
Boites commançant par 3 premières lettres spécifiques :
Code:$where = "WHERE boite LIKE '" . substr($boite, 0, 3) . "%'";
Alors, ça marche MAIS ...
Du coup, j'avais pas réfléchis, mais quand on est sur une fiche vo, et même si on a pas fais une recherche par boite, si on clique sur suivant ou précédent, ça n'affiche que les boites du même type que le véhicule.
Il faudrait que j'arrive à faire "suivant avec même type de boite auto ou manuelle quand la personne fait une recherche par type de boite dans le moteur de recherche" et "suivant ou précédent sur même modèle de véhicule mais sans tenir compte de la boite si la personne ne fais pas de tri par boite " ...
Merci
C'est simple, tu modifies ta clause where dans les fonctions getPrevious() / getNext() afin de tenir compte d'un choix explicite de type de boite de vitesse.
Inspires toi de ma modification de la ligne 428 d'un post précédent.
Une dernière chose : ton code n'est pas du tout sécurisé mais alors pas du tout. Il n'y a aucune protection contre quoi que ce soit. Je n'ai pas vu le reste mais si tu le mets en ligne en l'état, tu vas te faire siphonner l'intégralité de tes données en moins de temps qu'il ne faut pour le dire sans compter toutes les autres joyeusetés qu'il serait possible d'injecter. J'espère que tout ceci n'est qu'un code de test ou d'apprentissage mais pas destiné à être mis en production.
Voici les deux fonctions corrigées :
Ce que tu demandes ne relève pas de l'apprentissage mais d'une prestation pure et simple pour un développeur. C'est mon dernier post dans ce fil de discussion.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 <?php function getNext($id_voiture, $marque, $modele, $boite) { $groups = array('all' => 'Toutes', 'auto' => 'A', 'man' => 'M'); $whereBoite = ''; if (strlen($boite) && ($boite !== 'all')) { $whereBoite = (isset($groups[$boite])) ? "AND `boite` LIKE '%{$groups[$boite]}%'" : "AND `boite` = '$boite'"; } $sql = "SELECT `id_voiture`,`marque`,`modele`,`version`,`boite` FROM `voitures` WHERE `id_voiture` > '$id_voiture' AND `marque` = '$marque' AND `modele` = '$modele' $whereBoite ORDER BY `id_voiture` ASC LIMIT 0,1"; $exec = requete($sql); return (mysql_num_rows($exec)) ? mysql_fetch_assoc($exec) : false; } function getPrevious($id_voiture, $marque, $modele, $boite) { $groups = array('all' => 'Toutes', 'auto' => 'A', 'man' => 'M'); $whereBoite = ''; if (strlen($boite) && ($boite !== 'all')) { $whereBoite = (isset($groups[$boite])) ? "AND `boite` LIKE '%{$groups[$boite]}%'" : "AND `boite` = '$boite'"; } $sql = "SELECT `id_voiture`,`marque`,`modele`,`version`,`boite` FROM `voitures` WHERE `id_voiture` < '$id_voiture' AND `marque` = '$marque' AND `modele` = '$modele' $whereBoite ORDER BY `id_voiture` DESC LIMIT 0,1"; $exec = requete($sql); return (mysql_num_rows($exec)) ? mysql_fetch_assoc($exec) : false; } ?>
Pour l'aspect sécurité, c'est simple absolument aucune données n'est sécurisée (du moins je n'ai rien vu de tel), les données utilisateurs passent à la base de données sans aucun filtrage/nettoyage/échappement.
J'ajouterai que le rendu web est lui aussi non sécurisé : aucun échappement de caractères dangereux, aucune précaution de rien du tout. Bref, il te reste encore un gros travail à founir.
Dans tous les cas bon courage.
J'ai remplacé le code mais cela ne semble pas fonctionner malheureusement ...
Mais vraiment un gros merci d'avoir pris le temps de m'aider, et je comprends très bien que c'est un réel boulot de développement, raison pour laquelle je te suis très reconnaissant ;-)
Merci aussi pour tes conseils ;-)