[RESOLU] Changer l'ID suivant le lien

Eléphanteau du PHP | 14 Messages

07 déc. 2012, 11:36

Bonjour,

Je suis en train de coder mon site HTML / CSS en PHP mais je n'arrive pas à réaliser le changement d'ID.

En faite dans ma page cine.php , j'ai une liste d'article concernant des critiques de cinéma.
Puis j'ai une page art1.php qui comprend mon premier article. ( les données récupérer dans cette page dépendent de l'ID )

Code : Tout sélectionner

$reponse = $bdd->query('SELECT * FROM cine WHERE id=\'1\''); while ($donnees = $reponse->fetch())
En faite je voudrais que dans la page cine.php , mes liens ressemble à cela :

Code : Tout sélectionner

www.""""".fr/article/art1.php www.""""".fr/article/art2.php www.""""".fr/article/art3.php www.""""".fr/article/art4.php
Quand le chiffre de mon article change , je souhaiterais que le paramètre id dans la ligne ci dessous évolue de la même façon ce qui me permettra d'avoir une seule page modèle art1.php qui évoluera suivant le lien sélectionner.

Code : Tout sélectionner

$reponse = $bdd->query('SELECT * FROM cine WHERE id=\'1\'');
  • www.""""".fr/article/art1.php => Renvoi vers :

    Code : Tout sélectionner

    $reponse = $bdd->query('SELECT * FROM cine WHERE id=\'1\'');
  • www.""""".fr/article/art2.php => Renvoi vers :

    Code : Tout sélectionner

    $reponse = $bdd->query('SELECT * FROM cine WHERE id=\'2\'');
  • www.""""".fr/article/art3.php => Renvoi vers :

    Code : Tout sélectionner

    $reponse = $bdd->query('SELECT * FROM cine WHERE id=\'3\'');
  • www.""""".fr/article/art4.php => Renvoi vers :

    Code : Tout sélectionner

    $reponse = $bdd->query('SELECT * FROM cine WHERE id=\'4\'');
Merci d'avance pour vos conseils

ViPHP
xTG
ViPHP | 7331 Messages

07 déc. 2012, 12:02

Je ne suis pas sûr d'avoir tout compris.
Tu as une page par article avec le même code ?
Tu as une seule page et une réécriture d'url ?

1) à bannir, mieux vaut aller vers le cas 2.
2) quelle est la variable récupérant l'id ? $_GET['id'] ? Auquel cas c'est cette variable qu'il faut utiliser dans ta requête générique.

Et si tu ne veux pas aborder tout de suite la réécriture d'url rien ne t'empêche d'utiliser les arguments.

Code : Tout sélectionner

www.""""".fr/article/art.php?id=1 www.""""".fr/article/art.php?id=2 www.""""".fr/article/art.php?id=3 www.""""".fr/article/art.php?id=4 www.""""".fr/article/art.php?id=5
$reponse = $bdd->query('SELECT * FROM cine WHERE id=\'' . $bdd->quote($_GET['id']) . '\'');
while ($donnees = $reponse->fetch())

Eléphanteau du PHP | 14 Messages

07 déc. 2012, 14:55

Bonjour xTG ,

Voilà ce que je viens de mettre en place :

En lien =>

Code : Tout sélectionner

http://127.0.0.1/php/article/art.php?id=3
Ensuite dans ma page art.php je mets :
$id = intval($_GET['id']);
$reponse = $bdd->query('SELECT * FROM cine WHERE id=' . $id);
Pour l'instant cela fonctionne ^^

ViPHP
xTG
ViPHP | 7331 Messages

07 déc. 2012, 15:36

Vérifies aussi que la variable $_GET['id'] existe (isSet()) avant de l'utiliser. ;)

Eléphanteau du PHP | 14 Messages

07 déc. 2012, 20:16

MErci du conseil , petite question : il n'y a pas de risque a avoir les informations de ma base de données dans la page ?
<?php try  { 	$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', ''); } catch(Exception $e) {  die('Erreur : '.$e->getMessage()); } $id = intval($_GET['id']);   $reponse = $bdd->query('SELECT * FROM cine WHERE id=' . $id); while ($donnees = $reponse->fetch()) { ?>

ViPHP
xTG
ViPHP | 7331 Messages

07 déc. 2012, 21:23

A moins que tu ais une faille d'upload qui permettrai à un utilisateur de mettre un script de son choix sur ton ftp non.

Eléphanteau du PHP | 14 Messages

08 déc. 2012, 14:11

Je suis rassuré car le fait d'avoir les identifiants de ma base données au début sa ma inquiété.