Problème $_GET + BDD
Résolu
killermano66
Messages postés
233
Date d'inscription
Statut
Membre
Dernière intervention
-
killermano66 Messages postés 233 Date d'inscription Statut Membre Dernière intervention -
killermano66 Messages postés 233 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
J'essaie de construire une structure pour un site web avec la méthode GET affin de me faciliter la tâche lors de futures modifications. Tout fonctionne très bien au niveau de l'affichage des pages de base, je vous met le script ici même :
<div>
MON MENU :
<a href="index.php?page=news">News</a>
<a href="index.php?page=articles">Articles</a>
<a href="index.php?page=forums">Forums</a>
<a href="index.php?page=medias">Medias</a><br /><br /><br />
<div>
<div>
CONTENUE DES PAGES DU MENU :<br />
<?php
$id = intval($_GET["id"]);
if ($_GET['page'] == "news") {include("news.php");}
if ($_GET['page'] == "articles") {include("articles/main.php");}
if ($_GET['page'] == "forums") {include("forums.php");}
if ($_GET['page'] == "medias") {include("medias.php");}
?>
</div>
Voilà donc jusqu'ici, tout va très bien. Mon soucis vient au niveau de la page articles\main.php. Je veux y inclure le contenu d'une base de donnée. Mon staff ayant la possibilité de poster ses articles par le biais de formulaire incluant les données dans une base de données. Les données étant triés par id j'aimerais afficher mes articles avec une url du genre
index.php?page=article?id=2
qui irait donc chercher l'article portant l'id 2 dans ma base de données et l'afficherais dans la partie CONTENUE DES PAGES DU MENU sans bien sur me virer le MENU.
Je vous met le contenue de ma page /articles/main.php :
<?php
include('connection.php');
$requete_selection = mysql_query('SELECT * FROM articles') or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
while ($donnees = mysql_fetch_array($requete_selection)){
echo '<a href="index.php?page=article?id='.$donnees['id'].'">';
echo $donnees['titre'] . '</a>' . ' ' . 'écrit par ';
echo $donnees['auteur'] . '<br />';
}
?>
Donc la je suis bien conscient que le problème vient d'ici : ?id='.$donnees['id'].'">';
Mais je n'arrives pas à le résoudre, quand je clique sur le liens de mes articles, je reste sur la base de la page index.php avec mon menu etc ... mais l'article n'est pas présent (je peux vous certifier que celàa ne vient pas d'un problème de BDD car les articles s'affichent bien un a un). Je fais donc appel à vos lumières, en espérant trouver une réponse en attendant, je vous remercies de votre attention ;)
Cordialement,
J'essaie de construire une structure pour un site web avec la méthode GET affin de me faciliter la tâche lors de futures modifications. Tout fonctionne très bien au niveau de l'affichage des pages de base, je vous met le script ici même :
<div>
MON MENU :
<a href="index.php?page=news">News</a>
<a href="index.php?page=articles">Articles</a>
<a href="index.php?page=forums">Forums</a>
<a href="index.php?page=medias">Medias</a><br /><br /><br />
<div>
<div>
CONTENUE DES PAGES DU MENU :<br />
<?php
$id = intval($_GET["id"]);
if ($_GET['page'] == "news") {include("news.php");}
if ($_GET['page'] == "articles") {include("articles/main.php");}
if ($_GET['page'] == "forums") {include("forums.php");}
if ($_GET['page'] == "medias") {include("medias.php");}
?>
</div>
Voilà donc jusqu'ici, tout va très bien. Mon soucis vient au niveau de la page articles\main.php. Je veux y inclure le contenu d'une base de donnée. Mon staff ayant la possibilité de poster ses articles par le biais de formulaire incluant les données dans une base de données. Les données étant triés par id j'aimerais afficher mes articles avec une url du genre
index.php?page=article?id=2
qui irait donc chercher l'article portant l'id 2 dans ma base de données et l'afficherais dans la partie CONTENUE DES PAGES DU MENU sans bien sur me virer le MENU.
Je vous met le contenue de ma page /articles/main.php :
<?php
include('connection.php');
$requete_selection = mysql_query('SELECT * FROM articles') or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
while ($donnees = mysql_fetch_array($requete_selection)){
echo '<a href="index.php?page=article?id='.$donnees['id'].'">';
echo $donnees['titre'] . '</a>' . ' ' . 'écrit par ';
echo $donnees['auteur'] . '<br />';
}
?>
Donc la je suis bien conscient que le problème vient d'ici : ?id='.$donnees['id'].'">';
Mais je n'arrives pas à le résoudre, quand je clique sur le liens de mes articles, je reste sur la base de la page index.php avec mon menu etc ... mais l'article n'est pas présent (je peux vous certifier que celàa ne vient pas d'un problème de BDD car les articles s'affichent bien un a un). Je fais donc appel à vos lumières, en espérant trouver une réponse en attendant, je vous remercies de votre attention ;)
Cordialement,
34 réponses
J'ai testé les deux dans le doute et ça ne change absolument rien l'erreur revient dans les deux cas. J'y compred quedale. Merci.
Je reprend donc
===================
INDEX.PHP
===================
=============
articles/main.php
=============*
===================
INDEX.PHP
===================
<?php if ($_GET['page'] == "news") {include("http://www.rpg-z.com/get_test/news.php");} if ($_GET['page'] == "articles") { if(isset($_GET['id'])) { include('http://www.rpg-z.com/get_test/articles/main.php?id=' . $_GET['id'] ); } else { include("http://www.rpg-z.com/get_test/articles/main.php"); } } if ($_GET['page'] == "forums") {include("http://www.rpg-z.com/get_test/forums.php");} if ($_GET['page'] == "medias") {include("http://www.rpg-z.com/get_test/medias.php");} ?>
=============
articles/main.php
=============*
<?php include('ici ladresse absolue de la page de connexion'); if(isset($_GET['id']){ //si la variable id existe $id = $_GET['id']; // je cree une variable qui sapel id qui a pour valeur l'id en parametre dans l'URL $requete_selection = mysql_query('SELECT * FROM articles WHERE id="$id"') or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); $donnees = mysql_fetch_array($requete_selection); echo $donnees['contenu']; echo $donnees['auteur'] . '<br />'; mysql_close(); } else { include('ici aussi ladresse absolue de la page de connexion a la base'); $requete_selection = mysql_query('SELECT * FROM articles') or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); while ($donnees = mysql_fetch_array($requete_selection)){ echo '<a href="index.php?page=articles&id='.$donnees["id"].' ">'; echo $donnees['titre'] . '</a>' . ' ' . 'écrit par '; echo $donnees['auteur'] . '<br />'; } mysql_close(); } ?>
Alors la c'est pire en mettant les url absolue même les autres liens déconnent pourtant ils sont bon.
http://www.rpg-z.com/get_test/index.php?page=news
code index.php :
<div>
MON MENU :
<a href="index.php?page=news">News</a>
<a href="index.php?page=articles">Articles</a>
<a href="index.php?page=forums">Forums</a>
<a href="index.php?page=medias">Medias</a><br /><br /><br />
<div>
<div>
CONTENUE DES PAGES DU MENU :<br />
<?php
if ($_GET['page'] == "news") {include("http://www.rpg-z.com/get_test/news.php");}
if ($_GET['page'] == "articles")
{
if(isset($_GET['id']))
{
include('http://www.rpg-z.com/get_test/articles/main.php?id=' . $_GET['id'] );
}
else { include("http://www.rpg-z.com/get_test/articles/main.php"); }
}
if ($_GET['page'] == "forums") {include("http://www.rpg-z.com/get_test/forums.php");}
if ($_GET['page'] == "medias") {include("http://www.rpg-z.com/get_test/medias.php");}
?>
</div>
code articles/main.php :
<?php
include('http://www.rpg-z.com/get_test/connection.php');
if(isset($_GET['id']){ //si la variable id existe
$id = $_GET['id']; // je cree une variable qui sapel id qui a pour valeur l'id en parametre dans l'URL
$requete_selection = mysql_query('SELECT * FROM articles WHERE id="$id"') or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$donnees = mysql_fetch_array($requete_selection);
echo $donnees['contenu'];
echo $donnees['auteur'] . '<br />';
mysql_close();
}
else {
include('http://www.rpg-z.com/get_test/connection.php');
$requete_selection = mysql_query('SELECT * FROM articles') or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
while ($donnees = mysql_fetch_array($requete_selection)){
echo '<a href="index.php?page=articles&id='.$donnees["id"].' ">';
echo $donnees['titre'] . '</a>' . ' ' . 'écrit par ';
echo $donnees['auteur'] . '<br />';
}
mysql_close();
}
?>
Merci encore.
http://www.rpg-z.com/get_test/index.php?page=news
code index.php :
<div>
MON MENU :
<a href="index.php?page=news">News</a>
<a href="index.php?page=articles">Articles</a>
<a href="index.php?page=forums">Forums</a>
<a href="index.php?page=medias">Medias</a><br /><br /><br />
<div>
<div>
CONTENUE DES PAGES DU MENU :<br />
<?php
if ($_GET['page'] == "news") {include("http://www.rpg-z.com/get_test/news.php");}
if ($_GET['page'] == "articles")
{
if(isset($_GET['id']))
{
include('http://www.rpg-z.com/get_test/articles/main.php?id=' . $_GET['id'] );
}
else { include("http://www.rpg-z.com/get_test/articles/main.php"); }
}
if ($_GET['page'] == "forums") {include("http://www.rpg-z.com/get_test/forums.php");}
if ($_GET['page'] == "medias") {include("http://www.rpg-z.com/get_test/medias.php");}
?>
</div>
code articles/main.php :
<?php
include('http://www.rpg-z.com/get_test/connection.php');
if(isset($_GET['id']){ //si la variable id existe
$id = $_GET['id']; // je cree une variable qui sapel id qui a pour valeur l'id en parametre dans l'URL
$requete_selection = mysql_query('SELECT * FROM articles WHERE id="$id"') or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$donnees = mysql_fetch_array($requete_selection);
echo $donnees['contenu'];
echo $donnees['auteur'] . '<br />';
mysql_close();
}
else {
include('http://www.rpg-z.com/get_test/connection.php');
$requete_selection = mysql_query('SELECT * FROM articles') or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
while ($donnees = mysql_fetch_array($requete_selection)){
echo '<a href="index.php?page=articles&id='.$donnees["id"].' ">';
echo $donnees['titre'] . '</a>' . ' ' . 'écrit par ';
echo $donnees['auteur'] . '<br />';
}
mysql_close();
}
?>
Merci encore.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
===================
INDEX.PHP
===================
=============
articles/main.php
=============*
desespere pas, jespere que sa marchera
INDEX.PHP
===================
<?php if ($_GET['page'] == "news") {include("news.php");} if ($_GET['page'] == "articles") { if(isset($_GET['id'])) { include("/get_test/articles/main.php?id=$_GET['id']" ); } else { include("/get_test/articles/main.php"); } } if ($_GET['page'] == "forums") {include("forums.php");} if ($_GET['page'] == "medias") {include("medias.php");} ?>
=============
articles/main.php
=============*
<?php include('connection.php'); if(isset($_GET['id']){ //si la variable id existe $id = $_GET['id']; $requete_selection = mysql_query('SELECT * FROM articles WHERE id="$id"') or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); $donnees = mysql_fetch_array($requete_selection); echo $donnees['contenu']; echo $donnees['auteur'] . '<br />'; mysql_close(); } else { include('connection.php'); $requete_selection = mysql_query('SELECT * FROM articles') or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); while ($donnees = mysql_fetch_array($requete_selection)){ echo '<a href="index.php?page=articles&id='.$donnees["id"].' ">'; echo $donnees['titre'] . '</a>' . ' ' . 'écrit par '; echo $donnees['auteur'] . '<br />'; } mysql_close(); } ?>
desespere pas, jespere que sa marchera
J'ai une parse error à la ligne 19 :
include("/get_test/articles/main.php?id=$_GET['id']" );
j'ai tenté de la remplaçer par
include("/get_test/articles/main.php?id='$_GET['id']'" );
mais l'erreur reste
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/www/8b02f9045067109a0cbb419d432d633f/web/get_test/index.php on line 19
Merci, je cherche de mon côtés aussi.
include("/get_test/articles/main.php?id=$_GET['id']" );
j'ai tenté de la remplaçer par
include("/get_test/articles/main.php?id='$_GET['id']'" );
mais l'erreur reste
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/www/8b02f9045067109a0cbb419d432d633f/web/get_test/index.php on line 19
Merci, je cherche de mon côtés aussi.
ok ça commence a aller (enfin je crois bien ;) )
bon
essais
include('/get_test/articles/main.php?id=' . $_GET[\'id\'] );
si sa marche pas, essais sa aussi ::
ou encore
Pour ce dernier je crois pas trop, mais on sait jaimais
bon
essais
include('/get_test/articles/main.php?id=' . $_GET[\'id\'] );
si sa marche pas, essais sa aussi ::
$adresse = '/get_test/articles/main.php?id=' . $_GET['id']; include($adresse);
ou encore
$adresse = '/get_test/articles/main.php?id=' . $_GET[\'id\']; include($adresse);
Pour ce dernier je crois pas trop, mais on sait jaimais
Donc, effectivement il y a du mieux avec la deuxième méthode :
$adresse = '/get_test/articles/main.php?id=' . $_GET['id'];
include($adresse);
Les erreurs de la page index.php disparaissent en partie vu qu'il m'en reste 2 lorsque je clique sur articles :
Warning: include(/get_test/articles/main.php) [function.include]: failed to open stream: No such file or directory in /home/www/8b02f9045067109a0cbb419d432d633f/web/get_test/index.php on line 22
Warning: include() [function.include]: Failed opening '/get_test/articles/main.php' for inclusion (include_path='.:/opt/php/lib/php') in /home/www/8b02f9045067109a0cbb419d432d633f/web/get_test/index.php on line 22
Donc ligne 22 evidement toujours une url qui pose problème :
echo '<a href="index.php?page=articles&id='.$donnees["id"].' ">';
Merci beaucoup ;)
$adresse = '/get_test/articles/main.php?id=' . $_GET['id'];
include($adresse);
Les erreurs de la page index.php disparaissent en partie vu qu'il m'en reste 2 lorsque je clique sur articles :
Warning: include(/get_test/articles/main.php) [function.include]: failed to open stream: No such file or directory in /home/www/8b02f9045067109a0cbb419d432d633f/web/get_test/index.php on line 22
Warning: include() [function.include]: Failed opening '/get_test/articles/main.php' for inclusion (include_path='.:/opt/php/lib/php') in /home/www/8b02f9045067109a0cbb419d432d633f/web/get_test/index.php on line 22
Donc ligne 22 evidement toujours une url qui pose problème :
echo '<a href="index.php?page=articles&id='.$donnees["id"].' ">';
Merci beaucoup ;)
essais dappliker la deuxieme methode avec ce probleme, je vais faire des courses. A ce soir et bon courage
Alors, après quelques tests c'est le contenue du else qui affiche l'erreur donc ceci :
else {
$adresse2 = '/get_test/articles/main.php';
include($adresse2);
}
Si je l'enlève l'erreur n'apparait pas donc j'en viens à la conclusion que la condition du if ne se vérifie pas vu que c'est le else qui s'exécute. C'est quand même bizarre tout ça.
Merci de ton aide, a ce soir ;)
else {
$adresse2 = '/get_test/articles/main.php';
include($adresse2);
}
Si je l'enlève l'erreur n'apparait pas donc j'en viens à la conclusion que la condition du if ne se vérifie pas vu que c'est le else qui s'exécute. C'est quand même bizarre tout ça.
Merci de ton aide, a ce soir ;)
<?php /*=================== INDEX.PHP ===================*/ //A placer dans ta page index.php if (isset($_GET['page'])) { switch($_GET['page']) { case "news": include("news.php");break; case "articles": include("articles/main.php");break; case "forums": include("forums.php");break; case "medias": include("medias.php");break; } else { include("news.php"); } ?> <?php /*============= articles/main.php =============*/ //A placer dans ton main.php du répertoire articles include('connection.php'); //On se connecte à la base if(isset($_GET['id']){ //si la variable id existe $requete_selection = mysql_query('SELECT * FROM articles WHERE id='.$_GET['id']) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); $donnees = mysql_fetch_array($requete_selection); echo $donnees['contenu']; echo $donnees['auteur'] . '<br />'; } else { $requete_selection = mysql_query('SELECT * FROM articles') or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); while ($donnees = mysql_fetch_array($requete_selection)){ echo '<a href="index.php?page=articles&id='.$donnees["id"].' ">'; echo $donnees['titre'] . '</a>' . ' ' . 'écrit par '; echo $donnees['auteur'] . '<br />'; } } mysql_close(); //On se déconnecte ?>
Donc je resume. Lorsque tu arrives sur ton site par défaut lorsque tu vas cliquer sur le lien articles, tous les articles s'afficheront car ta variable "$_GET['id']" n'existe pas.
Dès lors que tu vas cliquer sur un article pour l'afficher, tu vas instancier la variable "$_GET['id']" qui cette fois-ci n'affichera plus la liste des articles mais uniquement l'article voulu.
J'ai bien compris ta démarche ?
²Ben écoute, nikel ça marche trés bien mis à part deux petites erreur de syntaxes, tu as tout à fait saisi le problème et maintenant c'est parfait, ce que je voulais.
Merci beaucoup ;)
Merci beaucoup ;)
Les erreurs je sais pas car j'ai repris le code de stephane_mc2004.
J'ai juste modifié les endroits les plus importants pour faire fonctionner ton script.
Applique un petit résolu à cette discussion :)
Allez ciao
J'ai juste modifié les endroits les plus importants pour faire fonctionner ton script.
Applique un petit résolu à cette discussion :)
Allez ciao