Afficher des liste en 2 colonnes c possible ???

Afficher des liste en 2 colonnes c possible ??? - PHP - Programmation

Marsh Posté le 06-03-2005 à 15:28:50    

voila
 
j'ai cree un scrip qui m'affiche les derniere articles, avec une pettie image, regardez :
 
http://ordigamers.com/tests.php
 
j'aimerais l'afficher en 2 colonne, comme sur la page d'acceuil du site
 
la marche a suivre est t'elle complex ?
 
je vous donne le code qui sert a affiché, enfin l'étape en html :
 

Code :
  1. $text .= "<tr >
  2.                                
  3.                                 <td style='width:100%'  > <font style='color:blue'><b> TEST :</b></font> <a style='color:black'  href='articles-$content_id-$var1.html'>$var2</a> <br />
  4. <a href='articles-$content_id-$var1.html'>  <img border='0' src='http://ordigamers.com/e107_files/images/".$content_id.".jpg' align='left'vspace='4' hspace='4'> </a>      <font style='color:black'> $content_summary </font> <br></td>
  5.                                 </td>
  6.                                 </tr>";


 
si c'est d'autre chose que vosu avez besoin dite le moi,
 
Un gros gros merci a tous :)

Reply

Marsh Posté le 06-03-2005 à 15:28:50   

Reply

Marsh Posté le 06-03-2005 à 17:12:10    

T'utilises des tableaux donc oui.
Mais pour faciliter la lecture du fichier, tu ferais bien de travailler un peu plus l'indentation du code. (le décalage entre une balise et les balises qui sont à l'intérieur)
 
EDIT : C'est pas du php, mais de l'html.


Message édité par omega2 le 06-03-2005 à 17:12:53
Reply

Marsh Posté le 06-03-2005 à 17:33:48    

merci de ta réponse
 
mais je voudrais que ça sois sous cete forme  
 
[nom article 1][nom article 2]
[nom article 3][nom article 4]
[nom article 5][nom article 6]
 
comment pui-je faire ? est tu sur que ça releve que du html cette mise en page pour afficher la liste de mes articles recent en php ?
 
un petit exemple ?
 
merci beaucoupp, ca aiderais pas mal de personnes ça je pense ;)

Reply

Marsh Posté le 06-03-2005 à 17:45:30    

laurent74 a écrit :


comment pui-je faire ? est tu sur que ça releve que du html cette mise en page pour afficher la liste de mes articles recent en php ?


 
Evidement c'est de l'html, comme tout ce que php affiche d'ailleurs.
 
J'arriverais jamais à comprendre ceux qui veulent courrir (faire du php) avant de savoir marcher (utiliser l'html), y a 3 balises de bases pour faire des tableaux html, c'est quand même pas chinois, si c'est pas expliqué de base dans un tutorial...
 
Puis derrière, pour la partie php, y a juste une question de logique : quand dois-je mettre telle ou telle balise pour indiquer que je suis dans la première colonne (<tr><td> ) ou dans la deuxième (</td></tr> ), tu sais faire un test, tu as répondu à la question :)

Reply

Marsh Posté le 06-03-2005 à 17:52:00    

ben ecoute naceroth, j'aprecie ton message, c'est gentil de m'avoir répondu
 
mais pour faire un tableau a 2 colone, rien de plus simple, pour reprendre mon script voila comment je fait :
 
----------------------------------------------------
 
$text .= "<tr >
                               * TD 1 : 1er colonne *
                                <td style='width:100%'  > <font style='color:blue'><b> TEST :</b></font> <a style='color:black'  href='articles-$content_id-$var1.html'>$var2</a> <br />
 <a href='articles-$content_id-$var1.html'>  <img border='0' src='http://ordigamers.com/e107_files/images/".$content_id.".jpg' align='left'vspace='4' hspace='4'> </a>      <font style='color:black'> $content_summary </font> <br></td>
 
                               * TD 2 : 2er colonne avec meme contenue *
<td style='width:100%'  > <font style='color:blue'><b> TEST :</b></font> <a style='color:black'  href='articles-$content_id-$var1.html'>$var2</a> <br />
 <a href='articles-$content_id-$var1.html'>  <img border='0' src='http://ordigamers.com/e107_files/images/".$content_id.".jpg' align='left'vspace='4' hspace='4'> </a>      <font style='color:black'> $content_summary </font> <br></td>
                                </td></tr>";
 
