Question de recherche sur les requêtes multi-colonnes utilisant PHP
P粉242126786
P粉242126786 2023-07-26 17:32:50
0
1
462
<p>J'ai une question. Je dois interroger tout le texte contenant une sous-chaîne donnée en utilisant la méthode POST sur PHP. Par exemple, si je saisis un « a » ou un nombre comme « 1 » (un caractère et non un entier), dois-je trouver tout ce qui contient ce caractère ou cette sous-chaîne et vérifier chaque colonne du tableau si cela est possible ? J'ai essayé quelque chose comme ça, mais le code est un peu compliqué. </p> <pre class="brush:php;toolbar:false;"><?php si ($_SERVER["REQUEST_METHOD"] == "POST") { $usersearch = $_POST["usersearch"]; essayer { require_once "includes/dbh.inc.php"; $query = "SELECT * FROM tlattine OÙ tipologie LIKE :usersearch OU nom LIKE :usersearch OU caractéristiques LIKE :usersearch OR tabstyle LIKE :usersearch OU tabcolor LIKE :usersearch OU topstyle COMME :usersearch OU topcolor COMME :usersearch OU provenance LIKE :usersearch OU producteur LIKE :usersearch OR sku LIKE : recherche d'utilisateur COMMANDER PAR typologie, provenance, année, dimension;"; $stmt = $pdo->prepare($query); $stmt->bindParam(":usersearch", $usersearch); $stmt->exécuter(); $results = $stmt->fetchAll(PDO::FETCH_ASSOC); $pdo = nul ; $stmt = nul ; } catch (PDOException $e) { die("Échec de la requête : " . $e->getMessage()); } } autre{ header("Emplacement : ../index.php"); } ?>≪/pré> <p>J'ai déjà essayé d'utiliser '%:usersearch%' ou de combiner % sous n'importe quelle forme mais il semble qu'il me manque quelque chose, j'en suis absolument sûr mais je ne le trouve pas :(</p>
P粉242126786
P粉242126786

répondre à tous(1)
P粉793532469

En regardant votre requête, j'ai remarqué que vous avez utilisé le paramètre : usersearch plusieurs fois.

Mentionné dans la documentation PHP :

Je préfère éviter d'activer le mode d'emprunt d'identité et plutôt remplacer l'espace réservé nommé par un espace réservé positionnel (utilisez '?' au lieu de ':usersearch'), puis utilisez


$stmt->bindParam(1, $usersearch, PDO::PARAM_STR);
$stmt->bindParam(2, $usersearch, PDO::PARAM_STR);
$stmt->bindParam(3, $usersearch, PDO::PARAM_STR);
// and so on

Une dernière chose, si vous interrogez pour que la colonne contienne la variable $usersearch, vous devriez probablement ajouter % au début et à la fin de la chaîne.

$usersearch = "%" . $_POST["usersearch"] . "%"
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal