begin process at 2012 05 31 04:49:48
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

AU SECOURS !!!

 > 

pb : Afficher le nombre de commentaire


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

pb : Afficher le nombre de commentaire

jeudi 21 avril 2005 à 00:53:12 | pb : Afficher le nombre de commentaire

punkcity

Bonjour,
J'ai un petit (enfin un gros depuis le temps ou je suis dessus) problème. J'ai réalisé une page dynamique ou je recupere des info d'une table "actualites" avec :
`ID` tinyint(4) NOT NULL auto_increment,
`titre` varchar(150) NOT NULL default '',
`auteur` text NOT NULL,
`texte` text NOT NULL,
`date` varchar(20) NOT NULL default '',
`photo` varchar(50) NOT NULL default 'photo0.jpg',
PRIMARY KEY (`ID`)
Pour chaque actualites j'ai des commentaires (sur une autre page) avec la table "commentaire" :
`id_comm` tinyint(4) NOT NULL auto_increment,
`auteur` varchar(15) NOT NULL default '',
`email` varchar(15) NOT NULL default '',
`texte` text NOT NULL,
`date` varchar(21) NOT NULL default '',
`id_news` tinyint(4) NOT NULL default '0',

Dans ma page j'ai bien la liaison entre l'ID actualites et l'id_news de commentaire (afin que le commentaire corresponde bien avec l'actualité id_news=ID).
Jusque la tout va bien.

Le soucie c'est que ma page est crée sous dreamweaver, les actualités s'affiche dans un tableau dynamique répété, et que je n'arrive pas a afficher le nombre de commentaire pour chaque actualité.

Mes donnés s'afficher dans un tableau sous la forme : <?php echo $row_rsActualites['titre']; ?>
et le liens vers la page des commentaires :
commentaire.php?id_news=<?php echo $row_rsActualites['ID']; ?>

Voici le debut de mon code.

<?php require_once('../../Connections/Punkcity.php'); ?>
<?php
$currentPage = $_SERVER["PHP_SELF"];
?>
<?php
$maxRows_rsActualites = 10;
$pageNum_rsActualites = 0;
if (isset($_GET['pageNum_rsActualites'])) {
  $pageNum_rsActualites = $_GET['pageNum_rsActualites'];
}
$startRow_rsActualites = $pageNum_rsActualites * $maxRows_rsActualites;

mysql_select_db($database_Punkcity, $Punkcity);
$query_rsActualites = "SELECT * FROM actualites ORDER BY ID DESC";
$query_limit_rsActualites = sprintf("%s LIMIT %d, %d", $query_rsActualites, $startRow_rsActualites, $maxRows_rsActualites);
$rsActualites = mysql_query($query_limit_rsActualites, $Punkcity) or die(mysql_error());
$row_rsActualites = mysql_fetch_assoc($rsActualites);

if (isset($_GET['totalRows_rsActualites'])) {
  $totalRows_rsActualites = $_GET['totalRows_rsActualites'];
} else {
  $all_rsActualites = mysql_query($query_rsActualites);
  $totalRows_rsActualites = mysql_num_rows($all_rsActualites);
}
$totalPages_rsActualites = ceil($totalRows_rsActualites/$maxRows_rsActualites)-1;

$colname_rsCommentaireID = "1";
if (isset($_GET['id'])) {
  $colname_rsCommentaireID = (get_magic_quotes_gpc()) ? $_GET['id'] : addslashes($_GET['id']);
}
mysql_select_db($database_Punkcity, $Punkcity);
$query_rsCommentaireID = sprintf("SELECT * FROM commentaire WHERE id_news = %s", $colname_rsCommentaireID);
$rsCommentaireID = mysql_query($query_rsCommentaireID, $Punkcity) or die(mysql_error());
$row_rsCommentaireID = mysql_fetch_assoc($rsCommentaireID);
$totalRows_rsCommentaireID = mysql_num_rows($rsCommentaireID);

$queryString_rsActualites = "";
if (!empty($_SERVER['QUERY_STRING'])) {
  $params = explode("&", $_SERVER['QUERY_STRING']);
  $newParams = array();
  foreach ($params as $param) {
    if (stristr($param, "pageNum_rsActualites") == false &&
        stristr($param, "totalRows_rsActualites") == false) {
      array_push($newParams, $param);
    }
  }
  if (count($newParams) != 0) {
    $queryString_rsActualites = "&" . htmlentities(implode("&", $newParams));
  }
}
$queryString_rsActualites = sprintf("&totalRows_rsActualites=%d%s", $totalRows_rsActualites, $queryString_rsActualites);
?>