----------------------------------------------------
 
bref j'ai mi 2 fois la meme ligne ,et ça m'affiche bien en 2 colonnes, comme il se doit, mais c'est 2 fois les même a chaques ligne...
 
le probleme reside dans le fait que je veut que ça sois  comme ça :
 
[nom de l'article 1][nom de l'article 2]
[nom de l'article 3][nom de l'article 4]
 
 
et la avec l'exemple que je t'ai mit, ça me fait ça :
 
[nom de l'article 1][nom de l'article 1]
[nom de l'article 2][nom de l'article 2]
 
donc je pense qu'il doit falloir un sintaxe logique en php justement non, pour lui indiqué de remplire les cases la ou il faut ??
 
Ca peut apraitre bete mais ca fait 2 jours que je buche dessus...
 
un gros merci d'avance :)


Message édité par laurent74 le 06-03-2005 à 17:52:52
Reply

Marsh Posté le 06-03-2005 à 18:03:59    

Citation :

bref j'ai mi 2 fois la meme ligne ,et ça m'affiche bien en 2 colonnes, comme il se doit, mais c'est 2 fois les même a chaques ligne...


 
Forcément. Quand tu lis les résultats de ta requête, tu ne les lis qu'une à une, tu ne peux pas afficher 2 colonnes en même temps (logique non ? :)). Il te faut donc savoir, quand tu lis un nouvel article si tu es dans un cas "j'affiche la première colonne" ou dans le cas "j'affiche la deuxième et je change de ligne".
 
Pour ça, tu as besoin d'une variable $colonne par exemple qui tu vas tester et affecter en fonction de la situation :  

Code :
  1. if ($colonne == 1){
  2. affiche code pour la colonne 1
  3. $colonne = 2}
  4. else{
  5. affiche code pour la colonne 2
  6. $colonne = 1}

Reply

Marsh Posté le 06-03-2005 à 18:06:37    

Et elle est où la partie où tu vérifies dans quelle colone tu dois écrire?
Tu sais le truc là où on fait un "si on doit écrire dans la premiére colone alors ... sinon ....".

Reply

Marsh Posté le 06-03-2005 à 18:11:12    

oui je vien de tilte, en gros, si c'est le chiffre 1,3,5 ça s'affiche a gauche, et si c'est les chiffre 2,4,6 ça s'affiche a droite (le content_id)
 
La je vais avori besoin de ton aide, j'ai un début de script
 
if ($content_id == "2,4,6" ) {$pair == $content_id };
 
if ($content_id == "1,3,5" ) {$impair == $content_id };
 
après c tous simple
 
--------------------------------
 
$text .= "<tr >
                               * TD 1 : 1er colonne *
                                <td style='width:100%'  > <font style='color:blue'><b> TEST :</b></font> <a style='color:black'  href='articles-$pair-$var1.html'>$var2</a> <br />
 <a href='articles-$pair-$var1.html'>  <img border='0' src='http://ordigamers.com/e107_files/images/".$pair.".jpg' align='left'vspace='4' hspace='4'> </a>      <font style='color:black'> $content_summary </font> <br></td>
 
                               * TD 2 : 2er colonne avec meme contenue *
<td style='width:100%'  > <font style='color:blue'><b> TEST :</b></font> <a style='color:black'  href='articles-$impair-$var1.html'>$var2</a> <br />
 <a href='articles-$impair-$var1.html'>  <img border='0' src='http://ordigamers.com/e107_files/images/".$impair.".jpg' align='left'vspace='4' hspace='4'> </a>      <font style='color:black'> $content_summary </font> <br></td>
                                </td></tr>";  
 
-----------------------------------
 
Quelqu'un pourais m'aider a le fignolé ?
 
merci beaucoup


Message édité par laurent74 le 06-03-2005 à 18:13:34
Reply

Marsh Posté le 06-03-2005 à 18:17:03    

ou alors1 article sur 2 ca s'affiche a gauche, et 1 article sur 2 ça s'affiche a droite (insctruction donné 2 fois mais avec un décalage pour pas que ça sois les meme et que ça tombe pile poil)
 
Helpp please :-/


Message édité par laurent74 le 06-03-2005 à 18:17:21
Reply

Marsh Posté le 06-03-2005 à 18:21:18    

Est ce que tu comprends ce que t'es entrein de faire?
 
Là ce que je vois, c'est que tu mets le contenu dans telle ou telle variable en fonction de l'indice mais qu'ensuite tu remplis quand même les deux colones à chaque coup.

Reply

Marsh Posté le 06-03-2005 à 18:21:18   

Reply

Marsh Posté le 06-03-2005 à 18:25:20    

omega oui remplir les 2 meme colonnes, mais avec l'identification du numero de l'article a affiché, la variable est differente si tu regarde ($pair et $impair)
 
sinon j'ai decouvert ça
 
http://www.phpscripts-fr.net/porti [...] php?id=104
 
on pourais en tiré un petit quelques chose ?
 
j'ai que 6 articles a affichés sur 2 colones

Reply

Marsh Posté le 06-03-2005 à 18:39:25    

Le principe à utiliser n'est pas :
- "je remplis une variable sur deux et cré une ligne de tableau à chaque coup"
 
Le bon principe est :
- cas un : "j'ouvres une ligne du tableau et je remplis la premiére case"
- cas deux : "je remplis la seconde case et je ferme la ligne du tableau"

Reply

Marsh Posté le 06-03-2005 à 18:50:13    

ho, la je montre mes limites mes amis
 
avez vous un exempel concret ? ca vaudrais mieux que de longues explications je pense
 
Merci

Reply

Marsh Posté le 06-03-2005 à 19:07:16    

Je pense que l'exemple, je l'ai déjà donné, avec la théorie.
 
Mais là, visiblement, il manque même les bases (comme la différence entre comparaison et affectation par exemple)

Reply

Marsh Posté le 06-03-2005 à 19:14:58    

oué je sais mais bon, avec ça :
 
http://www.phpscripts-fr.net/porti [...] php?id=104
 
 on peut m'aider adapter comme i lfaut ce petit script ?

Reply

Marsh Posté le 06-03-2005 à 19:23:50    

http://ordigamers.com/tests.php
 
c'est un jolie carnage ???

Reply

Marsh Posté le 06-03-2005 à 20:17:26    

Je pense qu'avant que tu prennes des scripts tout cuits et que tu les adapte a ton site tu ferais mieux d'apprendre les bases, car d'apres ce que j'ai vu c'est pas encore ca...
 
Je crois qu'il faudrait que tu visite ce site : http://www.phpdebutant.org
 
De plus je viens de voir ton site... Il faut vraiment que tu apprenes les bases. Parceque bon, c'est bien joli d'avoir un doctype xhtml 1.1, mais si le reste du code ne suit pas...
 
Pour l'(x)html et css va voir ces sites :
http://openweb.eu.org
http://css.alsacreations.com
 
Ne le prends pas mal, mais la ton site ressemble plus a du bricolage qu'a autre chose.  
Je veux bien que les francais soient de grand "bricoleurs", mais faut pas pousser.
 
Je reprends l'exemple de quelqu'un "avant de vouloir courrir, faut deja aprendre a marcher..."

Reply

Marsh Posté le 06-03-2005 à 20:22:47    

mais le css et autres, n'a rien a voir avec mon prob ?
 
j'ai jsute besoin de 2-3 codes php
 
 
sinon mon site, bricolo, a quel point de vue ? sa qualitée en elle meme ?
 
en fait le truc ideal serait ça : http://www.lephpfacile.com/tips/index.php?p=20
 
Mais helase ca s'affiche par 2 fois la meme choses sur chaques lignes.....

Reply

Marsh Posté le 06-03-2005 à 20:26:07    

Comme quoi, les exemples conncret de code que tu demandes depuis tout à l'heure, tu les as trouvés tout seul :D

Reply

Marsh Posté le 06-03-2005 à 20:38:02    

C'est clair que la validation xhtml => http://validator.w3.org/check?uri= [...] Ftests.php
782 erreurs détectés c'est impressionnants. :o
Heureusement que c'est souvent les même ;)

Reply

Marsh Posté le 06-03-2005 à 20:39:43    

naceroth, oui avec google, lol
 
seulement ca n'a aps l'air de fonctionner
 
voila mon code (agreablement mi en page, avec des couleurs, c'est très court) si quelqu'un pourais m'aiguiller pour adapter ce code de ce lien :
 
http://www.lephpfacile.com/tips/index.php?p=20  
 
sur mon code php :
 
http://phpdebutant.org/wall2752.php
 
voila, un immense merci car ca fait plus de 2 jours que je galeres, et la communeaute hardware m'a beaucoup aidé pour d'autres blems auparavent :)

Reply

Marsh Posté le 06-03-2005 à 20:48:35    

Je suis désolé mais on est pas là pour faire ton travail à ta place. :( C'est la régle 0C du forum.
D'ailleur, c'est un peu comme pour la section hardware. Ils t'ont aidé à trouvé les solutions, mais ils sont pas venu chez toi pour faire eux même l'installation des drivers ou des mises à jour voire pire pour aller t'acheter ta future nouvelle carte vidéo avec ta carte banquaire à toi.
 
Là, c'est exactement pareil, on pourait te donner un script tout fait, on y perdrait surement moins de temps qu'en te poussant sur la bonne voie, mais si on fait ça, on te vérait à nouveau débarquer dans 1 heure pour un autre probléme peut être encore plus basique et ensuite demain et encore une fois mardi .... Ca ne serait bon pour personne.

Reply

Marsh Posté le 06-03-2005 à 20:53:57    

ben le principe c'est que je comprenne l'excemple.
 

Reply

Marsh Posté le 06-03-2005 à 21:00:28    

Si on enléve la partie sur le fichier, y a pas plus simple comme exemple concernant les tableau html créé en php.
Là, je suis désolé mais je saurais pas mieux l'expliquer qu'eux.
Par contre, c'est vrai que dans la page que tu cites, ils ont oublié de terminer la derniére ligne si c'est pas fait dans la boucle. Mais rajouter ça, ne rendrais pas l'exemple plus simple. Ca le rendrais juste plus complet.

Reply

Marsh Posté le 06-03-2005 à 21:00:53    

Ou alors j'ia penser a u ntruc plus facile je pense :
 
ce script affichera les 6 dernieres articles.
 
les numero d'identification des articles, son contenues dans la variable :
 
$content_id
 
on peut chopé les different numéro ID des 6 articles comme ça par exemple
 
$listesArticles = "".$content_id.","; (une virgule aprèspour séparer les numéros, vous corrigerais si cela est pas super niveau syntaxe :) ))
 
 
ensuite, on a 2 variable : $col1 et $col2 (correspondant a la colonne 1 et la collone 2
 
 
On extrait les 3 1er chiffre de $listesArticles et on les affectes a $col1
 
of ait de même avec les 3 dernieres chiffres de $listesArticles et on les assignes a col2
 
ensuite pour afficher les articles de la collone 1 on fait
 
<td style='width:50%'  > <font style='color:blue'><b> TEST :</b></font> <a style='color:black'  href='articles-$col1-$var1.html'>$var2</a>
 
et pour la colonne 2 :
 
<td style='width:50%'  > <font style='color:blue'><b> TEST :</b></font> <a style='color:black'  href='articles-$col2-$var1.html'>$var2</a>
 
on peut me donne un coup de pouce pour mettre cette methode en oeuvre ?
 
est t'elle viable ?
 
merci
 

Reply

Marsh Posté le 06-03-2005 à 22:13:17    

Je te donne ca, bien que je ne devrais pas le faire...

Code :
  1. recuperer donnees de la base
  2. ouvrir tableau
  3. tant que donnees retournee
  4.   lire une ligne
  5.   compter la ligne
  6.   si ligne impair
  7.     afficher dans premiere colonne
  8.   sinon
  9.     afficher dans 2e colonne
  10. fin tant que
  11. si lignes totales impair
  12.   afficher 2e colonne vide
  13. fermer tableau


Je peux difficilement faire plus clair sans te donner le code. (Il y a neanmoins un petit piege dans le code ci dessus :D)
J'espere que tu te rends compte que ce que tu veux faire est basique (si ce n'est extrement basique), je suis sidere que tu n'y arrives pas, et cela prouve qu'il y a un reel probleme de connaissances des bases...


