| [avis] Au niveau du codage php et (x)html | |
|
|
Auteur | Message |
---|
Sangodams
Nombre de messages : 15 Date d'inscription : 13/05/2006
| Sujet: [avis] Au niveau du codage php et (x)html Sam 13 Mai - 23:35 | |
| Voilà qu'il y a un petit mois, je me suis lancé dans la création d'un petit blog perso (marre de skyblog ^^), que je code donc moi-même (comme un grand ). Je voudrais donc avoir différents avis, si possible argumentés et justifiés. Je signale juste que je n'attend aucun commentaire au niveau du design, très basique, fait très vite fait sur Photoshop pour pouvoir le coder. Voici le lien.Je vais seulement vous donner le code des pages index.php et commentaires.php, les autres n'ont pas tellement grand intêret. Copiez puis collez le code suivant dans notepad ++, ça sera plus pratique Index.php - Code:
-
<h1>Sango's blog</h1>
<p>Bonjour et bienvenue sur mon blog ^^. Il est pour le moment très incomplet, vu que le codage n'est pas encore au point, alors je vous demande de patienter un peu. Merci beaucoup, Sangodams. :)</p> <?php mysql_connect("localhost", "root", ""); mysql_select_db("database"); $limit_par_page = 4; // Modifiez ce nombre pour changer le nombre de news affichées par page ?> <?php if(isset($_GET['page'])) //Pour voir si la variable n'est pas déclaree { $page = $_GET['page']; //On la récupère $page = $page - 1; // -1 car elle sert pour savoir a partir de quel enregistrement on commence la sélection } else { $page = 0; } ?>
<?php $from = $page * $limit_par_page; //1er enregistrement. ex : 1*10 = 10eme, 2*10 = 20eme $sql = mysql_query("SELECT * FROM news WHERE valide = '1' ORDER BY id DESC LIMIT $from,$limit_par_page") //La requête ?>
<?php while($donnees = mysql_fetch_array($sql)) { ?><hr /> <h3> <?php echo $donnees['titre']; ?> <br /> <em>Ecrit par <?php echo $donnees['pseudo']; ?>, le <?php echo date('d/m/Y \à H\hi', $donnees['timestamp']); ?></em> </h3> <p> <?php //On enlève les éventuels antislash PUIS on crée les entrées en HTML (<br />) $contenu = nl2br(stripslashes($donnees['contenu'])); echo $contenu; ?> </p> <a href="commentaires.php?idnews=<?php echo $donnees['id']; ?>&titrenews=<?php echo stripslashes($donnees['titre']); ?>&page=1"> <?php /*Combien a–t–on de commentaires sur cette news ?*/ $infos_com = mysql_query('SELECT COUNT(*) AS nb_com FROM commentaires WHERE idnews=' . $donnees['id']); $donnees_com = mysql_fetch_array($infos_com); $totalDesCommentaires = $donnees_com['nb_com']; echo $totalDesCommentaires; ?> commentaire(s) </a>
<?php } // Fin de la boucle des news ?>
<?php $sql2 = mysql_query("SELECT COUNT(*) AS nb_msg FROM news"); $donnees2 = mysql_fetch_array($sql2); $nb_msg = $donnees2['nb_msg']; ?>
<?php $nb_pages = ceil($nb_msg / $limit_par_page); //Le nombre de page = nombre de message divisé par la limite du nombre de messages par page ?>
<p class="center"> <b>Pages :</b> <!-- Ouverture d'un paragraphe pour mettre "pages" devant les numéros --> <?php for($page=1;$page<=$nb_pages;$page++) { ?>
<a href="index.php?page=<?php echo $page; ?>"><?php echo $page; ?> -</a> <?php } ?> </p> <!-- Fermeture du paragraphe pour mettre page devant les numéros -->
<?php mysql_close(); ?>
Et maintenant voici commentaires.php - Code:
-
<h1>Ecrire un commentaire</h1>
<?php
mysql_connect("localhost", "root" , ""); mysql_select_db("database");
// On récupère la news qui nous intéresse $retour = mysql_query('SELECT * FROM news WHERE id =' . $_GET['idnews']); $donneesnews = mysql_fetch_array($retour); ?> <div class="bloc_news"> <h3 class="news"><?php echo $donneesnews['titre']; ?><br /> <em>Ecrit par <?php echo $donneesnews['pseudo']; ?>, le <?php echo date('d/m/Y à H\hi', $donneesnews['timestamp']); ?></em></h3>
<div> <?php //On enlève les éventuels antislash PUIS on crée les entrées en HTML (<br />) $contenu = nl2br(stripslashes($donneesnews['contenu'])); echo $contenu; ?> </div> </div> <?php
$limit_par_page = 10; // Nombre de commentaires par page ?>
<?php if(isset($_GET['page'])) //Pour voir si la variable n'est pas déclaree { $page = intval($_GET['page']) - 1; //On la récupère // –1 car elle sert pour savoir a partir de quel enregistrement on commence la sélection } else { $page = 0; } ?>
<?php $from = $page * $limit_par_page; //1er enregistrement. ex : 1*10 = 10eme‚ 2*10 = 20eme ?>
<?php $sql2 = mysql_query("SELECT COUNT(*) AS nb_msg FROM commentaires WHERE idnews=" . $_GET['idnews'] . " "); // On compte le nombre de commentaires pour la news $donnees2 = mysql_fetch_array($sql2); $nb_msg = $donnees2['nb_msg']; ?> <hr /> <h3 class="commentaire"><? echo $nb_msg; ?> commentaire(s)</h3>
<?php $retour = mysql_query('SELECT * FROM news WHERE id =' . $_GET['idnews']); $donneesnews = mysql_fetch_array($retour); ?>
<p class="commentaire"><a href="ajout_commentaire.php?idnews=<?php echo $donneesnews['id']; ?>&titrenews=<?php echo stripslashes($donneesnews['titre']); ?>">Ajouter un commentaire</a></p> <hr />
<table> <tr class="gras"><td class="15">Ecrit par</td><td class="20">Date</td><td class="45">Message</td></tr>
<?php $sql = mysql_query("SELECT * FROM commentaires WHERE idnews=" . $_GET['idnews'] . " LIMIT $from‚ $limit_par_page");
while($donnees = mysql_fetch_array($sql)) { $pseudo = stripslashes($donnees['pseudo']); $message = stripslashes($donnees['message']); $date = date('d/m/Y', $donnees['timestamp']); $heure = date('H\hi', $donnees['timestamp']); ?> <tr><td class="15"><span class="gras"><?php echo '' . $pseudo . '' ?></span></td><td class="20"><?php echo ' le ' . $date . ' à ' . $heure ?></td><td class="45"><?php echo '' . $message . '' ?></td></tr> <?php } // Fin de la boucle des commentaires ?> </table> <?php $nb_pages = ceil($nb_msg / $limit_par_page); //Le nombre de page = nombre de message divisé par la limite du nombre de messages par page
if($nb_msg != 0) { ?> <p class="commentaire">Page : <?php } elseif(nb_msg == 0) { echo '<p>Il n\'y a aucun commentaire de cette news pour le moment.</p>'; }
for($page=1;$page<=$nb_pages;$page++) { if($page==($_GET['page'])) { echo $page; } else { ?>
<?php // On remet les infos des news contenues dans la BDD dans un array sinon php ne se souvient pas‚ et les variables id et titre des news ne sont pas transmises aux différentes pages $retour = mysql_query('SELECT * FROM news WHERE id =' . $_GET['idnews']); $donneesnews = mysql_fetch_array($retour); ?>
<a href="commentaires.php?idnews=<?php echo $donneesnews['id']; ?>&titrenews=<?php echo stripslashes($donneesnews['titre']); ?>&page=<?php echo $page; ?>"><?php echo $page;?></a>
<?php } } ?> </p>
<?php mysql_close(); ?>
Vous l'aurez remarqué, j'ai seulement laissé la partie php, puisque le code xHTML est sans grand intêret. Merci pour votre franchise. | |
|
| |
J2L Modérateur
Nombre de messages : 117 Age : 30 Logiciel(s) graphique utilisé(s) : Photoshop 7, Dreamweaver MX 2004 Pro, FTP Expert 3, Apache 2.2, MySQL 5, PHP 5, Flash 8 (Pro) Date d'inscription : 03/06/2006
| Sujet: Re: [avis] Au niveau du codage php et (x)html Sam 3 Juin - 3:19 | |
| J'ai quelques conseils : Tu peux eviter la concatenation dans les echos simple genre <?php echo '' . $pseudo . '' ?> à remplacer par <?php echo $pseudo; ?> Et puis il doit y avoir suremement une erreur car l'instruction n'est pas fermée... Aussi au lieu d'utiliser des mysql_fetch_array fait plutot des mysql_fetch_assoc ! Voilà, bonne chance ! | |
|
| |
moa18e
Nombre de messages : 259 Age : 34 Logiciel(s) graphique utilisé(s) : Paint (toujours) Date d'inscription : 25/05/2006
| Sujet: Re: [avis] Au niveau du codage php et (x)html Sam 3 Juin - 5:19 | |
| - J2L a écrit:
- Aussi au lieu d'utiliser des mysql_fetch_array fait plutot des mysql_fetch_assoc !
Quelle est la différence entre les deux, aussi infime soit-elle ? | |
|
| |
J2L Modérateur
Nombre de messages : 117 Age : 30 Logiciel(s) graphique utilisé(s) : Photoshop 7, Dreamweaver MX 2004 Pro, FTP Expert 3, Apache 2.2, MySQL 5, PHP 5, Flash 8 (Pro) Date d'inscription : 03/06/2006
| Sujet: Re: [avis] Au niveau du codage php et (x)html Sam 3 Juin - 5:42 | |
| Ben array retourne un tableaux alors que assoc retourne seulement les entrés sans les ID ! ce qui fait donc qu'elle est moins lourde et donc plus rapide | |
|
| |
moa18e
Nombre de messages : 259 Age : 34 Logiciel(s) graphique utilisé(s) : Paint (toujours) Date d'inscription : 25/05/2006
| Sujet: Re: [avis] Au niveau du codage php et (x)html Sam 3 Juin - 5:53 | |
| Si y a pas les ID, ça peut être moins pratique aussi dans certains cas, non ? | |
|
| |
J2L Modérateur
Nombre de messages : 117 Age : 30 Logiciel(s) graphique utilisé(s) : Photoshop 7, Dreamweaver MX 2004 Pro, FTP Expert 3, Apache 2.2, MySQL 5, PHP 5, Flash 8 (Pro) Date d'inscription : 03/06/2006
| Sujet: Re: [avis] Au niveau du codage php et (x)html Sam 3 Juin - 6:27 | |
| Non non On ne sert sert pas de ça dans les requetes ! Ca revient au même plus rapidement c'est tout | |
|
| |
Sangodams
Nombre de messages : 15 Date d'inscription : 13/05/2006
| Sujet: Re: [avis] Au niveau du codage php et (x)html Sam 3 Juin - 14:00 | |
| - J2L a écrit:
- J'ai quelques conseils :
Tu peux eviter la concatenation dans les echos simple genre <?php echo '' . $pseudo . '' ?> à remplacer par <?php echo $pseudo; ?> Et puis il doit y avoir suremement une erreur car l'instruction n'est pas fermée... Aussi au lieu d'utiliser des mysql_fetch_array fait plutot des mysql_fetch_assoc !
Voilà, bonne chance ! Merci pour tes conseils. Pour ce qui est de la concaténation, j'ai juste pris l'habitude, autant le faire partout que ne pas le faire Faut que je me renseigne au sujet de ce mysql_fetch_assoc... Encore merci | |
|
| |
J2L Modérateur
Nombre de messages : 117 Age : 30 Logiciel(s) graphique utilisé(s) : Photoshop 7, Dreamweaver MX 2004 Pro, FTP Expert 3, Apache 2.2, MySQL 5, PHP 5, Flash 8 (Pro) Date d'inscription : 03/06/2006
| Sujet: Re: [avis] Au niveau du codage php et (x)html Lun 12 Juin - 5:28 | |
| Petite amelioration de ta premièré page : <?php echo'<h1>Sango's blog</color></color>'; echo'</color>Bonjour et bienvenue sur mon blog^^.Il est pour le moment très incomplet,vu que le codage n'est pas encore au point, alors je vous demande de patienter un peu. Merci beaucoup, Sangodams. </p>';
mysql_connect("localhost","root",""); mysql_select_db("database"); $limit_par_page=4; // Modifiez ce nombre pour changer le nombre de news affichées par page
if(isset($_GET['page']))//Pour voir si la variable n'est pas déclaree { $page=$_GET['page']; $page=$page-1;
} else { $page=0; } $from=$page*$limit_par_page; $sql=mysql_query("SELECT * FROM news WHERE valide = '1' ORDER BY id DESC LIMIT $from, $limit_par_page");
while($donnees=mysql_fetch_array($sql)) { echo' <h3>'.$donnees['titre'].' ';
echo'Ecrit par '.$donnees['pseudo'].', le '.date('d/m/Y \à H\hi',$donnees['timestamp']).'</h3><p>';
$contenu=nl2br(stripslashes($donnees['contenu'])); echo$contenu; echo'';
$infos_com=mysql_query('SELECT COUNT(*) AS nb_com FROM commentaires WHERE idnews='.$donnees['id']); $donnees_com=mysql_fetch_assoc($infos_com); $totalDesCommentaires=$donnees_com['nb_com'];
echo$totalDesCommentaires; echo'commentaire(s)'; } $sql2=mysql_query("SELECT COUNT(*) AS nb_msg FROM news"); $donnees2=mysql_fetch_array($sql2);
$nb_msg=$donnees2['nb_msg']; $nb_pages=ceil($nb_msg/$limit_par_page);//Le nombre de page = nombre de message divisé par la limite du nombre de messages par page echo'<p> Pages :';
for($page=1;$page</color> | |
|
| |
Contenu sponsorisé
| Sujet: Re: [avis] Au niveau du codage php et (x)html | |
| |
|
| |
| [avis] Au niveau du codage php et (x)html | |
|