Quelqu'un pourrait il m'aider afin que j'arrive à avoir le nombre d'avis pour chaque commentaire (et non pas le meme resultat pour toute les acutalites -exemple : 3 commentaires pour toute les actu- ?).

Merci par avance

PS : j'espere que j'ai été assez claire et pas trop fouillie,  sinon peut donner plus de renseignement si il faut


jeudi 21 avril 2005 à 10:22:48 | Re : pb : Afficher le nombre de commentaire

malalam

Administrateur CodeS-SourceS
Hello,

il est difficile a lire ton code.
Si tu as toujours le meme nombre de commentaires, c'est soit que ta requete est mauvaise, soit mal placee.
A priori :
Tu vas chercher ta news, puis dans la boucle sur cette requete, tu vas chercher les commentaires associes. Tu affiches le tout (avec un num_rows sur les commentaires, par exemple, pour avoir le nombre de commentaires associes a cette news). Retour a la boucle de la requete sur les news.
Au passage, evite les SELECT *
Il vaut toujours mieux nommer les champs dont tu as besoin, quand bien meme aurais-tu besoin de TOUS les champs de ta table. C'est moins lourd pour le serveur.
jeudi 21 avril 2005 à 12:14:25 | Re : pb : Afficher le nombre de commentaire

punkcity

Merci pour ton astuce.
Je vais essayer ton conseil pour retourner la requete sur la news et en meme tant pour les Select.
J'ai aussi peut etre oublié un detaille. Après le code php si dessus, j'ai du html ou j'affiche du php.
Merci en tout cas.

jeudi 21 avril 2005 à 16:04:03 | Re : pb : Afficher le nombre de commentaire

punkcity

Finalement j'ai changé mon code. J'arrive bien a avoir le bon nombre de commentaire.
Je souhaite afficher par page 10 actualites et avoir une barre de navigation pour le reste (avec suivant, precedent...).
Le nouveau soucie c'est que avec mon nouveau code j'ai l'impression qu'il n'est pas possible d'afficher une barre de navigation :

<?php require_once('../../Connections/Punkcity.php'); ?>
<?
$ma_table="actualites";
$ma_table4="commentaire";

// On commence par récupérer les news elles-mêmes

mysql_select_db($database_Punkcity, $Punkcity);
   $extraire = mysql_query("select * from $ma_table order by id DESC");
   $occurrences = mysql_numrows($extraire);
   if($occurrences<10) $nbrnews=$occurrences;
   else $nbrnews=10;
 
// On entre alors dans une boucle qui affiche les 5 dernières news     
      for ($i=0 ; $i<$nbrnews ; $i++) {
        $id_news = mysql_result($extraire,$i,"id");
        $titre_news = mysql_result($extraire,$i,"titre");
        $texte = mysql_result($extraire,$i,"texte");
        $auteur= mysql_result($extraire,$i,"auteur");
        $date= mysql_result($extraire,$i,"date");
        $photo= mysql_result($extraire,$i,"photo");
        
        $comment = mysql_query("select * from $ma_table4 where id_news='$id_news'");
       $nbrcomment = mysql_numrows($comment);
// Il ne nous reste plus qu'à afficher !        
    echo "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"520\" bordercolor=\"#000000\" align=\"center\">
       <tr>
           <td bgcolor=\"#CC0000\" colspan=\"2\" width=\"100%\">
       
           <table width=\"100%\" border=\"0\" cellpadding=\"5\" cellspacing=\"0\">
        <tr><td bgcolor=\"#CC0000\" > <div align=\"left\"> <span class=\"Style35\">$titre_news</span><br><span class=\"Style24\"> par </span><a href=\"consultants.php?pseudoID=$auteur\" class=\"blanc7\">$auteur</a><span class=\"Style24\"> - le $date</span></br></td></tr>
        <td bgcolor=\"#FFEFBD\" valign=\"top\" class=\"Style29\"><div align=\"justify\"><br>$texte</td>
        <td width=\"143\" bgcolor=\"#FFEFBD\" class=\"noir7\"><br><A HREF=\"#\" onClick=\"window.open('../../images/actualites/$photo','_blank','toolbar=0, location=0, directories=0, status=0, scrollbars=1, resizable=1, copyhistory=0, menuBar=0');return(false)\" class=\"Noir7\"><img src=\"../../images/actualites/$photo\" WIDTH=\"125\" HEIGHT=\"125\"  border=\"0\"  align=\"middle\"</td>

        <tr><td bgcolor=\"#FFEFBD\" colspan=\"2\" ><div align=\"right\"> <A HREF=\"#\" onClick=\"window.open('commentaire.php?id_news=$id_news','_blank','toolbar=0, location=0, directories=0, status=0, scrollbars=1, resizable=1, copyhistory=0, menuBar=0, width=460, height=600');return(false)\" class=\"Noir7\">Commenter</a> <span class=\"Style33\">[$nbrcomment avis]<br/></td></tr></table></td></tr></table>";
      }