Message édité par cerel le 06-03-2005 à 22:16:04
Reply

Marsh Posté le 07-03-2005 à 10:49:04    

Cerel lol
 
pour tous te dire je n'ai aucune bases en php, en turbo pascal oui... (j'ai fait custom xp evolution, a dl sur clubic et telecharger.com) mais pas en php (et dieu sais comme c'est completement différent les deux languages)
 
Ho my god j'ai honte, j'ai apssé 4 heures hier avant de me couchés..; et j'en susi tjs au mémé point
 
cependant j'ai ça :
 
 
<?php
//a mettre avant le while
$nombre = 0;
 
while (...){
 
if ($nombre%2 === 0) $text .= '<tr>';
 
$text .='<td style="width:50%">';
$text .='<span style="font-weight: bold; color: #0000FF">TEST :</span>';
$text .=' <a style="color:black" href="articles-'.$content_id.'-'.$var1.'.html">';
$text .= $var2.'</a>    <br />';
$text .='<p style="color: #000000; margin-top: 0px">'.$nombre;
$text .='<a href="articles-'.$content_id.'-'.$var1.'.html">';
$text .='<img src="http://ordigamers.com/e107_files/images/'.$content_id.'.jpg" style="float: left; border: none; margin: 4px" alt="'.$var2.'"/>';
$text .='</a>'.$content_summary.'</p>';
$text .='</td>';
 
if ($nombre % 2 !== 0) $text .= '</tr>';
 
$nombre++;
}//fin while
echo $text;
?>  
 
 
un sympatique bougre de phpdebutant m'a pianoté ce code...
 
seulement ça bloque a while (...) { (le point n'est pas un argument valide d'apres le message d'erreur...)

Reply

Marsh Posté le 07-03-2005 à 14:18:25    

Voila pourquoi on evite de donner du code tout cuit ...
Quand tu dis

Citation :

seulement ça bloque a while (...) { (le point n'est pas un argument valide d'apres le message d'erreur...)


Cela veut dire que tu as betement copie-colle le code.
Les "..." dans le while veulent dire que c'est a toi de completer le while. L'auter du code n'as pas voulu tout faire a ta place, il a par consequent laisses des trous que tu devais completer...
 
Sinon, le pascal et php c'est pas la meme chose, d'accord, mais ce n'est pas fondatelement differnent non plus...
 
De plus, si en pascal j'ecris ca :

Code :
  1. if (mavar == true) then
  2. printf("Salut\n" );
  3. printf("Resalut\n" );
  4. else
  5. printf("Pas vrai \n" );


Tu ne crois pas qu'il aurait "geule" comme quoi il y avait un probleme ?
 
Ben en php c'est la meme chose. Si tu ecris :

Code :
  1. if ($mavar==true)
  2. echo "salut \n";
  3. echo "resalut\n";
  4. else
  5. echo "pas vrai \n";


Php va aussi gueuler.
 
Et pourquoi les deux langages gueulent ?
Parceque dans le cadre de pascal il faut creer un "bloque" s'il y a plus q'une instruction entre le if et le else. Ben en php c'est la meme chose.
Donc, ne php faut creer aussi un bloc :

Code :
  1. if ($mavar==true) {
  2.   echo "salut \n";
  3.   echo "resalut\n";
  4. } else// ce bloc n'est pas indispensable
  5. // car il n'y a qu'un instruction
  6. // mais vaut mieux toujours creer des blocs
  7. // se sera plus clair, et cela facilitera l'insertion
  8. // d'instructions destinees a debuger le script.
  9. echo "pas vrai \n";
  10. }


 
Faut vraiment apprendre les bases de php.

Reply

Marsh Posté le 07-03-2005 à 14:33:17    

Sinon pour ceux que la problématique du texte en colonnes multiples intéresse, il y a la proposition suivante (mais pas pour des tableaux): Column Splitter. Ca nécessite du javascript, mais on n'a rien sans rien.


---------------
Loose Change Lies | Bars | Last.fm
Reply

Marsh Posté le 28-03-2005 à 20:06:27    

Up : help please

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed