Une petite aide pour un select en php

Résolu
bonjour a tous
je suis occupé d essayer d améliorer mon site sur la pêche

le principe est le suivant chaque pêcheur peux rentrer sa journée de pêche
et y déposer des photos
dans ma base de donnée j ai donc un ID (id_img)
diffèrent pour chaque journée de pèche de chaque pécheur

si le pécheur A poste des images le 01juin
dans ma base de donnée toutes les photos du pêcheur A auront par exemple l id_img qui va correspondre a 28
si le même pêcheur reposte des images pour la journée du 02 juin
dans ma base de donnée toutes les photos du pêcheur A auront par exemple l id_img qui va correspondre a 68

donc je souhaite compter combien de photos le pêcheur A a poster le 01 juin par exemple

Cela serait il correct ?


$req = $bdd->prepare('select count(*) as nb FROM galerie_images  WHERE id_img=?');
$req->execute(array($_GET['id_img']);

   $data = $res->fetch();
  $nb = $data['nb'];

 <strong>le nombre d image postée pour cette sortie    </strong><?php echo $nb; ?><br /><br />


en partant de cet exemple

$req = $bdd->prepare('SELECT nom, prix FROM jeux_video WHERE possesseur = ?  AND prix <= ? ORDER BY prix');
$req->execute(array($_GET['possesseur'], $_GET['prix_max']));

echo '<ul>';
while ($donnees = $req->fetch())
{
	echo '<li>' . $donnees['nom'] . ' (' . $donnees['prix'] . ' EUR)</li>';
}
echo '</ul>';

$req->closeCursor();

7 réponses

  1. Modérateur
    Bonjour
    Oui.

    Mais par contre je ne vois pas le rapport avec le second code...
    1. bonjour jordane
      merci pour la reponse

      en fait c était juste pour montrer sur quoi j étais parti ...

      mais malheureusement mon code ne fonctionne pas

      j ai cette erreur qui apparaît sur ma page qui me dit que je n ai pas de variable définie
      je devrais peut être indiquer

      $id='id_img'
      et ensuite me servir de $id dans le GET

      Notice: Undefined variable: bdd in /storage/ssd4/760/16000760/public_html/nosignal/journee-peche/form-fichier.php on line 82

      Fatal error: Uncaught Error: Call to a member function prepare() on null in /storage/ssd4/760/16000760/public_html/nosignal/journee-peche/form-fichier.php:82 Stack trace: #0 {main} thrown in /storage/ssd4/760/16000760/public_html/nosignal/journee-peche/form-fichier.php on line 82
      1. Modérateur
        Il te dit surtout qu'il ne trouve pas la variable BDD...
        As-tu mis le fichier de connexion à la base de données ?
    2. en effet j avais oublie de la mettre

      merci jordane
      mais j ai une nouvelle erreur

      et cette fois ci on parle bien de id_img

      Notice: Undefined index: id_img in /storage/ssd4/760/16000760/public_html/nosignal/journee-peche/form-fichier.php on line 81

      Notice: Undefined variable: res in /storage/ssd4/760/16000760/public_html/nosignal/journee-peche/form-fichier.php on line 83

      Fatal error: Uncaught Error: Call to a member function fetch() on null in /storage/ssd4/760/16000760/public_html/nosignal/journee-peche/form-fichier.php:83 Stack trace: #0 {main} thrown in /storage/ssd4/760/16000760/public_html/nosignal/journee-peche/form-fichier.php on line 83
      1. Modérateur
        On en revient à ce que je t'explique depuis des mois ...

        On récupère PROPREMENT les variables AVANT de les utiliser
        Sans oublier de placer CHAQUE requête dans un bloc TRY/CATCH

        et puis faut relire ton code et mettre les bons noms de variable si tu veux que ça marche... $req et non $res ...

        Donc
        $id_img = !empty($_GET['id_img']) ? $_GET['id_img']: NULL;
        if(!$id_img){
          echo " Aucun ID passé dans l'URL ...";
          exit;
        }
        
        $sql = 'select count(*) as nb FROM galerie_images  WHERE id_img=?';
        $datas = [$id_img]
        try{
           $req = $bdd->prepare($sql);
           $req->execute($datas);
           $res = $req->fetch();
            $nb = !empty($res) ? $res['nb'] : 0;
        }catch(Exception $e){
          echo "Erreur " . $e->getMessage();
          print_r($datas);
        }
        
        echo "<strong>le nombre d'images postées pour cette sortie  :  </strong>".$nb."<br /><br />";
        
        
        1. merci jordane pour la correction
          oui c est juste
          cette fois je en suis plus pardonnable avec la récupération des variables proprement

          j ai donc rectifier

          mais il me retourne ceci
          Aucun ID passé dans l'URL ...

          alors qu il y a 2 photos
          1. Modérateur
            Tu peux me coller l'url exacte que tu as dans ton navigateur lorsque tu affiches cette page ?
        2. voici jordane
          https://accessible-preparat.000webhostapp.com/nosignal/journee-peche/form-fichier.php?pseudo=phil1&id=85

          tiens c est bizarre le id correspond bien a celui des photos
          faudrait remplacer le id_img par id ....

          dans ma base de données j ai
          id
          et
          id_img
          1. Modérateur
            On s'en fout des champs que tu as dans ta base de données...
            Le souci c'est le nom de la variable dans l' url et le fait que tu n'utilise pas cette variable dans la ligne qui permet de récupérer les variables...

            Faut juste modifier la ligne comme ceci

            $id_img = !empty($_GET['id']) ? $_GET['id']: NULL;
        3. super jordane cela fonctionne

          ah ok ben tu vois je viens encore d apprendre des choses

          encore un tres grand merci

          bonne nuit