?>
<link href="../../styles/style.css" rel="stylesheet" type="text/css">

<style type="text/css">
<!--
.Style24 {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 10px;
    font-style: italic;
    color: #FFFFFF;
}
.Style29 {font-size: 10px; font-family: Verdana, Arial, Helvetica, sans-serif;}
.Style31 {font-size: 9px}
.Style33 {font-size: 9px; font-style:normal; font-family: Verdana, Arial, Helvetica, sans-serif; font-weight:normal;}
.Style35 {
    font-size: 12px;
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-weight: bold;
    color: #FFFFFF;
}
-->
</style>
Quelqu'un pourrait il m'aider a la realiser afin que je puisse afficher 10 actu et ensuite avoir la barre.

Merci d'avance :)

jeudi 21 avril 2005 à 16:14:46 | Re : pb : Afficher le nombre de commentaire

malalam

Administrateur CodeS-SourceS
Si si, avec le meme procede que tu utilisais dans tonprecedent code : LIMIT, et faire bouger le pointeur sur LIMIT en fonction des clics sur suivant ou precedent (par exemple).
jeudi 21 avril 2005 à 16:23:54 | Re : Afficher le nombre de commentaire

punkcity

 Merci encore une fois pour ta reponse aussi rapide.
Je vais  mit atteler dès maintenant en essayant de pas trop me galerer.
mercredi 1 juin 2005 à 22:27:52 | Re : pb : Afficher le nombre de commentaire

punkcity

Réponse acceptée !
Finalement j'ai trouvé après de longues heures de recherche (comme toujours c'est plus simple que je pensais).

