Partage
  • Partager sur Facebook
  • Partager sur Twitter

Variable inférieur à une autre dans une requéte mysql

    18 août 2006 à 13:12:49

    Bonjour j'aimerais utiliser cette requete :


    $reqRecherche = '
    SELECT id
    FROM '
    .$table.'
    WHERE visible="oui"
    AND
    paye="oui"
    AND
    PAIEMENT!=0
    AND
    PUBLICATION!=0
    AND
    PUBLICATION>=time()
    AND
    EXPIRATION!=0
    AND
    EXPIRATION<=time()
    AND
    '
    .$champs.' like "%'.$tableauMots[0].'%" ';
    $sqlRecherche = mysql_query($reqRecherche)or die(mysql_error());
    $resultatRecherche = mysql_fetch_array($sqlRecherche);

    Mais dans ce cas j'ai une erreur :

    Citation : Erreur


    Erreur de syntaxe près de ') AND EXPIRATION!=0 AND EXPIRATION<=time() AND contenu lik' à la ligne 11


    La ligne 11 étant "PUBLICATION>=time()".
    Je fait comment pour faire une requéte ou la champs PUBLICATION est supérieur ou égale au timestamp actuel, et le champs EXPIRATION inférieur ou égale au timestamp actuel ?

    Merci d'avance de votre aide.

    Pierre
    • Partager sur Facebook
    • Partager sur Twitter
      18 août 2006 à 13:28:43

      Dans l'état tu fais de la concaténation, time étant une fonction php et non mysql
      $reqRecherche = '
      SELECT id
      FROM '
      .$table.'
      WHERE visible="oui"
      AND
      paye="oui"
      AND
      PAIEMENT!=0
      AND
      PUBLICATION!=0
      AND
      PUBLICATION>='
      .time().'
      AND
      EXPIRATION!=0
      AND
      EXPIRATION<='
      .time().'
      AND
      '
      .$champs.' like "%'.$tableauMots[0].'%" ';
      $sqlRecherche = mysql_query($reqRecherche)or die(mysql_error());
      $resultatRecherche = mysql_fetch_array($sqlRecherche);
      • Partager sur Facebook
      • Partager sur Twitter
        18 août 2006 à 13:54:26

        ou si expiration est un champ de type date ou datetime, la bonne fonction mysql est now()
        • Partager sur Facebook
        • Partager sur Twitter
          18 août 2006 à 15:02:41

          Merci A-spec59 c'est tout à fait ça c'est vrai que j'y avait pas penser.
          Sinon jaye mon champs et de type int(1) donc je ne peut pas utiliser now()

          merci de votre aide.

          Pierre
          • Partager sur Facebook
          • Partager sur Twitter
            18 août 2006 à 15:14:00

            Euh un type int(1) t'es sûr que ça peut contenir un timestamp de 10 chiffres ?
            • Partager sur Facebook
            • Partager sur Twitter
              20 août 2006 à 10:39:22

              int(11) excuse moi j'ai fait une faute de frappe ...

              Pierre
              • Partager sur Facebook
              • Partager sur Twitter
                20 août 2006 à 10:59:54

                Citation : Pierre

                Sinon jaye mon champs et de type int(1) donc je ne peut pas utiliser now()
                Pierre


                Et bien c'est une grosse erreur !
                Une date ça va dans un champ date (ou datetime) et pas dans un int()
                • Partager sur Facebook
                • Partager sur Twitter

                Variable inférieur à une autre dans une requéte mysql

                × 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.
                • Editeur
                • Markdown