Bonjour,

Alors là.. je suis paumé.

j'ai le code ci-dessous dans un moteur de recherche sur un de mes sites et ca merdouille.... je sais pas pkoi

je veux qu'il teste si il y a le "mot" dans le titre ou la description et n'affiche le resultat que si la valeur de status_pics soit à 1.... c'est pas compliqué, mais j'ai l'impression que j'ai du me tromper qqpart.

En effet, si il doit afficher sans mot recherché il affiche tt les elements avec status = 1, et si il y a un mot recherché, il a affiche tous les elements comprenant le mot mais ne tient pas compte du status

si qqun a une idee,

merci à tous !


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
// on regarde si il faut rechercher des mots clés
$mots = str_replace('%', '', $mots);
$mots = str_replace('_', '', $mots);
$mots = trim($mots);
if ($mots != '')
{
   $where  = " WHERE title LIKE '%".addslashes($mots)."%' OR ";
   $where .= "description LIKE '%".addslashes($mots)."%' AND status_pics = '1'";
   $criteres = "?mots=".urlencode($mots);
}
else
{
    $where = " WHERE status_pics = '1'";
    $criteres = "?";
}
 
// Recherche du nombre de lignes
$sql  = 'SELECT count(*) ';
$sql .= 'FROM '.$nom_table;
$sql .= $where;
 
$resultat = mysql_db_query($cfgBase, $sql);
$enr = mysql_fetch_array($resultat);
 
if (($nbtotal = $enr[0]) == 0)
{
    echo 'Aucune vidéo trouvée';
}
else
{
    if (!isset($debut)) $debut = 0;
 
    // recherche des réponses
    $sql  = 'SELECT '.$champs.' ';
    $sql .= 'FROM '.$nom_table;
    $sql .= $where;
    $sql .= ' ORDER BY date DESC';
    $sql .= ' LIMIT '.$debut.','.$cfg_nbres_ppage;
 
    $resultat = mysql_db_query($cfgBase, $sql);
    $nbenr = mysql_num_rows($resultat);
 
    // plage de réponses
    $barre_nav  = '<table align="center" class="tborder" style="border-collapse: collapse;" cellpadding="3" cellspacing="0" width="670">';
    $barre_nav .= '<TR><TD class="cell1" WIDTH="40%" ALIGN="left"><font face="verdana" size="1" color="#ffffff">';
    $barre_nav .= 'Vidéos <B>'.($debut + 1).'</B> à <B>'.($debut + $nbenr).'</B>';
    $barre_nav .= ' sur <B>'.($nbtotal).'</B></font></TD>';
 
    // barre de navigation
    $barre_nav .= "<TD class='cell1' ALIGN='left' WIDTH='60%'><font face='verdana' size='1' color='#ffffff'>&nbsp;";
    if ($nbtotal > $cfg_nbres_ppage)
    {
        $barre_nav .= barre_navigation($nbtotal, $nbenr,
                                       $cfg_nbres_ppage,
                                       $debut, $cfg_nb_pages,
                                       $criteres);
    }
    $barre_nav .= "</font></TD></TR></TABLE><br>\n";
 
    // affichage de la barre de navigation
    echo $barre_nav;
 
    // affichage des données
    $cpt = 0;
    //echo "<TABLE ALIGN=center BORDER=0 CELLPADDING=1 CELLSPACING=1 WIDTH='800'>";
    while ($enr = mysql_fetch_array($resultat))
    {
        echo afficher_ligne($debut + $cpt + 1, $enr);
        $cpt++;
    }
    //echo "</TABLE>\n";
 
    // 2ème barre après les résultats si nécessaire
    if ($nbtotal > $cfg_nbres_ppage && $cpt > ($cfg_nbres_ppage / 2))
    {
        echo $barre_nav;
    }
}