Page : 1 |
KenKiller |
Posté le 13/08/2007 20:17
- #
|
Membre
9 messages
19 ans |
Salut à tous !
Je rencontre un problème qui me prend la tête depuis plus d'un heure.
Pour être le plus clair possible, je vais voius montrer mon code :
$cat = mysql_query("SELECT * FROM isifo_cats") or die (mysql_error());
while ($cats = mysql_fetch_array($cat))
{
$tpl-> assign_block('cat', array('titre' => $cats['titre'], 'id' => $cats['id']));
/*Selection des sous catégories.*/
$forum = mysql_query("SELECT * FROM isifo_sous_cats WHERE cat='". $cats['id'] . "'") or die(mysql_error());
while ($forums = mysql_fetch_array($forum));
{
$id_sujet = mysql_query("SELECT * FROM isifo_sujets WHERE titre='". $forums['dern_sujet'] . "'") or die(mysql_error());
$id_sujets = mysql_fetch_array($id_sujet);
$query = mysql_query("SELECT COUNT(*) AS nbre_entre FROM isifo_sujets WHERE cat='". $forums['id'] . "'") or die(mysql_error());
$donnee = mysql_fetch_array($query);
$query1 = mysql_query("SELECT COUNT(*) AS nbre_entre FROM isifo_reponses WHERE cat='". $forums['id'] . "'") or die(mysql_error());
$donnee1 = mysql_fetch_array($query1);
$tpl-> assign_block('cat.sous_cat', array('cat_id' => $forums['id'],
'cat_titre' => $forums['titre'],
'nbre_sujet' => $donnee['nbre_entre'],
'nbre_message' => $donnee['nbre_entre']+ $donnee1['nbre_entre'],
'dern_date1' => date('d/m/Y', $forums['dern_date']),
'dern_heure1' => date('H\h i', $forums['dern_date']),
'dern_pseudo1' => $forums['dern_pseudo'],
'dern_id' => $forums['id'],
'dern_sujet1' => $forums['dern_sujet']
));
}
}
Mon problème est que le deuxième while ne s'effectue pas.
Je me demandé donc, si les block sous block fonctionné comme je les ai utilisé, donc le problème viendrait d'ailleur (mais où...), ou le problème vient de là ??
Merci de votre aide.
|
gaga26 |
Posté le 14/08/2007 14:51
- #
|


741 messages
18 ans |
Salut,
L'assignation à l'air juste, maintenant, il faut voir le template.
Par contre je n'approuve pas du tout ta manière de faire tes requêtes, c'est un genre de code à avoir 50 requêtes par page...
|
KenKiller |
Posté le 14/08/2007 16:11
- #
|
Membre
9 messages
19 ans |
voilà le template
<!-- BEGIN cat -->
<tr class="titre_cat">
<td colspan="4">{$titre} : {$id} </td>
</tr>
<!-- BEGIN cat.sous_cat -->
<tr class="sous_cat">
<td><a href="forum-2-{$cat_id}.html">{$cat_titre} </a></td>
<td>{$nbre_sujet} </td>
<td>{$nbre_message} </td>
<td class="dern_sujet">
{if(!empty($dern_date1) && !empty($dern_pseudo1) && !empty($dern_sujet1))}
Le : {$dern_date1} à {$dern_heure1}<br/>
Par : <span class="membre"><a href="membre-4-{$dern_pseudo1}.html">{$dern_pseudo1}</a></span><br/>
Sujet : <span class="lien_sujet"><a href="forum-3-{$id}-{$dern_id}.html">{$dern_sujet1}</a></span>
{/if}
</td>
</tr>
<!-- END cat.sous_cat -->
<!-- END cat -->
Et que suggère tu pour faire de meilleur requête ??
|
gaga26 |
Posté le 14/08/2007 17:07
- #
|


741 messages
18 ans |
C'est bizarre, ton template est juste. Tu es sûr que tes requêtes retourne quelque chose ?
Cherche jointure+mysql dans google.
|
KenKiller |
Posté le 14/08/2007 17:16
- #
|
Membre
9 messages
19 ans |
Ca y est j'ai trouvé l'erreur !!!!!!!!
Il y avait un ';' a la fin du while, ce qui faisait tout planté.
Je suis ouvert à tes propositions d'utiliser les jointures, car personellement, je ne vois pas où les utiliser Edité par KenKiller le 14/08/2007 18:08
|
Jashugal |
Posté le 14/08/2007 20:58
- #
|
Membre
23 messages
17 ans |
Pour le nombre de sujets/réponses, ne fait pas de requête à l'affichage.
Tu mets ces informations dans la table forums(ou cats), et tu update +1 à chaque réponse/nouveau sujet.
Pour les jointures, je te renvoie sur le tuto du site du zero, c'est expliqué il me semble. Edité par Jashugal le 14/08/2007 20:58
|
Noix de Coco |
Posté le 14/08/2007 21:08
- #
|

Membre
36 messages
16 ans |
En effet :
http://www.siteduzero.com/tuto-3-8504-1-les-jointures-moyen-d-economiser-des-ressources.html
|
Page : 1 |