Comment faire des liens vers une page
Résolu
mobrobot
Messages postés
173
Date d'inscription
Statut
Membre
Dernière intervention
-
mobrobot Messages postés 173 Date d'inscription Statut Membre Dernière intervention -
mobrobot Messages postés 173 Date d'inscription Statut Membre Dernière intervention -
Bonsoir s'il vous plait je n'arrive pas à donner chacune des nom qui se trouve dans ma table jeux un lien qui va permettre de faire a chaque clic d'un nom jeux qu'il se redirige vers sa page de téléchargement
résultats de recherche
need for speed clic redirection vers sa page de téléchargement
grand thef auto clic redirection vers sa page de téléchargement
voici mon code
résultats de recherche
need for speed clic redirection vers sa page de téléchargement
grand thef auto clic redirection vers sa page de téléchargement
voici mon code
<!Doctype html> <html> <head> <title>Recherche de donnees</title> <meta charset="utf-8"> </head> <body> <form method="GET" > <input type="search" name="g" placeholder="Recherche" /> <input type="submit" value=">>" /> </form> <?php //Connexion à la base donnees try{ $bdd = new PDO('mysql:host=localhost;dbname=recherche_data', 'root', ''); } catch(PDOExeption $e){ die('Erreur : ' .$e->getMessage()); } $req = $bdd->query("SELECT * FROM mobmeedata "); if(isset($_GET['g']) ) { $q = htmlspecialchars($_GET['g']); $req = $bdd->query('SELECT id, jeux FROM mobmeedata WHERE jeux LIKE "%'.$g.'%"'); if($req->rowCount() == 0) { $req = $bdd->query('SELECT * FROM mobmeedata WHERE id = $id " '); } if(!empty($_GET['g'])){ }else{ echo "Le champ doit être remplir"; } } ?> <?php if($req->rowCount() > 0) { ?> <ul> <?php while($a = $req->fetch()) { ?> <li><a href="page1.php?$id="><?= $a['jeux'] ?></a></li> <?php } ?> </ul> <?php } else{ ?> <b style="color:darkred">Auccun resultat pour <?= $g ?> <?php }?> <style> body{ background: steelblue; text-align: center; } </style> </body> </html>
A voir également:
- Comment faire des liens vers une page
- Comment supprimer une page sur word - Guide
- Créer un lien pour partager des photos - Guide
- Comment imprimer un tableau excel sur une seule page - Guide
- Comment créer une page facebook - Guide
- Comment traduire une page - Guide
9 réponses
Bonjour,
Il y a beaucoup de choses à dire sur ton code....
Je t'invite fortement à lire (en totalité) ceci:
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
puis ceci
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
et surtout....d'appliquer ce qui y est marqué.
Par exemple :
1 - Mettre la connexion à la bdd dans un fichier à part que tu n'auras qu'à inclure dans tes page
2 - Placer un maximum de code php AVANT le html
- Placer ses styles dans un fichier css
- Récupérer PROPREMENT les variables AVANT de les utiliser
- Ne pas utiliser rowCount pour connaitre le nombre de résultats d'un SELECT. (pour ça faire un count)
- htmlspecialchar ne s'utilise QUE pour l'affichage... à aucun moment pour faire une requête
- Tu utilises PDO.. donc autant utiliser les requêtes préparées
- Ton lien n'est pas bon : $id= .. que fait ce dollar ici ?
Bref, voici à quoi devrait ressembler ton code
fichier : style.css
Le code de ta page :
Il y a beaucoup de choses à dire sur ton code....
Je t'invite fortement à lire (en totalité) ceci:
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
puis ceci
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
et surtout....d'appliquer ce qui y est marqué.
Par exemple :
1 - Mettre la connexion à la bdd dans un fichier à part que tu n'auras qu'à inclure dans tes page
<?php /** * fichier : cnxBdd.php */ //Connexion à la base donnees try{ $bdd = new PDO('mysql:host=localhost;dbname=recherche_data', 'root', '');// Activation des erreurs PDO $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); } catch(PDOException $e) { die('Erreur : ' . $e->getMessage()); } //fonction pour effectuer des requêtes SELECT function querySelect($sql,$datas){ global $bdd; try{ $req = $bdd -> prepare($sql) ; $req->execute() ; $resultat = $req->fetchAll(); }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); echo " Les datas : " ; print_r($datas); } return !empty($resultat) ? $resultat : NULL; }
2 - Placer un maximum de code php AVANT le html
- Placer ses styles dans un fichier css
- Récupérer PROPREMENT les variables AVANT de les utiliser
- Ne pas utiliser rowCount pour connaitre le nombre de résultats d'un SELECT. (pour ça faire un count)
- htmlspecialchar ne s'utilise QUE pour l'affichage... à aucun moment pour faire une requête
- Tu utilises PDO.. donc autant utiliser les requêtes préparées
- Ton lien n'est pas bon : $id= .. que fait ce dollar ici ?
Bref, voici à quoi devrait ressembler ton code
fichier : style.css
body{ background: steelblue; text-align: center; } .form{ display:inline-block; margin:5px; } .form input{ float:left; }
Le code de ta page :
<?php //-------------------------------------// //Affichage des erreurs PHP //-------------------------------------// error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); //-------------------------------------// //connexion à la bdd //-------------------------------------// require_once "cnxBdd.php"; //fonctions function getJeuxById($id){ $sql = 'SELECT * FROM mobmeedata WHERE id = :id " '; $datas = array(':id'=>$id); return querySelect($sql,$datas); } function getJeuxByName($g){ $sql = 'SELECT id, jeux FROM mobmeedata WHERE jeux LIKE "%'.$g.'%"'; return querySelect($sql,$datas); } //-------------------------------------// //récupération PROPRE des variables AVANT de les utiliser //-------------------------------------// $g = !empty($_GET['g']) ? $_GET['g'] : NULL; $id = !empty($_GET['id']) ? $_GET['id'] : NULL; //-------------------------------------// //traitement du formulaire //-------------------------------------// if(isset($_GET['search']){ if($g) { //recherche par le nom du jeux $resultat = getJeuxByName($g); if(!$resultat && $id) { //recherche par son id $resultat = getJeuxById($id); } }else{ $msg = "Le champ doit être remplir"; } //on compte le nombre de résultats $nbResult = !empty($resultat) ? count($resultat) : 0; } ?> <!Doctype html> <html> <head> <title>Recherche de donnees</title> <meta charset="utf-8"> <!-- on inclus le css --> <link rel="stylesheet" href="style.css" /> </head> <body> <div id='form' class='form'> <form method="GET" action=""> <input type="hidden" name="search" value="s"> <input type="search" name="g" placeholder="Recherche" /> <input type="submit" value=">>" /> </form> </div> <div class="affichage"> <?php if($nbResult > 0) { echo "<ul>"; foreach($resultat as $a){ echo '<li><a href="page1.php?id="'.$a['id'].'">'.htmlspecialchars($a['jeux']).'</a></li>'; } echo "</ul>"; }else{ $msg = "Auccun resultat pour " . $g; } if(!empty($msg)){ echo '<b style="color:darkred">'.$msg.'</b>'; } ?> </div> </body> </html>
c'est quoi ça ???
c'est mieux avec un "echo"
<li><a href="page1.php?$id="><?= $a['jeux'] ?></a></li>il en manque un bout non ?
c'est mieux avec un "echo"
<li><a href="page1.php?$id="><?php echo $a['id']; ?></a></li>
Merci beaucoup jordane45 ton code ma bien aidez et à s'avoir aussi de plus sur les PDO.
seulement quand j'effectue une recherche les résultats s'affiche avec erreur suivante
:( ! ) Notice: Undefined variable: datas in C:\wamp\www\mobmee\exercices.php on line 22
voici la line 22
je fais comme tu ma dit j'ai inclus la connexion de bdd sur ma page exercices.php.
pour les liens:
je vois pas comment récupéré mais lien j'ai essayé avec get id sa fonction pas si je clique sur un nom jeux il se rediriger vers la page1.php sa fait la même chose avec les autres nom
seulement quand j'effectue une recherche les résultats s'affiche avec erreur suivante
:( ! ) Notice: Undefined variable: datas in C:\wamp\www\mobmee\exercices.php on line 22
voici la line 22
function getJeuxByName($g){ $sql = 'SELECT id, jeux FROM mobmeedata WHERE jeux LIKE "%'.$g.'%" '; return querySelect($sql,$datas); }
je fais comme tu ma dit j'ai inclus la connexion de bdd sur ma page exercices.php.
pour les liens:
je vois pas comment récupéré mais lien j'ai essayé avec get id sa fonction pas si je clique sur un nom jeux il se rediriger vers la page1.php sa fait la même chose avec les autres nom
<?php echo "<p>".$_GET['id']. "</p>" ; ?>
Pour l'erreur, il suffit de retirer la variable $datas de la ligne incriminée
Pour ton lien.. j'ai gardé celui que tu nous avais donné.
Si tu veux rester sur la même page.. il suffit de remplacer ton lien par ceci:
return querySelect($sql);
Pour ton lien.. j'ai gardé celui que tu nous avais donné.
Si tu veux rester sur la même page.. il suffit de remplacer ton lien par ceci:
echo '<li><a href="'.$_SERVER['PHP_SELF'].'?id="'.$a['id'].'">'.htmlspecialchars($a['jeux']).'</a></li>';
merci il fonction correctement
pour le lien je pense tu ma pas compris , ce que je voudrais faire si j'effectue un recherche sur la formulaire les résultats s'affiche sur ma page exercices.php, maintenant je voudrais donné chacune des résultats
un lien qui le rediriger vers sa page d'information ou téléchargement
par exemple:
on effectue une recherche sur la formulaire de recherche: pes2017
le résultats s'affiche maintenant si je veux télécharger je clic seulement sur pes2017 pour le télécharger
pes2017 --> tu clic sur pes2017 tu te redirige vers sa page d'information ou téléchargement
pes2016 --> tu clic sur pes2016 tu te redirige vers sa page d'information ou téléchargement
call of daty --> tu clic sur call of daty tu te redirige vers sa page d'information ou téléchargement
pour le lien je pense tu ma pas compris , ce que je voudrais faire si j'effectue un recherche sur la formulaire les résultats s'affiche sur ma page exercices.php, maintenant je voudrais donné chacune des résultats
un lien qui le rediriger vers sa page d'information ou téléchargement
par exemple:
on effectue une recherche sur la formulaire de recherche: pes2017
le résultats s'affiche maintenant si je veux télécharger je clic seulement sur pes2017 pour le télécharger
pes2017 --> tu clic sur pes2017 tu te redirige vers sa page d'information ou téléchargement
pes2016 --> tu clic sur pes2016 tu te redirige vers sa page d'information ou téléchargement
call of daty --> tu clic sur call of daty tu te redirige vers sa page d'information ou téléchargement
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
J'ai crée quelque pages pour la redirection
quant on clic sur un nom de jeux
Mais page sont les suivante
page_pes2017.php
page_pes2016.php
page_callofdaty.php
page_needforspeed.php
page_moderncombat5.php
etc...
quant on clic sur un nom de jeux
Mais page sont les suivante
page_pes2017.php
page_pes2016.php
page_callofdaty.php
page_needforspeed.php
page_moderncombat5.php
etc...
sa fonction 5 sur 5 je sait pas commente te remercie merci beaucoup jordane45 et 1000merci pour toi, sa fait 2 semaine comme ça je suis bloquer sur la de-suis je te remercie encore.
enfin... ça t'ovblige à créer autant de page que tu auras de jeux....
Le mieux ça serait de n'avoir qu'une seule page "jeux.php"
à laquelle tu passerais l' ID du jeux et dans laquelle tu irais faire une requête pour récupérer les différentes infos à afficher.
Ton lien deviendrai :
et dans le fichier jeux.php tu aurais
Le mieux ça serait de n'avoir qu'une seule page "jeux.php"
à laquelle tu passerais l' ID du jeux et dans laquelle tu irais faire une requête pour récupérer les différentes infos à afficher.
Ton lien deviendrai :
echo '<li><a href="jeux.php?id="'.$a['id'].'">'.htmlspecialchars($a['jeux']).'</a></li>';
et dans le fichier jeux.php tu aurais
<?php //-------------------------------------// //Affichage des erreurs PHP //-------------------------------------// error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); //-------------------------------------// //connexion à la bdd //-------------------------------------// require_once "cnxBdd.php"; //fonctions function getJeuxById($id){ $sql = 'SELECT * FROM mobmeedata WHERE id = :id '; $datas = array(':id'=>$id); return querySelect($sql,$datas); } //récupération des variables $id = !empty($_GET['id']) ? $_GET['id'] : NULL; //on récupère les infos du jeux $infos = getJeuxById($id); //puis tu afficherais les différentes infos. // par exemple print_r($infos);
ok je vais essayé tu ma sauvez jordane45 merci beaucoup
bonsoir désole pour le retard j'avais une problème de connexion
au faite je me suis trompé je t’envoyer sa l'erreur ne venais pas de la bas.
Bon le problème est que quand je fait un recherche les résultats s'affiche très bien mais quand je clic sur un nom jeux je me redirige vers la page jeux.php et la page s'affiche directement en me disant :
( ! ) Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: no parameters were bound' in C:\wamp\www\datamobmee\dbconnect.php on line 20
( ! ) PDOException: SQLSTATE[HY093]: Invalid parameter number: no parameters were bound in C:\wamp\www\datamobmee\dbconnect.php on line 20
au faite je me suis trompé je t’envoyer sa l'erreur ne venais pas de la bas.
Bon le problème est que quand je fait un recherche les résultats s'affiche très bien mais quand je clic sur un nom jeux je me redirige vers la page jeux.php et la page s'affiche directement en me disant :
( ! ) Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: no parameters were bound' in C:\wamp\www\datamobmee\dbconnect.php on line 20
( ! ) PDOException: SQLSTATE[HY093]: Invalid parameter number: no parameters were bound in C:\wamp\www\datamobmee\dbconnect.php on line 20
j'ai rectifier le lien on m'affiche toujours le même erreur
voici l'url qui sais afficher quand j'ai effectue une recherche sur gta
http://localhost/datamobmee/recherche_donnees.php?search=s&g=grand+thef+auto.
voici l'url sur la quel j'arrive quand je clic sur le jeux gta
http://localhost/datamobmee/game.php?id=
voici l'url qui sais afficher quand j'ai effectue une recherche sur gta
http://localhost/datamobmee/recherche_donnees.php?search=s&g=grand+thef+auto.
voici l'url sur la quel j'arrive quand je clic sur le jeux gta
http://localhost/datamobmee/game.php?id=
j'ai coller le
voici le code exercices.php
voici la page de connexion :
et la page de game.php
print_r($resultat);dans ma boucle sa m'affiche toujours le même erreur.
voici le code exercices.php
<?php // Affichage des erreure PHP error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); // connexion a la base de donnees require_once "dbconnect.php"; // function function getJeuxById($id){ $sql = 'SELECT * FROM mobmeedata WHERE id = :id" '; $datas = array(':id'=>$id); return querySelect($sql); } function getJeuxByName($g){ $sql = 'SELECT id, jeux FROM mobmeedata WHERE jeux LIKE "%'.$g.'%" '; return querySelect($sql); } // Recuperation des variable propre avant des utiliser $g = !empty($_GET['g']) ? $_GET['g'] : NULL; $id = !empty($_GET['id']) ? $_GET['id'] : NULL; // traitement du formulaire if (isset($_GET['search'])){ if($g){ // recherche par le nom du jeux $resultat = getJeuxByName($g); if(!$resultat && $id){ // recherche par son id $resultat = getJeuxById($id); } }else{ echo $msg = "Le champ doit être saisie"; } //on compte le nombre resultats $nbResultat = !empty($resultat) ? count($resultat): 0; } ?> <!doctype html> <html> <head> <title>Exercices de recherche</title> <meta charset="utf-8"> </head> <body> <div id='form_g' class='form_g' > <form method="GET" action=""> <input type="hidden" name="search" value="s"> <input type="search" name="g" placeholder="Recherche" /> <input type="submit" value=">>" /> </form> </div> <?php if($nbResultat > 0){ print_r($resultat); echo "<ul>"; foreach($resultat as $a){ echo '<li><a href="game.php?id="'.$a['id'].'">'.htmlspecialchars($a['jeux']).'</a></li>'; } echo "</ul>"; }else{ $msg = "Accun resultat pour ". $g; } if(!empty($msg)){ echo '<b style="color:darkred">'.$msg.'</b>'; } ?> </body> </html>
voici la page de connexion :
<?php try{ $bdd = new PDO('mysql:host=localhost;dbname=recherche_data', 'root', ''); //Activation des erreurs PDO $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // mode de fetch par défaut: FETCH_ASSOC/FETCH_OBJ / FETCH_BOTH $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); }catch(PDOExeption $e){ die('Errer: '. $e->getMessage()); } function querySelect($sql){ global $bdd; try{ $req = $bdd->prepare($sql); $req->execute(); $resultat = $req->fetchAll(); }catch(Exeption $e){ // en cas d'erreur: echo "Erreur ! ".$e->getMessage(); echo " Les datas : "; print_r($datas); } return !empty($resultat) ? $resultat : NULL; } ?>
et la page de game.php
<?php //Affichage des erreurs PHP error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); //connexion à la bdd require_once "dbconnect.php"; // function function getJeuxById($id){ $sql = 'SELECT * FROM mobmeedata WHERE id = :id" '; $datas = array(':id'=>$id); return querySelect($sql,$datas); } //récupération des variables $id = !empty($_GET['id']) ? $_GET['id'] : NULL; //on récupère les infos du jeux $infos = getJeuxById($id); //puis tu afficherais les différentes infos. // par exemple print_r($infos); ?>
on m'affiche sa à ma première page
Array ( [0] => Array ( [id] => 3 [jeux] => Grand Auto Vice City ) [1] => Array ( [id] => 4 [jeux] => Street figth ) [2] => Array ( [id] => 6 [jeux] => Grand Thef Auto 5 ) [3] => Array ( [id] => 7 [jeux] => City Racing 2017 ) [4] => Array ( [id] => 9 [jeux] => Game of thrones ) )
désole pour le lien j'avais crue de l’avoir mettre dans ma page exercices.php mais ce le contraire que j'ai fait je lui est mis dans une page qui avais les même code que l'autre
Array ( [0] => Array ( [id] => 3 [jeux] => Grand Auto Vice City ) [1] => Array ( [id] => 4 [jeux] => Street figth ) [2] => Array ( [id] => 6 [jeux] => Grand Thef Auto 5 ) [3] => Array ( [id] => 7 [jeux] => City Racing 2017 ) [4] => Array ( [id] => 9 [jeux] => Game of thrones ) )
désole pour le lien j'avais crue de l’avoir mettre dans ma page exercices.php mais ce le contraire que j'ai fait je lui est mis dans une page qui avais les même code que l'autre