Question de recherche sur les requêtes multi-colonnes utilisant PHP
P粉242126786
2023-07-26 17:32:50
<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>
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
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.