Transmission d'une de la valeur d'une variable par $_GET

Signaler
Messages postés
1
Date d'inscription
vendredi 7 avril 2017
Statut
Membre
Dernière intervention
7 avril 2017
-
Messages postés
32986
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 juin 2021
-
Bonjour, je suis nouveau sur le forum

Depuis hier je suis confronté à un problème dans mon code php.

En fait j'ai une page index qui affiche plusieurs membres inscrits

sur mon site. Sur la page index.php est affichées seulement quelques information du membre. Une autre page (afficherprofil.php) permettra d'afficher le reste des information du membre.

Alors j'ai fais juste une illustration pour tester si le code du membre s'affiche mais ça ne fonctionne pas et je ne comprend pas où se trouve l'erreur. Voici le code commenté.
<?php

//Voici la ligne qui est dans le fichier index.php

.'<td><?php

//Voici la ligne qui est le fichier index

.'<td><a href="afficherprofil.php?search='.$data['codemembre'].'" rel="nofollow noopener noreferrer" target="_blank">Voir Plus</a></td>'


//Voici la ligne qui est le fichier afprofil

//connexion à la bd
include('connexiondb.php');

//tansmission de la variable par l'url
$codemembre=$_GET['search'];

//requete sql pour recupérer toutes les valeurs à afficher

$requete = $bdd -> query('SELECT * FROM membre WHERE codemembre="$codemembre"');
$data = $requete -> fetch();


$code_final= $data['codemembre'];

echo $code_final;
?>


Merci de bien vouloir m'aider.

1 réponse

Messages postés
32986
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 juin 2021
351
Bonjour,

Déjà ... récupère "PROPREMENT" les variables GET (idem pour POST / SESSION / COOKIE ....)
via l'écrite ternaire (qui remplace un IF ) et la vérification !empty
comme ceci :
$codemembre = !empty($_GET['search']) ? $_GET['search'] : NULL;


Ensuite, vu que tu utilises PDO, active la gestion des erreurs :
http://www.commentcamarche.net/faq/46512-pdo-gerer-les-erreurs

Puis, pour tes requêtes, place les dans des blocs TRY/CATCH
$sql = " SELECT * FROM membre WHERE codemembre='$codemembre'";
try{
  $requete = $bdd->query($sql);
  $data = $requete->fetch();
}catch{Exception $e){
  echo "Erreur : ". $e->getMessage');
}



NB : attention à l'utilisation des simples quotes et doubles quotes ...
ceci :

//ici la variable $codemembre est interpreté
"SELECT * FROM membre WHERE codemembre='$codemembre'"


N'est pas la même chose que :
//ici la variable $codemembre N'est pas interpreté
'SELECT * FROM membre WHERE codemembre="codemembre"'