La partie qui gére le lien entre la page actu et mysql  et avec la pagination (a vous de faire après l'affichage de la page avec les " echo $row_rsActualites['ID']; echo $row_rsActualites['titre']; "...


<?php
$currentPage = $_SERVER["PHP_SELF"];

$maxRows_rsActualites = 7;
$pageNum_rsActualites = 0;
if (isset($_GET['pageNum_rsActualites'])) {
  $pageNum_rsActualites = $_GET['pageNum_rsActualites'];
}
$startRow_rsActualites = $pageNum_rsActualites * $maxRows_rsActualites;

mysql_select_db($database_connexion, $connexion);
$query_rsActualites = "SELECT ID, titre, auteur, texte, `date`, photo, groupeID FROM actualites ORDER BY ID DESC";
$query_limit_rsActualites = sprintf("%s LIMIT %d, %d", $query_rsActualites, $startRow_rsActualites, $maxRows_rsActualites);
$rsActualites = mysql_query($query_limit_rsActualites, $connexion) or die(mysql_error());
$row_rsActualites = mysql_fetch_assoc($rsActualites);

if (isset($_GET['totalRows_rsActualites'])) {
  $totalRows_rsActualites = $_GET['totalRows_rsActualites'];
} else {
  $all_rsActualites = mysql_query($query_rsActualites);
  $totalRows_rsActualites = mysql_num_rows($all_rsActualites);
}
$totalPages_rsActualites = ceil($totalRows_rsActualites/$maxRows_rsActualites)-1;

$colname_rsNbcomm = "1";
if (isset($_GET['ID'])) {
  $colname_rsNbcomm = (get_magic_quotes_gpc()) ? $_GET['ID'] : addslashes($_GET['ID']);
}
mysql_select_db($database_connexion, $connexion);
$query_rsNbcomm = sprintf("SELECT * FROM commentaire WHERE id_news = %s", $colname_rsNbcomm);
$rsNbcomm = mysql_query($query_rsNbcomm, $connexion) or die(mysql_error());
$row_rsNbcomm = mysql_fetch_assoc($rsNbcomm);
$totalRows_rsNbcomm = mysql_num_rows($rsNbcomm);



$queryString_rsActualites = "";
if (!empty($_SERVER['QUERY_STRING'])) {
  $params = explode("&", $_SERVER['QUERY_STRING']);
  $newParams = array();
  foreach ($params as $param) {
    if (stristr($param, "pageNum_rsActualites") == false &&
        stristr($param, "totalRows_rsActualites") == false) {
      array_push($newParams, $param);
    }
  }
  if (count($newParams) != 0) {
    $queryString_rsActualites = "&" . htmlentities(implode("&", $newParams));
  }
}
$queryString_rsActualites = sprintf("&totalRows_rsActualites=%d%s", $totalRows_rsActualites, $queryString_rsActualites);
?>

La partie qui génére le nombre de commentaire

<A HREF="#" onClick="window.open('lapage?id_news=<?php echo $row_rsActualites['ID']; ?>','_blank','toolbar=0, location=0, directories=0, status=0, scrollbars=1, resizable=1, copyhistory=0, menuBar=0, width=460, height=600');return(false)" class="Noir7">Voir / Ecrire un commenter</a>
[
<?php mysql_select_db($database_connexion, $connexion);
            $news = $row_rsActualites['ID'];
            $result = mysql_query("select count(*) as id_news from commentaire where id_news = '$news'");
            $data = mysql_fetch_array($result);
            $total = $data['id_news'];
            echo $total ?>]




Cette discussion est classée dans : mysql, id, query, not, rsactualites


Répondre à ce message

Sujets en rapport avec ce message

probleme requete d'insertion [ par titigrou ] kikou!!j'ai un problème avec une requete d'insertion que voici: $requete = "INSERT INTO reserver VALUES ('".$reqpseudo['pseudo']."','".$_POST['voiture Ma Bdd 'clignote'... Fonctionne, fonctionne pas... [ par larrieu ] Bonjour,Je suis un peu dépassé...Ma bdd sur mysql comprend une table annonce, des champs idannonce, sujet, message, pseudo (de l'auteur),mail (de l'au Up-load de 2 photos [ par jaco13 ] Bonjour!Voici le code de la page "ajoutvehicule1.inc.php" d'un site de voitures. La partie en noire est la partie avec la requête qui sert à insérer u Problème checkbox sur liste dynamique [ par ] Bonjour, je suis bloqué sur un script, pourriez vous m'aider svp. j'ai une page choiximp.php qui extrait de ma base etiquettes table produits donc Comment savoir le dernier ID (MySQL) [ par ImmortalPC ] Salut, j'ai un super problème. j'ai une table comme cela : CREATE TABLE `test` ( `ID` int(11) NOT NULL auto_increment, `sujet` varchar(255) NOT NULL problème mysql : Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource [ par wizard512 ] je sui entrain de créer un script et je rencontre l'érreur suivante:==>mysql_query(): supplied argument is not a valid MySQL-Link resource============ problème avec doublon dans ma classe de base de donnée [ par Dyr3e ] bonjour, j'ai un problème de Doublon avec la classe pour les base de donnée que j'utilise. Je n'arrive pas a trouver d'ou cela viens mais j'obtiens su Qqun voit un probleme dans ces lignes ? [ par Teclis01 ] Voici le probleme: il m affiche que le premier nom correspondant a un id et les suivant non!Dans le tableau, j ai:-toutes les id-tous les recipients-A exection 2 fois du code? [ par vieaiepie ] Bonjour, J'ai fais un fichier php qui permet d'importer des données à partir d'un fichier texte (fichier de 400 lignes de code que je ne vais pas d&# Reinitialisation [ par blackvault ] Je souhaite reinitialiser une entree de ma table de donnée trez... mais apparemment ca marche pas du tout... pourquoi?? Merci de m'aider! require_on


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,608 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales