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. super jordane cela fonctionne

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

    encore un tres grand merci

    bonne nuit
    1. 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;
    2. 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 ?
    3. 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. 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. 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. Modérateur
          Bonjour
          Oui.

          Mais par contre je ne vois pas le rapport avec le second code...