IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Où est mon erreur ?


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9
    Points : 11
    Points
    11
    Par défaut Où est mon erreur ?
    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;
        }
    }

  2. #2
    Membre habitué Avatar de wdionysos
    Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2003
    Messages
    222
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 222
    Points : 189
    Points
    189
    Par défaut
    salut

    peux tu nous dire a quoi correspond ton status_pict ?

    WD

    EDIT : extrait manuel php :
    mysql_db_query

    (PHP 3, PHP 4, PHP 5)

    Historique

    4.0.6 Cette fonction est décpréciée depuis PHP 4.0.6. N'utilisez pas cette fonction. Utilisez mysql_select_db() et mysql_query() à la place.
    Je ne voudrais pas faire partie d'un club qui voudrait m'avoir moi pour membre.... [Grouchot Marx]
    Mais en tant que Marxiste, je playdoye pour le travail communautaire. C'est un paradoxe olympien ! Comprend qui peut !!!

  3. #3
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    Sans trop regarder ton code, on dirait que tu as besoin de faire 2 requêtes : l'une ne tenant pas compte de la recherche mais utilisant le champ `status`, l'autre faisant l'inverse.
    Je te propose de mettre les 2 requêtes en une seule à l'aide de UNION.

    [Edit] C'est déjà :

  4. #4
    Membre habitué Avatar de wdionysos
    Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2003
    Messages
    222
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 222
    Points : 189
    Points
    189
    Par défaut
    pour le savoir, il nous faudrait connaitre si tu as un message d'erreur et ta version de PHP que tu utilise !

    WD
    Je ne voudrais pas faire partie d'un club qui voudrait m'avoir moi pour membre.... [Grouchot Marx]
    Mais en tant que Marxiste, je playdoye pour le travail communautaire. C'est un paradoxe olympien ! Comprend qui peut !!!

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9
    Points : 11
    Points
    11
    Par défaut
    en fait fallait mettre des paranthese pour entoutrer le OR

    voilou

    mais merci pour vos reponses

  6. #6
    Membre habitué Avatar de wdionysos
    Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2003
    Messages
    222
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 222
    Points : 189
    Points
    189
    Par défaut
    je ne te conseille tout de meme pas d'utiliser des fonction deprecated car demain tu ne sais pas comment va evaluer ton environnement et peut etre que ses fonction ne seront plus implementer alors en general ca finit par des heure de recherche dans un code que tu n'as plus lu depuis in eternam !

    WD

    bon dev
    Je ne voudrais pas faire partie d'un club qui voudrait m'avoir moi pour membre.... [Grouchot Marx]
    Mais en tant que Marxiste, je playdoye pour le travail communautaire. C'est un paradoxe olympien ! Comprend qui peut !!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Quelle est mon erreur dans cette syntaxe
    Par BuzzLeclaire dans le forum Langage
    Réponses: 18
    Dernier message: 01/07/2009, 00h28
  2. Débutant, quelle est mon erreur ?
    Par vladimire dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 15/05/2009, 23h43
  3. [VC#] - Je ne comprends pas ou est mon erreur !
    Par epc dans le forum Windows Forms
    Réponses: 32
    Dernier message: 03/11/2008, 19h10
  4. Où est mon erreur ?
    Par diaruga dans le forum C#
    Réponses: 6
    Dernier message: 04/08/2008, 11h56
  5. [MySQL] Mais ou est mon erreur de syntax?
    Par pierrot10 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 07/10/2006, 15h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo