Recherche en base de données via PDO [Résolu/Fermé]
A voir également:
- Recherche en base de données via PDO
- Recherche en base de données via PDO ✓ - Forum - PHP
- Connexion base de données php pdo - Conseils pratiques - PHP
- Connexion à une base avec PDO/mysqli - Conseils pratiques - PHP
- Mettre à jour base de données via formulaire php UPDATE ✓ - Forum - PHP
- Suggestions pour recherche dans base de données ✓ - Forum - PHP
1 réponse
JooS
- Messages postés
- 2465
- Date d'inscription
- mardi 22 janvier 2008
- Statut
- Membre
- Dernière intervention
- 8 juin 2016
Salut,
- Documentes toi sur PDO et les requêtes préparés.
- Pourquoi inclure 4 fois un même fichier, une fois suffit !
- Il ne suffit pas de vérifier que $_POST['search'] existe, tu dois vérifier que $_POST['marque'] et piece existent aussi et ne sont pas vides.
- Si tes tables contiennent des ID, alors tes requêtes de recherches doivent se faire en fonction des ID et non pas des libelles(nom de marque, nom de pièce).
A essayer !
Mettez en résolu quand c'est résolu -.- ...
- Documentes toi sur PDO et les requêtes préparés.
- Pourquoi inclure 4 fois un même fichier, une fois suffit !
- Il ne suffit pas de vérifier que $_POST['search'] existe, tu dois vérifier que $_POST['marque'] et piece existent aussi et ne sont pas vides.
- Si tes tables contiennent des ID, alors tes requêtes de recherches doivent se faire en fonction des ID et non pas des libelles(nom de marque, nom de pièce).
A essayer !
<?php // Une seule inclusion suffit require_once 'connexion.php'; ?> Recherche par marque et type de piece :<br> <form method="POST" action=""> <select name="marque" class="styled-select"> <option value="0">Choissisez la marque</option> <?php $resultats = $connexion->query("SELECT * FROM marques ORDER BY marque ASC"); while($ligne = $resultats->fetch(PDO::FETCH_OBJ)) { echo '<option value="' . $ligne->marque . '">' . $ligne->marque . '</option>'; // on affiche la liste des marques } $resultats->closeCursor(); // on ferme le curseur des résultats ?> </select> <select name="piece" class="styled-select"> <option value="0">Choissisez la piece</option> <?php $resultats = $connexion->query("SELECT * FROM pieces ORDER BY piece ASC"); while($ligne = $resultats->fetch(PDO::FETCH_OBJ)) { echo '<option value="' . $ligne->piece . '">' . $ligne->piece . '</option>'; // on affiche la liste des pieces } $resultats->closeCursor(); // on ferme le curseur des résultats ?> </select> <input type="submit" name="search" value="Valider" class="styled-btn"> </form> <?php if(isset($_POST['search'])) { $resultats = $connexion->prepare("SELECT * FROM piecedet WHERE piece = :p AND marque = :m ORDER BY id DESC"); $resultats->execute(array(':p'=>$_POST['piece'], ':m'=>$_POST['marque'])); while($ligne = $resultats->fetch(PDO::FETCH_OBJ)) { echo 'Piece No ' . $ligne->id . '<br>' . $ligne->piece . ' de la marque ' . $ligne->marque . ' ajoute le ' . $ligne->date . '<br>La piece se situe sur l\'etagere No ' . $ligne->etagere . ' sur la planche No ' . $ligne->planche . ' dans le bac No ' . $ligne->bac . '.<br> Remarque: ' . $ligne->note; // on affiche les infos sur le composant } $resultats->closeCursor(); // on ferme le curseur des résultats } ?>
Mettez en résolu quand c'est résolu -.- ...
Signaler
iTonton
Merci tu m'as vraiment beaucoup aidé et appris des choses :)