[PHP] Requête PDO à modifier

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par salva, 13 Mai 2012.

  1. salva
    salva WRInaute accro
    Inscrit:
    16 Avril 2006
    Messages:
    3 425
    J'aime reçus:
    0
    Bonjour,

    Je souhaiterais afficher les entrées de la requête ci-dessous uniquement quand
    la valeur des champs "category" est égale à la catégorie de la page courante
    Code:
    //numéro de catégorie récuperé  sur la page courante
    $num_cat = $row->category;
    
    // la requête PDO à modifier qui affiche les entrées (quelle que soit la catégorie de la page courante)
    $reponse = $bdd->query('SELECT * FROM ma_table WHERE date_creation BETWEEN date(now() - INTERVAL 12 month) AND now() ORDER BY RAND() LIMIT 3');
    while ($row = $reponse->fetch())
    {
     ?>
        <?php
    // je récupère les différents champs de la requête initiale ($reponse) sous cette forme
    $cat_ad = $row['category'];
    Je patauge depuis un moment et un petit coup de main serait le bien venu.
    Merci.
     
  2. Marie-Aude
    Marie-Aude WRInaute accro
    Inscrit:
    5 Juin 2006
    Messages:
    16 686
    J'aime reçus:
    154
    if ($cat_ad == $num_cat) {blabla}
    non ?

    Cela dit ça serait sans doute plus simple avec while ($row1= $reponse->fetch)
    $cat_ad = $row1['category']
     
  3. salva
    salva WRInaute accro
    Inscrit:
    16 Avril 2006
    Messages:
    3 425
    J'aime reçus:
    0
    Déjà tenté, la solution se situe au niveau du while (ou avant dans la requête même).

    Avec la réponse, j'affiche une sélection aléatoire de 3 annonces (titre, description, images ,...) et je reconstruis les urls adéquates, après le while.
    Avec ta proposition, les urls reconstruites de la sélection comporteront bien la bonne catégorie mais elles ne corresponderont pas à la bonne url.

    Je ne suis pas sûr d'être clair :)

    Merci quand même.
     
  4. Marie-Aude
    Marie-Aude WRInaute accro
    Inscrit:
    5 Juin 2006
    Messages:
    16 686
    J'aime reçus:
    154
    Non tu n'es pas clair... notamment parce que tu n'expliques pas comment tu reconstruis les urls
     
  5. salva
    salva WRInaute accro
    Inscrit:
    16 Avril 2006
    Messages:
    3 425
    J'aime reçus:
    0
    Comme ceci
    Code:
            <?php
            $num_ad = $row['id'];
            $cat_ad = $row['category'];
            $titre_ad = $row['title'];
              if(file_exists($_SERVER{'DOCUMENT_ROOT'}."/images/".$num_ad."a_t.jpg"))
                 {
                   echo "<a href='http://example.com/adid,$num_ad/catid,".$cat_ad."/'>";
                   echo '<img src="http://example.com/ads/'.$num_ad.'a_t.jpg" border="0" alt="" /></a><br />';
                 }
              else
                 {
                   echo "<a href='example.com/adid,$num_ad/catid,".$cat_ad."/'>";
                   echo '<img src="http://example.com/images/nopic.gif" border="0" alt="" /></a><br />';
                 }
               ?>
     
  6. Marie-Aude
    Marie-Aude WRInaute accro
    Inscrit:
    5 Juin 2006
    Messages:
    16 686
    J'aime reçus:
    154
    Amha le problème vient de la non différenciation des $row, essaye de faire comme je t'ai dit en différenciation $row1 et $row ?
     
  7. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 161
    J'aime reçus:
    338
    Un peu HS:
    - Pourquoi ne pas passer par le couple fetchAll() + foreach() ? Perso je trouve ça plus "propre" que while / fetchRow
    - Tu devrais te faire une fonction pour construire tes URLs ;)
     
  8. salva
    salva WRInaute accro
    Inscrit:
    16 Avril 2006
    Messages:
    3 425
    J'aime reçus:
    0
    En appliquant la différenciation, l'affichage réagit comme si la seconde condition n'existait pas.
    Code:
    if((file_exists($_SERVER{'DOCUMENT_ROOT'}."/images/".$num_ad."a_t.jpg"))&&($cat_ad == $num_cat))
    Tu y vois une erreur de syntaxe ?
     
  9. salva
    salva WRInaute accro
    Inscrit:
    16 Avril 2006
    Messages:
    3 425
    J'aime reçus:
    0
    Tu as un exemple sous la main ?
    Sans doute :)
     
  10. Marie-Aude
    Marie-Aude WRInaute accro
    Inscrit:
    5 Juin 2006
    Messages:
    16 686
    J'aime reçus:
    154
    En fait ça serait bien si tu mettais tout ton code d'un seul coup ^^
     
  11. salva
    salva WRInaute accro
    Inscrit:
    16 Avril 2006
    Messages:
    3 425
    J'aime reçus:
    0
    Le voici :)
    Code:
    <?php
    try
    {
        $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
        $bdd = new PDO('mysql:host=localhost;dbname=xxxxxx', 'xxxxxxx', '', $pdo_options);
        $num_cat = $row->category;
    
        $reponse = $bdd->query('SELECT * FROM ma_table WHERE date_creation BETWEEN date(now() - INTERVAL 12 month) AND now() ORDER BY RAND() LIMIT 3');
    
        while ($row1 = $reponse->fetch())
        {
        ?>
            <div>
            <?php
            $num_ad1 = $row1['id'];
            $cat_ad1 = $row1['category'];
            $titre_ad1 = $row1['title'];
            $prix_ad = $row1['price'];
              if((file_exists($_SERVER{'DOCUMENT_ROOT'}."/images/".$num_ad1."a_t.jpg"))&&($cat_ad1 == $num_cat))
                 {
                   echo "<a href='http://www.example.com/$num_ad1/catid,".$cat_ad1."/'>";
                   echo '<img src="http://www.example.com/images/'.$num_ad1.'a_t.jpg" border="0" alt="" /></a>';
                 }
              else
                 {
                   echo "<a href='http://www.example.com/$num_ad1/catid,".$cat_ad1."/'>";
                   echo '<img src="http://www.example.com//images/nopic.gif" border="0" alt="" /></a>';
                 }
               ?>
            <a href="http://www.example.com/,<? echo $num_ad1; ?>/catid,<? echo $cat_ad1; ?>/" title="<? echo $titre_ad1; ?>"><? echo $titre_ad1; ?></a>
            <span style="font-weight: bold;"><? echo $prix_ad; ?> €</span>
            </div>
        <?php
        }
        $reponse->closeCursor(); // Termine le traitement de la requête
    }
    catch(Exception $e)
    {
        die('Erreur : '.$e->getMessage());
    }
    ?>
    Basez-vous sur ce dernier code (qui est nettoyé).
     
  12. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 161
    J'aime reçus:
    338
  13. Marie-Aude
    Marie-Aude WRInaute accro
    Inscrit:
    5 Juin 2006
    Messages:
    16 686
    J'aime reçus:
    154
    et il vient d'où le $row qui est utilisé en haut pour $num_cat ?

    Parce que ça devrait marcher non ?
     
  14. salva
    salva WRInaute accro
    Inscrit:
    16 Avril 2006
    Messages:
    3 425
    J'aime reçus:
    0
    Il s'agit de la catégorie récupérée sur la page courante. C'est elle qui doit me servir pour effectuer la condition.

    Sinon idem, l'affichage réagit normalement comme si la condition n'existait pas. C'est-à-dire, mes 3 annonces s'affichent bien mais ne sont pas issues de la même catégorie que l'annonce de la page courante (la page courante où les 3 annonces s'affichent).

    Merci, je vais y jeter un oeil.
     
  15. salva
    salva WRInaute accro
    Inscrit:
    16 Avril 2006
    Messages:
    3 425
    J'aime reçus:
    0
    J'ai résolu en partie mon problème en modifiant la requête comme ci-dessous
    Code:
    $reponse = $bdd->query("SELECT * FROM ma_table WHERE category=".$num_cat." ORDER BY RAND() LIMIT 3");
    Pas plus mal finalement si le where sur la date de création est absent.

    Merci Marie-Aude et merci spout :wink:
     
Chargement...
Similar Threads - [PHP] Requête PDO Forum Date
[PHP] Requête très lente Développement d'un site Web ou d'une appli mobile 22 Septembre 2012
[PHP] Webservice SOAP - Requête XML et type complexe ? Développement d'un site Web ou d'une appli mobile 5 Août 2009
[PHP] moteur de recherche interne, requête insensible aux accents Administration d'un site Web 7 Avril 2009
[PHP] : compter le nombre de requêtes MySQL Développement d'un site Web ou d'une appli mobile 4 Décembre 2008
[php] Utiliser preg_replace sur requete $_SERVER Développement d'un site Web ou d'une appli mobile 8 Octobre 2006
Astuce [PHP] Récolter ville, pays du visiteur Développement d'un site Web ou d'une appli mobile 9 Mars 2021
[PHP] Détecter le navigateur / bot en fonction du HTTP_USER_AGENT Développement d'un site Web ou d'une appli mobile 14 Septembre 2019
[PHP] Détecter le navigateur / bot en fonction du HTTP_USER_AGENT Développement d'un site Web ou d'une appli mobile 12 Janvier 2017
[PHP] Cookie vide dans une fonction, complet juste avant ou après Développement d'un site Web ou d'une appli mobile 25 Novembre 2014
[php] Cookie d'un domaine vers un sous-domaine Développement d'un site Web ou d'une appli mobile 29 Août 2014
[PHP]Cci mails Développement d'un site Web ou d'une appli mobile 18 Août 2014
[PHP] gethostbyname Développement d'un site Web ou d'une appli mobile 15 Février 2014
[PHP] file_get_contents retourne un "Connection timed out" Développement d'un site Web ou d'une appli mobile 14 Février 2014
[PHP] Regex Complexe Développement d'un site Web ou d'une appli mobile 29 Octobre 2013
[PHP] Formulaire dynamique Développement d'un site Web ou d'une appli mobile 2 Mai 2013
[php] error suite à code antiduplication Développement d'un site Web ou d'une appli mobile 5 Février 2013
[PHP] Condition et include Développement d'un site Web ou d'une appli mobile 31 Janvier 2013
[PHP] comprendre ce code pour pseudo-frame Développement d'un site Web ou d'une appli mobile 28 Décembre 2012
[PHP] Question technique Regex Développement d'un site Web ou d'une appli mobile 28 Juillet 2012
[PHP] file_get_contents sur le serveur même... Développement d'un site Web ou d'une appli mobile 9 Juillet 2012