Je m'excuse ; lors de la retranscription (en changeant le nom des variables pour le forum...), j'ai oublié de modifier celles-ci.. Je viens de corriger.
Ligne 31, tu utilises une Constante qui n'est pas compatible avec le driver de base de données que tu utilises, les constantes commençant par MYSQL, ne peuvent être utilisées que lorsque le driver utilisé est mysql, ce qui n'est visiblement pas ton cas.
Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.
Ligne 31, tu utilises une Constante qui n'est pas compatible avec le driver de base de données que tu utilises, les constantes commençant par MYSQL, ne peuvent être utilisées que lorsque le driver utilisé est mysql, ce qui n'est visiblement pas ton cas.
D'accord merci, j'ai enlever ceci..
Néanmoins je n'ai toujours pas le résultat de ce que je cherche et toujours pas de message d'erreur.. :/
- Edité par PtitOursTutTut 16 juillet 2019 à 14:08:15
Est-ce que tu as bien activé l'affichage des erreurs de PHP ?
Par contre, tu devrais entourer le code pour la recherche dans une condition, car actuellement tu fais une requête SQL qu'une recherche ait été demandée ou non et ton code devrait avoir des erreurs lorsque la page est chargé sans le paramètre search dans l'url, d'où je pense le fait que tu n'as pas affiché les erreurs de PHP, car tu devrais normalement avoir une erreur du genre :
Undefined index search in line 26 ...
Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.
Pour le paramètre search, je ne vois pas vraiment où est le souci.
(Je m'excuse si mes questions sont bêtes)
Tant que l'utilisateur n'a pas fait de recherche, le paramètre search n'existe pas dans l'url, d'où le problème que peut poser le fait de ne pas en faire la vérification de son existence et de sa valeur avant de vouloir faire un traitement avec.
Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.
Alors effectivement j'ai un message d'erreur du coup (j'avais oublié de reset ma page de base, sans le ?search=, donc forcément il n'apparaissait pas ) ..
Voici le message : Notice: Undefined index: search in /var/www/mon_site/test/index.php on line 26.
Du coup, il faut que je mette un 'if' pour savoir si l'utilisateur a fait une recherche ou pas ?
EDIT :
Bon alors j'ai testé ça :
<?php
if(isset($_GET['search']) AND !empty($_GET['search']))
{
$search = htmlspecialchars($_GET['search']);
$pdo = new PDO("dblib:host=$srv","$user","$pwd");
//Requetes SQL
$query = "SELECT * FROM bdd2.tarif WHERE reference_article LIKE :s OR description LIKE :s";
$s = "%" . $search . "%";
$req = $pdo->prepare($query);
$req->execute(["s" => $s]);
//Faire un fetchAll() est plus performant pour un système de recherche
$results = $req->fetchAll();
foreach($results as $result)
{
echo $result['AR_Ref'];
}
}
?>
Donc je n'ai plus le message d'erreur, par contre ma recherche ne fonctionne toujours pas.
- Edité par PtitOursTutTut 17 juillet 2019 à 9:49:59
$sql = "SELECT * FROM bdd2.tarif WHERE reference_article like ? OR description like ? ";
$q = $conn->prepare($sql);
$q->execute(array('%'.$search.'%', '%'.$search.'%'));
- Edité par Kévin Brissez 18 juillet 2019 à 13:20:46
De plus comment peux-tu savoir si ça ne marche pas, c'est peut-être tout simplement qu'aucun enregistrement n'est trouvé.
Autre chose, supprimes cette utilisation de htmlspecialchars en ligne 4.
Kévin Brissez a écrit:
Hello,
Essai comme ceci
$sql = "SELECT * FROM bdd2.tarif WHERE reference_article like ? OR description like ? ";
$q = $conn->prepare($sql);
$q->execute(array($search, $search));
Totalement inutile de lui faire remplacer les marqueurs par des flags, de plus que tu le fais se répéter en utilisant cette syntaxe.
- Edité par Lartak 18 juillet 2019 à 13:22:26
Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.
J'aimerais pouvoir récupérer les résultats de ma recherche..
Merci du conseil pour le htmlspecialchars
Je sais que cela ne marche pas car ce ne me renvoie pas les données que je demande, et je sais que ces données existent car j'ai la base de données sous les yeux.
il manque ":" à "s" : "$req->execute([":s" => $s]);"
Met les % direct dans la requête SQL (si çà ne fonctionne pas, laisse comme c'était pour voir).
Peux-tu exécuter ce code et afficher le résultat obtenu ?
<?php
if(isset($_GET['search']) AND !empty($_GET['search']))
{
$search = htmlspecialchars($_GET['search']);
$pdo = new PDO("dblib:host=$srv","$user","$pwd");
//Requetes SQL
$query = "SELECT * FROM bdd2.tarif WHERE reference_article LIKE %:s% OR description LIKE %:s%";
$s = "" . $search . "";
$req = $pdo->prepare($query);
$req->execute([":s" => $s]);
echo "Bon, on a bien notre paramètre GET 'search' fourni.<br>";
//Faire un fetchAll() est plus performant pour un système de recherche
var_dump($req->fetchAll());
}
- Edité par symfonydu80 19 juillet 2019 à 23:48:46
"(si çà ne fonctionne pas, laisse comme c'était pour voir)."
- Edité par symfonydu80 22 juillet 2019 à 11:05:06
Barre de recherche interne
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Etudiante en BTS SIO option SLAM
Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.
Etudiante en BTS SIO option SLAM
Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.
Etudiante en BTS SIO option SLAM
Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.
Etudiante en BTS SIO option SLAM
Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.
Etudiante en BTS SIO option SLAM
Etudiante en BTS SIO option SLAM
Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.
Etudiante en BTS SIO option SLAM
Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.