Probléme création de page PHP
Dexter2089
-
Dexter2089 -
Dexter2089 -
Bonjour,
J'ai débuter il y a quelques semaines dans le monde du PHP, et plus précisément dans les Base de Données, j'arrive à bien m'en sortir jusque là, mais depuis peu je me heurte à un probléme.
En faite je fais un mini site, et je voudrais intégrer une base de données (pour le moment pas de soucis), en page d'accueil, les news (un résumé) et en faite je voudrais connaître une solution pour que ma base de données génère automatiquement des pages dynamiques pour que les visiteurs puissent cliquer sur les news et tombé sur une autre page avec la news entière.
Je vous remercie par avance de l'intérêt que vous portez à mon message d'aide.
Cordialement
Dexter
J'ai débuter il y a quelques semaines dans le monde du PHP, et plus précisément dans les Base de Données, j'arrive à bien m'en sortir jusque là, mais depuis peu je me heurte à un probléme.
En faite je fais un mini site, et je voudrais intégrer une base de données (pour le moment pas de soucis), en page d'accueil, les news (un résumé) et en faite je voudrais connaître une solution pour que ma base de données génère automatiquement des pages dynamiques pour que les visiteurs puissent cliquer sur les news et tombé sur une autre page avec la news entière.
Je vous remercie par avance de l'intérêt que vous portez à mon message d'aide.
Cordialement
Dexter
A voir également:
- Probléme création de page PHP
- Impossible de supprimer une page word - Guide
- Creation de compte google - Guide
- Creation de site web - Guide
- Creation compte gmail - Guide
- Media creation tool - Télécharger - Systèmes d'exploitation
31 réponses
Hum.. Bonjour déjà.
Est-ce que tu as déjà fait quelque chose, un code que tu peux nous coller? La structrure de ta base de donnée, ...
Est-ce que tu as déjà fait quelque chose, un code que tu peux nous coller? La structrure de ta base de donnée, ...
à quel moment bloques-tu exactement ?
le principe est relativement simple :
une page news.php par exemple à laquelle tu envoies l'id de ta news (par méthode get par exemple) et dans cette page news.php tu affiches les infos de la news dont tu as récupéré l'id.
le principe est relativement simple :
une page news.php par exemple à laquelle tu envoies l'id de ta news (par méthode get par exemple) et dans cette page news.php tu affiches les infos de la news dont tu as récupéré l'id.
Je voudrais en faites que l'images et le titre soit cliquable pour amener à une page qui sera généré automatiquement... Pour ma base de donnée j'ai pensé faire :
- une zone pour le titre <?php echo $donnees['nom']; ?> ;
- une autre zone pour un résumé(qui s'affichera sur la page index.php) <?php echo $donnees['resumes']; ?> ;
- et enfin pour la page que je voudrais généré la partie news <?php echo $donnees['news']; ?> (qui n'est pas affiché sur cette partie de code).
Pour ce qui est du code de la page d'index, je travail principalement avec les includes, pour la partie news, il y a pas grand chose encore :
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("test");
$reponse = mysql_query("SELECT * FROM news");
while ($donnees = mysql_fetch_array($reponse) )
{
?>
<p>
<strong><?php echo $donnees['nom']; ?></strong> :<br />
<img src="illustration/thomas.jpg" width="100" height="75" alt="<?php echo $donnees['commentaires']; ?>" /><br /><br />
<?php echo $donnees['resumes']; ?><br /><br />
</p>
<?php
}
mysql_close();
?>
- une zone pour le titre <?php echo $donnees['nom']; ?> ;
- une autre zone pour un résumé(qui s'affichera sur la page index.php) <?php echo $donnees['resumes']; ?> ;
- et enfin pour la page que je voudrais généré la partie news <?php echo $donnees['news']; ?> (qui n'est pas affiché sur cette partie de code).
Pour ce qui est du code de la page d'index, je travail principalement avec les includes, pour la partie news, il y a pas grand chose encore :
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("test");
$reponse = mysql_query("SELECT * FROM news");
while ($donnees = mysql_fetch_array($reponse) )
{
?>
<p>
<strong><?php echo $donnees['nom']; ?></strong> :<br />
<img src="illustration/thomas.jpg" width="100" height="75" alt="<?php echo $donnees['commentaires']; ?>" /><br /><br />
<?php echo $donnees['resumes']; ?><br /><br />
</p>
<?php
}
mysql_close();
?>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Tout d'abord merci pour vos réponses ultra rapide, et en faite je voudrais pas me taper à créer toutes les pages autant faire "simple" et qu'elle se génére d'elle même, que je soit pas obligé de lancer NotePad, de créer la page, et de l'envoyer sur le ftp.
voila la solution ^^
dans ta page d'acceil tu récupère l'id de la news dans l'url donc :
- tu liste t news :
- tu fait ta connexion a la bdd
- tu fait ta requete admeton :
<?php
$requete = mysql_query("SELECT id, titre, contenue FROM news");
?>
- tora ton résumer de news que tu liste dans un tablo...
<table>
<?php
while ($donnees = mysql_fetch_array($requete))
{
?>
<tr>
<td><?php echo donnees['titre']; ?></td>
<td><?php echo donnees['contenue']; ?></td>
<td><a href="news.php?id=<?php echo donnees['id']; ?>">Lire la suite...</a></td> // ne pas oublier d'insérer l'id dans l'URL pour le recupérer dans la page news...
</tr>
<?php
}
?>
et aprés tu recupere dans la page news.php l'id de la news :
<?php
$id = mysql_scape_real_string(mysqlspecialchars(intval($_get['id'])));
$requete2 = mysql_query("SELECT * FROM news WHERE id =".$id."");
$donnees2 = mysql_fetch_array($requete2);
echo $donnees2['titre'].'<br>';
echo $donnees2['contenue'].'<br>';
?>
voila jespere que sa te suffie mais c'est la syntaxe
dans ta page d'acceil tu récupère l'id de la news dans l'url donc :
- tu liste t news :
- tu fait ta connexion a la bdd
- tu fait ta requete admeton :
<?php
$requete = mysql_query("SELECT id, titre, contenue FROM news");
?>
- tora ton résumer de news que tu liste dans un tablo...
<table>
<?php
while ($donnees = mysql_fetch_array($requete))
{
?>
<tr>
<td><?php echo donnees['titre']; ?></td>
<td><?php echo donnees['contenue']; ?></td>
<td><a href="news.php?id=<?php echo donnees['id']; ?>">Lire la suite...</a></td> // ne pas oublier d'insérer l'id dans l'URL pour le recupérer dans la page news...
</tr>
<?php
}
?>
et aprés tu recupere dans la page news.php l'id de la news :
<?php
$id = mysql_scape_real_string(mysqlspecialchars(intval($_get['id'])));
$requete2 = mysql_query("SELECT * FROM news WHERE id =".$id."");
$donnees2 = mysql_fetch_array($requete2);
echo $donnees2['titre'].'<br>';
echo $donnees2['contenue'].'<br>';
?>
voila jespere que sa te suffie mais c'est la syntaxe
Walou mais en faite c'est super simple, enfin simple je me suis trop pris la tête a partir à droite et à gauche, je te remercie vraiment DoI3y. Je vous donne des news de l'avancement.
Merci à tous pour vos réponses rapides et clair.
Merci à tous pour vos réponses rapides et clair.
Moi j'aurais fait comme ceci :
- un SELECT sur les 5 dernières news, ensuite on en affiche les 120 premiers caractères suivis de ... à l'aide de la méthode substr() en PHP.
- on engloge ces news dans des liens vers une autre page PHP, en passant en $_GET l'id de la news qu'il faut développer.
- lorsque l'on clique on arrive donc sur une page view_news.php?news=12 par exemple, et l'on récupère la news qui a l'id 12 en l'affichant entièrement.
- un SELECT sur les 5 dernières news, ensuite on en affiche les 120 premiers caractères suivis de ... à l'aide de la méthode substr() en PHP.
- on engloge ces news dans des liens vers une autre page PHP, en passant en $_GET l'id de la news qu'il faut développer.
- lorsque l'on clique on arrive donc sur une page view_news.php?news=12 par exemple, et l'on récupère la news qui a l'id 12 en l'affichant entièrement.
Salut,
dans tes reqûete mysql, utilise la fonction RAND() pour avoir l'id d'une news au hazards (ou plusieurs ID).
Ensuite, via la fonction substr() en PHP, tu limite le nombre de caractère de la news pour afficher qu'un extrait. Tu fais un lien qui pointe vers la news (via son ID par exemple) puis vers la page de reception, tu va cherche l'ID (passer en GET) et tu affiche la news au complet :)
Rien de plus dur !
A+
Gaerebut
dans tes reqûete mysql, utilise la fonction RAND() pour avoir l'id d'une news au hazards (ou plusieurs ID).
Ensuite, via la fonction substr() en PHP, tu limite le nombre de caractère de la news pour afficher qu'un extrait. Tu fais un lien qui pointe vers la news (via son ID par exemple) puis vers la page de reception, tu va cherche l'ID (passer en GET) et tu affiche la news au complet :)
Rien de plus dur !
A+
Gaerebut
Salut,
tire un ID de news au hazard (ou plusieurs) via la fonction Mysql RAND().
Tu affiche qu'un extrait de la news via la fonction substr() en PHP.
Tu fais ensuite un lien pointant sur la news en passant son ID en GET.
Sur la page qui reçoit, tu va chercher la news ayant l'ID reçu en GET puis tu l'affiche en entier !
Rien de plus dur :)
A+
Gaerebut
tire un ID de news au hazard (ou plusieurs) via la fonction Mysql RAND().
Tu affiche qu'un extrait de la news via la fonction substr() en PHP.
Tu fais ensuite un lien pointant sur la news en passant son ID en GET.
Sur la page qui reçoit, tu va chercher la news ayant l'ID reçu en GET puis tu l'affiche en entier !
Rien de plus dur :)
A+
Gaerebut
là il faut que tu utilise fopen et fwrite pour créer des fichiers depuis la BDD, à la fois pour écrire tes fichiers à consulter et les liens vers ces fichiers
https://www.php.net/manual/fr/function.fopen.php
https://www.php.net/FR/fwrite
https://www.php.net/manual/fr/function.fopen.php
https://www.php.net/FR/fwrite
Pour cela tu dois utiliser les focntions fopen et fwrite de PHP, à la fois pour les fichiers à consulter et les liens vers ces fichiers
https://www.php.net/manual/fr/function.fopen.php
https://www.php.net/manual/fr/function.fwrite.php
https://www.php.net/manual/fr/function.fopen.php
https://www.php.net/manual/fr/function.fwrite.php
Ben en tout cas je voudrais dire une chose merci beaucoup, j'ai réussi tout ce que je voulais faire avec le conseil de chaqu'un de vous. Maintenant il me reste plus qu'a perfectionné tout ça !!!
Pour cela tu dois utiliser fopen et fwrite de PHP à la fois pour tes fichiers à afficher, mais aussi pour les liens vers ces fichiers.
tu fais une table "news" dans la base
tu mets comme champs:
ID (int)
news_time (timestamp)
resume (texte)
corps (texte)
avec l'id tu fais la clef primaire
le timestamp c'est pour date les news
resume: le résumé de la news
corps: le contenu de la news... tu peux mettre soit du texte, soit carément du code HTML (si tu veux y integrer la mise en forme). Le plus simple dans un premier temps étant de faire texte seul
dans la page ou tu afiche les résumés, tu te connecte a la bdd, et tu fais une requete du genre
select id, resume, news_time from news order by news_time desc limit 5; --ca prendra les 5 dernieres news
dans ton code php, tu fais un mysql_fetch_object (ou utilise la méthode que t'as l'habitude d'utiliser)
et pour chaque ligne retournée de la BDD, tu fais:
echo '<a href="news.php?newsID=$object->id">$resume</a><br />;';
ensuite, tu fais une page news.php, avec un parametre que tu passes dans l'url (en GET: le numéro ID de la news, par exemple: news.php?newsID=105 -> ca chargera la news n° 105)
ca donne
"select * from news where ID=".$_GET['newsID'];
et ensuite, tu récupères les valeurs, et tu les affiche....
voila! j'espère que t'as tout bien compris.
tu mets comme champs:
ID (int)
news_time (timestamp)
resume (texte)
corps (texte)
avec l'id tu fais la clef primaire
le timestamp c'est pour date les news
resume: le résumé de la news
corps: le contenu de la news... tu peux mettre soit du texte, soit carément du code HTML (si tu veux y integrer la mise en forme). Le plus simple dans un premier temps étant de faire texte seul
dans la page ou tu afiche les résumés, tu te connecte a la bdd, et tu fais une requete du genre
select id, resume, news_time from news order by news_time desc limit 5; --ca prendra les 5 dernieres news
dans ton code php, tu fais un mysql_fetch_object (ou utilise la méthode que t'as l'habitude d'utiliser)
et pour chaque ligne retournée de la BDD, tu fais:
echo '<a href="news.php?newsID=$object->id">$resume</a><br />;';
ensuite, tu fais une page news.php, avec un parametre que tu passes dans l'url (en GET: le numéro ID de la news, par exemple: news.php?newsID=105 -> ca chargera la news n° 105)
ca donne
"select * from news where ID=".$_GET['newsID'];
et ensuite, tu récupères les valeurs, et tu les affiche....
voila! j'espère que t'as tout bien compris.
:( j'avais envoyé un super truc pour toi, mais le site buggait, et ca a pas été sauvegardé
bon, alors je vais faire rapide:
table "news" dans mysql
ID (int)
date (timestamp)
resume (texte)
article (texte) ici tu mets soit du texte brut, soit du HTML contenant le texte, suivant si tu veux qu'il contienne deja la mise en page (html) ou pas....
dans ton index.php, tu vas chercher les résumés avec cette requete qui va prendre les 5 dernieres news ajoutées
select id, date, resume from news order by date desc limit 5
tu fait un $object=mysql_fetch_object....
ensuite, pour chaque objet récupéré:
echo '<a href="news.php?newsID=$object->ID">$resume</a><br />';
dans ta page news.php tu fais
select article from news where ID=$_GET['newsID'];
tu fais le $object=mysql_tech_object, puis
echo $object->article;
voila, j'espère que tu aura compris le principe.. j'ai mis que des bouts de code, histoire de montrer la voie a suivre
edit: ha ben finalement le site recommence a fonctionner tout doucement .... mon message d'avant est finalement apparu
bon, alors je vais faire rapide:
table "news" dans mysql
ID (int)
date (timestamp)
resume (texte)
article (texte) ici tu mets soit du texte brut, soit du HTML contenant le texte, suivant si tu veux qu'il contienne deja la mise en page (html) ou pas....
dans ton index.php, tu vas chercher les résumés avec cette requete qui va prendre les 5 dernieres news ajoutées
select id, date, resume from news order by date desc limit 5
tu fait un $object=mysql_fetch_object....
ensuite, pour chaque objet récupéré:
echo '<a href="news.php?newsID=$object->ID">$resume</a><br />';
dans ta page news.php tu fais
select article from news where ID=$_GET['newsID'];
tu fais le $object=mysql_tech_object, puis
echo $object->article;
voila, j'espère que tu aura compris le principe.. j'ai mis que des bouts de code, histoire de montrer la voie a suivre
edit: ha ben finalement le site recommence a fonctionner tout doucement .... mon message d'avant est finalement apparu
Bonjour tout le monde,
je reviens vers vous pour vous dire que tout marche à la perfection !
Un grand merci à vous tous.
Pour expliquer ma façon de faire je me suis servis de tuto sur le siteduzero (chat et livre d'or) et des conseils que vous m'avez données.
J'aurai une dernière question, après avoir fini la base de donnée, la partie admin etc... je voulais m'attaque au Meta (normalement je les codés en HTML tout simple mais le faire depuis la BDD c'est mieux et plus rapide).
Comment puis-je faire pour intégrer du php dans les meta ?
J'ai fait des recherches ( car google est mon amis et même notre amis ) mais je n'ai pas trouver de résultat sur ce sujet bien précis.
J'ai essayer comme ça (mais ça ne s'affiche pas) :
<META NAME="Desciption" CONTENT="<?php echo $nom; ?>">
Je vous remerci encore de l'aide que vous m'avez et que vous m'apporterez pour cette question.
je reviens vers vous pour vous dire que tout marche à la perfection !
Un grand merci à vous tous.
Pour expliquer ma façon de faire je me suis servis de tuto sur le siteduzero (chat et livre d'or) et des conseils que vous m'avez données.
J'aurai une dernière question, après avoir fini la base de donnée, la partie admin etc... je voulais m'attaque au Meta (normalement je les codés en HTML tout simple mais le faire depuis la BDD c'est mieux et plus rapide).
Comment puis-je faire pour intégrer du php dans les meta ?
J'ai fait des recherches ( car google est mon amis et même notre amis ) mais je n'ai pas trouver de résultat sur ce sujet bien précis.
J'ai essayer comme ça (mais ça ne s'affiche pas) :
<META NAME="Desciption" CONTENT="<?php echo $nom; ?>">
Je vous remerci encore de l'aide que vous m'avez et que vous m'apporterez pour cette question.