Probléme création de page PHP

Fermé
Dexter2089 - 22 avril 2009 à 08:26
 Dexter2089 - 29 avril 2009 à 23:12
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
A voir également:

31 réponses

Apatik Messages postés 5304 Date d'inscription mercredi 28 janvier 2009 Statut Contributeur Dernière intervention 29 mai 2016 782
22 avril 2009 à 08:49
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, ...

0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
22 avril 2009 à 08:57
0
ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 566
22 avril 2009 à 08:57
à 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.
0
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();
?>
0

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.
0
DoI3y Messages postés 56 Date d'inscription vendredi 16 janvier 2009 Statut Membre Dernière intervention 24 février 2010 24
22 avril 2009 à 10:10
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


0
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.
0
scriptiz Messages postés 1424 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 septembre 2023 425
22 avril 2009 à 10:39
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.
0
gaerebut Messages postés 1017 Date d'inscription mardi 30 octobre 2007 Statut Membre Dernière intervention 22 novembre 2013 171
22 avril 2009 à 11:09
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
0
gaerebut Messages postés 1017 Date d'inscription mardi 30 octobre 2007 Statut Membre Dernière intervention 22 novembre 2013 171
22 avril 2009 à 11:12
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
0
Judes-Emile Bornes IV Messages postés 123 Date d'inscription dimanche 6 avril 2008 Statut Membre Dernière intervention 23 février 2010 12
22 avril 2009 à 11:17
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
0
Judes-Emile Bornes IV Messages postés 123 Date d'inscription dimanche 6 avril 2008 Statut Membre Dernière intervention 23 février 2010 12
22 avril 2009 à 11:19
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
0
dexter2089 Messages postés 24 Date d'inscription mercredi 22 avril 2009 Statut Membre Dernière intervention 31 juillet 2012
22 avril 2009 à 11:20
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 !!!
0
Judes-Emile Bornes IV Messages postés 123 Date d'inscription dimanche 6 avril 2008 Statut Membre Dernière intervention 23 février 2010 12
22 avril 2009 à 11:21
Pour cela tu dois utiliser fopen et fwrite de PHP à la fois pour tes fichiers à afficher, mais aussi pour les liens vers ces fichiers.
0
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 193
22 avril 2009 à 11:39
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.
0
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 193
22 avril 2009 à 13:46
:( 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
0
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.
0
Judes-Emile Bornes IV Messages postés 123 Date d'inscription dimanche 6 avril 2008 Statut Membre Dernière intervention 23 février 2010 12
29 avril 2009 à 10:23
pour faire ça tu dois faire

<?php
echo "<META NAME=\"Description\" CONTENT=\"".$nom."\">";
?>
0
ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 566
29 avril 2009 à 10:26
c'est à peu près là même chose

vérifie que ta variable $nom est bien remplit
0
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 193
29 avril 2009 à 10:32
en effet.. je préfère meme plutot la solution qui consitait a ouvrir les balises php juste la ou il avait besoin de code dynamique... c'est plus facile a lire
0
Oui la variable est bien remplis.

J'ai essayé le code que tu m'as passé Judes-Emiles mais malheureusement ça ne marche pas chez moi ...
0