Une petite aide pour un select en php [Résolu]

Signaler
Messages postés
2901
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
9 juin 2021
-
Messages postés
2901
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
9 juin 2021
-
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

Messages postés
32934
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
10 juin 2021
3 553
Bonjour
Oui.

Mais par contre je ne vois pas le rapport avec le second code...
Messages postés
2901
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
9 juin 2021
138
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
Messages postés
32934
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
10 juin 2021
3 553
Il te dit surtout qu'il ne trouve pas la variable BDD...
As-tu mis le fichier de connexion à la base de données ?
Messages postés
2901
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
9 juin 2021
138
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
Messages postés
32934
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
10 juin 2021
3 553
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 />";

Messages postés
2901
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
9 juin 2021
138
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
Messages postés
32934
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
10 juin 2021
3 553
Tu peux me coller l'url exacte que tu as dans ton navigateur lorsque tu affiches cette page ?
Messages postés
2901
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
9 juin 2021
138
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
Messages postés
32934
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
10 juin 2021
3 553
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;
Messages postés
2901
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
9 juin 2021
138
super jordane cela fonctionne

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

encore un tres grand merci

bonne nuit