Comment afficher une table html depuit un resulta mySQL

Petit nouveau ! | 6 Messages

16 janv. 2008, 09:06

Bonjour
Ce que je veut faire dois ressemble a ca:

Code : Tout sélectionner

<table width="100%" cellspacing="0" cellpadding="0" border="0"> <tr> <td><a href="pages.php?cat=1"><b>Categorie 1</b></a></td> <td><a href="pages.php?cat=2"><b>Categorie 2</b></a></td> <td><a href="pages.php?cat=3"><b>Categorie 2</b></a></td> </tr> <tr> <td width="33%" valign="top"> <ul> <li><a href="pages.php?cat=1&page=1">page 1</a></li> <li><a href="pages.php?cat=1&page=2">page 2</a></li> <li><a href="pages.php?cat=1&page=3">page 3</a></li> <li><a href="pages.php?cat=1&page=4">page 4</a></li> </ul> </td> <td width="33%" valign="top"> <ul> <li><a href="pages.php?cat=2&page=5">page 5</a></li> <li><a href="pages.php?cat=2&page=6">page 6</a></li> <li><a href="pages.php?cat=2&page=7">page 7</a></li> <li><a href="pages.php?cat=2&page=8">page 8</a></li> </ul> </td> <td width="33%" valign="top"> <ul> <li><a href="pages.php?cat=3&page=9">page 9</a></li> <li><a href="pages.php?cat=3&page=10">page 10</a></li> <li><a href="pages.php?cat=3&page=11">page 11</a></li> <li><a href="pages.php?cat=3&page=12">page 12</a></li> </ul> </td> </tr> </table>
mais comme vous pouvez le constater je suis nouveau sur PHP et je ne sais pas comment commencer. en sachant que les info qui forme les liens (Catégorie, cat, page, etc...) vienne tousse de la BdD mySQL le nombre de colonne <tr> doive être définie selon le nombre de résulta de la recherche avec un max de 4 colonne.

j'ai essayer des ta de truc mais sans résulta

dison que si j'ai 3 categorie comme resulta alors la table aura que 3 colonnes si j'en est 10 elle aura 4 colonnes mais elle aura plusieurs ranger

| cat | cat | cat | cat |
|page | page | page | page |
| cat | cat | cat | cat |
|page | page | page | page |
| cat | cat | | |
|page | page | | |
<?php
include("_connect.php");

$catID = $_GET['catID'];
$cols = 4;
$result = mysql_query("SELECT count('pageID') FROM pages WHERE catID='$catID'");
$num = mysql_result($result, 0);

$result2 = mysql_query("SELECT * FROM pages WHERE catID='$catID'");
$num2 = mysql_result($result2,$connect);

echo '<table border=1>';
for( $i = 1; $i <= $num; $i++ ){ 
    echo '<tr><td> ';
    for( $j = 1; $j <= $cols; $j++ ){
        echo $num2 . ' </td><td> ';
    }
echo '</td></tr>';
}
echo '</table>';
?> 

Mammouth du PHP | 804 Messages

16 janv. 2008, 10:30

Bonjour,

Tu peu faire tout ca en une seul requete avec des tableaux mul...
<?php
$query = "SELECT * FROM pages condition ...si tu en a.....";
$mysql_result = execute_requete($query);

while($row = mysql_fetch_array($mysql_result)) {

// mis en tableau 
$menu[$row['Cat']][]=$row['lien'];

} foreach($menu as $row['Cat'] => $row['lien']) {

// tu affiche la catégorie
echo $row['Cat'];

// qui suivent par les liens
echo "<ul>";
foreach ( $row['lien'] as $row['lien'])
{ 
?> 
// on list les liens de la catégorie		
<li><a href=""></a></li>
<?php }
echo "</ul>";

ensuite je suppose que tu sera adapter la mise en form tableau :wink:

Petit nouveau ! | 6 Messages

16 janv. 2008, 11:05

merci pour ton aide mais je reçois une erreur. j'ai fais deux test et je reçois la même erreur.

Code : Tout sélectionner

Fatal error: Call to undefined function execute_requete() in /home/bernard/public_html/cfi/b.php on line 6
<?php
include("_connect.php");

$catID = 4;
$sql = "SELECT * FROM pages WHERE catID='$catID'";
$query = mysql_query($sql);
$mysql_result = execute_requete($query);
//$mysql_result = execute_requete($sql);

while($row = mysql_fetch_array($mysql_result)) {
	// mis en tableau 
	$menu[$row['Cat']][]=$row['lien'];
}
	foreach($menu as $row['Cat'] => $row['lien']) {
	// tu affiche la catégorie
	echo $row['Cat'];
	// qui suivent par les liens
	echo "<ul>";
		foreach ( $row['lien'] as $row['lien']) { 
		// on list les liens de la catégorie 
		echo "<li><a href=\"index.php?aaaaa\">aaaaa</a></li>";
		}
	}
?>

Mammouth du PHP | 804 Messages

16 janv. 2008, 11:20

pour mes requetes j'utilise des fonctions , modifis la à ta facon :wink:

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

16 janv. 2008, 11:24

Faut peut être aussi essayer de comprendre le code qui t'es donné au lieu de juste le copier/coller et voir que ça ne fonctionne pas... ;)

"Call to undefined function execute_requete()" => tu demandes à php de faire appel à la fonction execute_requete() alors que tu n'as jamais défini celle-ci... pourquoi du coup vouloir a tout prix l'utiliser, d'autant que tu as en plus adapté le code correctement en y insérant un mysql_query() ? :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Mammouth du PHP | 804 Messages

16 janv. 2008, 11:25

$mysql_result = execute_requete($query);
Ici je fais appelle à une fonction que tu n’a pas dans ton scripts
execute_requete();
Pour la requête ca change rien à l'idée de base, code la comme tu le fais habituellement

Mammouth du PHP | 804 Messages

16 janv. 2008, 11:27

oups on a répondu en même temps :D

Petit nouveau ! | 6 Messages

16 janv. 2008, 11:27

normalement je cree mes page en ASP je suis donc tout nouveau a PHP et en ASP le code donc j'ai besoin ressemble a sa

Code : Tout sélectionner

<% Response.Write "<table border=0 cellspacing=0 cellpadding=10 align=center>" & chr(13) for i = 1 to 4 if not RS.EOF then Response.Write "<tr align=center valign=middle>" for j = 1 to 3 if not RS.EOF then Response.Write "<td width=170 valign=top><a href=index.asp?id=" & trim(RS("id")) & ">" & chr(13) Response.Write "<font size=1>what ever goes here </font></td>" & chr(13) else Response.Write "<td colspan=" & 4-j & ">&nbsp;</td>" & chr(13) exit for end if PicturesRS.MoveNext next Response.Write "</tr>" & chr(13) else exit for end if next Response.Write "</table>" & chr(13) %>
pourriez vous m'aider a le convertir en PHP? merci