Tableau PHP et Affichage par colonnes verticales
11 messages • Page 1 sur 1
Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics
Tableau PHP et Affichage par colonnes verticales
Bonjour
Me voila devant un probleme que je n'arrive décidement pas a gérer .
Je souhaite afficher les résultats d'une requete sql en 3 colonnes mais avec un affichage de haut en bas et non de gauche a droite comme on trouve partout , a croir que personne ne sait le faire , dailleurs apres avoir poster ma question dans plusieurs forum les seuls réponses que j'ai c'est ton code est crade , etc ... mais sans réponses pour autant ... bref , je pense qu'ici on saura me répondre .
Voici une partie de mon code , apres ca je bloque , je n'arrive pas saisir comment aller plus loin :
Ce code affiche evidemment ce que je lui demande soit 30 enregistrements sur 30 lignes ce qui est parfaitement normal .
Comment arreter le compteur a $i<$tier et afficher les 10 enregistrements de haut en bas puis passer a col+1 et ainsi de suiTE
Je vous remercie par avance de votre aide .
Max
Me voila devant un probleme que je n'arrive décidement pas a gérer .
Je souhaite afficher les résultats d'une requete sql en 3 colonnes mais avec un affichage de haut en bas et non de gauche a droite comme on trouve partout , a croir que personne ne sait le faire , dailleurs apres avoir poster ma question dans plusieurs forum les seuls réponses que j'ai c'est ton code est crade , etc ... mais sans réponses pour autant ... bref , je pense qu'ici on saura me répondre .
Voici une partie de mon code , apres ca je bloque , je n'arrive pas saisir comment aller plus loin :
- Code: Tout sélectionner
<?
//ma connexion
$requete = mysql_query("SELECT * FROM matable where clause = 'cequeje veu' ORDER BY nom LIMIT 0,30");
$nbreponse = mysql_num_rows($requete);
$nbrcol = 3;
$tier = ceil($nbreponse/$nbrcol);
while ($result = mysql_fetch_array($requete))
{
$tableau[] = $result["nom"];
}
for ($i=0; $i<$tier ; $i++)
{
echo "$tableau[$i]<br>";
}
mysql_close() ;
?>
Ce code affiche evidemment ce que je lui demande soit 30 enregistrements sur 30 lignes ce qui est parfaitement normal .
Comment arreter le compteur a $i<$tier et afficher les 10 enregistrements de haut en bas puis passer a col+1 et ainsi de suiTE
Je vous remercie par avance de votre aide .
Max
Tu peux faires comme ca
- Code: Tout sélectionner
$requete = mysql_query("SELECT * FROM matable where clause = 'cequeje veu' ORDER BY nom LIMIT 0,30");
$nbreponse = mysql_num_rows($requete);
$tier = ceil($nbreponse/$nbrcol);
while ($result = mysql_fetch_array($requete))
{
$tableau[] = $result["nom"];
}
for ($i=0; $i<$nbreponse ; $i++)
{
if($i == $tier)
{echo "</td><td>";$tier=$tier*2;}
echo $tableau[$i]."<br>";
}
echo "</td></tr></table>";
mysql_close() ;
Tu vas pas me croire certainement mais ca fait 3 jours que je suis dessus .
L'incrémentation de $j j'avais essayé mais sans succés ca me donnait toujours 31 résultats au lieu des 30 que je demandais ...
J'ai meme essayé ac data seek qui placait le pointeur+1 a chaque boucle ... sans succés .
Autant des codes me paraissent simple autant d'autre ont du mal a rentrer .
Je vais essayé les solutions proposés et merci
L'incrémentation de $j j'avais essayé mais sans succés ca me donnait toujours 31 résultats au lieu des 30 que je demandais ...
J'ai meme essayé ac data seek qui placait le pointeur+1 a chaque boucle ... sans succés .
Autant des codes me paraissent simple autant d'autre ont du mal a rentrer .
Je vais essayé les solutions proposés et merci
En fait j'avais fait comme ca , ca me donnait $i =30 donc ca affichait 31 enregistrements dont 1 en double .
J'ai laché l'affaire car je n'ai jms compris pk :
Si tu teste ac tes données tu verras ce que ca donne .
En tout cas le code de mumbly marche impecc , etant donné que parfois le tier n'est pas forcement un nombr pair j'ai fait des td valign top et ca regle e soucis .
Merci encore
J'ai laché l'affaire car je n'ai jms compris pk :
- Code: Tout sélectionner
for ($i=0, $j=0; $i<$tier ; $j++)
{
if($j == $nbcol)
{
$j=0;
$i++;
}
echo "$nom";
}
Si tu teste ac tes données tu verras ce que ca donne .
En tout cas le code de mumbly marche impecc , etant donné que parfois le tier n'est pas forcement un nombr pair j'ai fait des td valign top et ca regle e soucis .
Merci encore
mumbly a écrit:Tu peux faires comme ca
Bonjour,
Celà fait plusieurs jours que j'essaie d'adapter l'idée de mumbly pour mon problème mais j'ai besoin d'aide.
Celà fonctionne si on utilise la notion de tableau mais je ne peux pas utiliser cette notion
Voilà mon code actuel
- Code: Tout sélectionner
$q1 = mysql_query("SELECT cat, COUNT(*) AS num FROM sites where cat>'' GROUP BY cat ORDER BY cat ASC");
$n1 = mysql_num_rows($q1);
echo "<p><span class="titre">Sélectionnez une catégorie ...</span></p>\n\n";
echo "<div align="center">";
echo "<table class="cadre" width="100%" align="center">\n";
echo "<tr>\n";
echo "<td width="33%">\n";
$i = 0;
while ($r1 = mysql_fetch_array($q1)) {
echo ". <a href="liens.php?cat=".urlencode($r1["cat"])."">".htmlentities($r1["cat"])."</a> (".$r1["num"].")<br>\n";
$i++;
if ($i>17){
echo "</td><td width="33%">\n";
$i = 0;
}
}
echo "<br>\n";
echo "</td>\n";
echo "</tr>\n";
echo "</table>\n";
echo "</div>\n\n";
En fonction de certaines quantités de données, çà marche bien mais, parfois, c'est nul
Mon but est de répartir mes données classées en 3 colonnes de haut en bas et de gauche à droite
Si quelqu'un peut me dépanner, merci d'avance
Une réponse à l'arrache, cela changera du truc qui me gonfle depuis ce matin
A vue de nez, cela doit bien marcher et faire des trucs du genre (si c'est ce que tu demandes) :
0 4 8
1 5 9
2 6
3 7
Dis moi si cela marche (et un bl en remerciement si tu as un pr 7
)
Edit : petite modification
- Code: Tout sélectionner
$NbElements=count($tableau);
if (($NbElements/3)==round($NbElements/3)) $NbLignes=$NbElements/3;
else $NbLignes=floor($NbElements/3)+1;
for ($i=0;$i<$NbLignes;$i++)
{ echo "<tr>";
for ($col=0;$col<3;$col++)
{ $Pos=$i+$col*$NbLignes;
echo "<td>";
if ($pos<$NbElements) echo $tableau[$pos];
echo "</td>";
}
echo "</tr>";
}
A vue de nez, cela doit bien marcher et faire des trucs du genre (si c'est ce que tu demandes) :
0 4 8
1 5 9
2 6
3 7
Dis moi si cela marche (et un bl en remerciement si tu as un pr 7
Edit : petite modification
Dernière édition par xTrade le Mar Mar 20, 2007 12:06, édité 1 fois.
Merci xTrade,
C'est surement très bien mais je ne peux pas me servir de la notion de tableau puisque j'extrai les données de la base et que j'obtiens des enbregistrements sous la forme <a href=\"liens.php?cat=".urlencode($r1["cat"])."\">".htmlentities($r1["cat"])."</a>
J'ai essayé avec une mise en tableau mais çà ne créée pas le lien voulu pour chaque enregistrement
C'est surement très bien mais je ne peux pas me servir de la notion de tableau puisque j'extrai les données de la base et que j'obtiens des enbregistrements sous la forme <a href=\"liens.php?cat=".urlencode($r1["cat"])."\">".htmlentities($r1["cat"])."</a>
J'ai essayé avec une mise en tableau mais çà ne créée pas le lien voulu pour chaque enregistrement
alainp a écrit:Merci xTrade,
C'est surement très bien mais je ne peux pas me servir de la notion de tableau puisque j'extrai les données de la base et que j'obtiens des enbregistrements sous la forme <a href="liens.php?cat=".urlencode($r1["cat"])."">".htmlentities($r1["cat"])."</a>
J'ai essayé avec une mise en tableau mais çà ne créée pas le lien voulu pour chaque enregistrement
A ta place, je ferais un truc du genre
- Code: Tout sélectionner
while ($tableau = mysql_fetch_object($q1)) ;
$i=0;
while ($r1 = mysql_fetch_array($q1))
{ $tableau[$i++]="<a href="liens.php?cat=".urlencode($r1["cat"])."">".htmlentities($r1["cat"])."</a>";
}
Puis tu traites le tableau comme je l'ai fais
11 messages • Page 1 sur 1
Formation recommandée sur ce thème :
Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Google Labs lance Google Alternate Views
- Afficher le PageRank en entier dans Firefox (barre d'outils Google)
- Sortie officielle de GoogleStats v2.0 !
- Lancement de Mozbot
- Nouvelle version de notre FAQ
- Référencement local gratuit dans l'annuaire WebRankInfo
- Sites bénéficiant de plusieurs liens supplémentaires (SiteLinks) dans les résultats Google
- Sortie de GoogleStats v2.01
- Blogger Pro devient gratuit
- Historique des "Google Update"
Consultez la description détaillée des produits ou services de Google suivants : Google SearchMash
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités






le forum