Coup de main pour projet php

Répondre
daguero
le 10/06/2007 à 00:33
daguero
yesss, excelent c'était bien ça, merci bien :D

dernier truc aprés j'arrète je dois créer un fichier php qui liste toutes les informations de ma BDD, c'est à dire qu'il doit afficher dans un tableau :

-le titre du document
-l'url du document
-tous les mots clé lui étant assoiés
-toutes les images lui étant associées


j'ai amorcé le tout ça me donne ça :

<?

require('infos.php');

$db = mysql_connect($serveur, $user, $pass) or die ("Connexion impossible");

mysql_select_db($base ,$db) or die ("Connexion a la base impossible");

//récupère tous le titre et l'url
$sql1 = 'SELECT numeroD, Titre, url FROM Document';
$req1 = mysql_query($sql1) or die ('Erreur : '.mysql_error() );
//compte le nombre de titres disponibles
$total1 = mysql_num_rows($req1);
$tab1 = mysql_fetch_array($req1);
//retourne l'identifiant du document
$rep1 = $tab1[0];
//retourne le titre du document
$titree = $tab1[1];
//retourne l'url du document
$urll = $tab1[2];
//récupère t'identifiant des mots clé
$sql2 = "SELECT numeroT FROM decrit WHERE numeroD = '$rep1' ";
$req2 = mysql_query($sql2) or die ('Erreur : '.mysql_error() );
//compte le nombre de titres disponibles
$total2 = mysql_num_rows($req2);
for ( $i = 0 ; $i < $total2 ; $i++ )
{
//retourne l'identifiant des mot clés
$tab2 = mysql_fetch_array($req2);
$rep2 = $tab2[0];
$sql4 = "SELECT motCle FROM terme WHERE numeroT = '$rep2'";
$req4 = mysql_query($sql4) or die ('Erreur : '.mysql_error() );
$tab3 = mysql_fetch_array($req4);
$rep3 = $tab3[0];
// debut du tableau
echo '<table bgcolor="#FFFFFF">'."\n";
// première ligne on affiche les titres prénom et surnom dans 2 colonnes
echo '<tr>';
echo '<td bgcolor="#669999"><b><u><center>Titre</center></u></b></td>';
echo '<td bgcolor="#669999"><b><u><center>URL</center></u></b></td>';
echo '<td bgcolor="#669999"><b><u><center>Mot(s) clé</center></u></b></td>';
echo '<td bgcolor="#669999"><b><u><center>Image</center></u></b></td>';
echo '</tr>'."\n";
// lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne.
echo '<tr>';
echo '<td bgcolor="#CCCCCC"><center> '.$titree.'</center></td>';
echo '<td bgcolor="#CCCCCC"><center> '.$urll.' </center></td>';
echo '<td bgcolor="#CCCCCC"><center>'.$rep3.'</center></td>';
echo '</tr>'."\n";
echo '</table>'."\n";
}
mysql_free_result($req1);
?>


Ca m'affiche pour un document avec trois mots clé enregistrés 3 tableau avec chacun le titre, l'url et un des trois mots clés mais je ne vois pas du tout comment mettre tous les mots clé sur une seule ligne. Une idée svp ?

Note du modérateur : Penser au bb-code..... : 2 ème fois
LA GLOBULE
le 10/06/2007 à 01:44
LA GLOBULE
Si tu fais une requête SQL dans une boucle for, pose toi cette question : es tu obligé de la faire ? Parce que c'est typiquement le genre de chose qui écroule un serveur.

Dans ton cas, tu peux l'éviter en faisant un LEFT JOIN sur ta première requête.

Ensuite, pour ton problème, je pense que tu as juste un soucis de HTML, mais j'avoue que je ne me suis pas plongé dans ton code.
Keika
le 10/06/2007 à 09:24
Keika
tu mets ton tableau dans un for, donc forcement a chaque valeur que le for renvoit, il renvoit un nouveau tableau. le truc est de commencer le tableau avant le for et de ne laisser que les <tr><td> dans la boucle... et oublies pas le </table> apres la fin du for, ou tu auras des soucis html
Le PHP --> C'est dur !
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours