Bonjour

Je suis abonné à ce site, Chapeau et Bravo pour le travail accompli ! en passant.
J'essaie d'intégrer une fonction de recherche avec votre Tuto Fonction de recherche, par contre sur mes sites j'utilise PDO.

là ou ça bloque c'est au moment du WHERE OR LIKE que je dois intégrer dans mon query.

Si je fais une requète sql comme dans le tuto c'est ok, mais j'ai de la misère à intégrer le foreach et le reste

<?php 
if(isset($_GET'q'])) {
$q=$_GET'q'];
$e=explode (" ",$q);
// print_r ($e);
    $reponse = $bdd->query("SELECT titre_art, texte_art, 
                    (SELECT nom_cat FROM categorie WHERE idcat=categorie_idcat) AS categorie,
                    (SELECT lien_photo FROM image WHERE idimage=image_idimage) AS place_photo

                    FROM article WHERE texte_art LIKE '%$q%'");

Une piste ?

Merci

4 réponses


manudu13
Auteur
Réponse acceptée

OK c'est bon

if (isset ($_GET'q'])) {
$q = $_GET'q'];
$s = explode(" ", $q); //séparation des mots
$req="SELECT idart,titre_art,texte_art,date_ins,
     (SELECT lien_photo FROM image WHERE idimage=image_idimage) AS place_photo
      FROM article"; 
$i=0;
foreach ($s as $mot) {
    if (strlen($mot)>3) {
    if ($i==0) {
    $req.=" WHERE ";
    }
    else {
    $req.=" OR ";
    }
    $req.="texte_art LIKE '% $mot %'";
    $i++;
    }
}
$response = $bdd->prepare($req);
$response->execute();

si tu print_r($response) tu as quoi ?

manudu13
Auteur

PDOStatement Object ( [queryString] => SELECT titre_art, texte_art, (SELECT nom_cat FROM categorie WHERE idcat=categorie_idcat) AS categorie, (SELECT lien_photo FROM image WHERE idimage=image_idimage) AS place_photo FROM article WHERE texte_art LIKE '%associations%' ) avec $q

PDOStatement Object ( [queryString] => SELECT titre_art, texte_art, (SELECT nom_cat FROM categorie WHERE idcat=categorie_idcat) AS categorie, (SELECT lien_photo FROM image WHERE idimage=image_idimage) AS place_photo FROM article WHERE texte_art LIKE '%Array%' ) avec $e un tableau

Et si je fais le foreach avant puis recupere le resultat pour le mettre en variable pour remplacer le reste ?
WHERE texte_art LIKE '%associations%'

Merci

Mmmh je ne comprend pas trop ou tu bloque en fait, ton souci c'est la requête qui ne marche pas ou tu ne sais pas récup les donner avec PDO (si c'est ça regarde le tuto sur PDO)