Afficher des liste en 2 colonnes c possible ??? - PHP - Programmation
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.
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
Marsh Posté le 06-03-2005 à 17:45:30
laurent74 a écrit : |
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
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
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 :
|
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 ....".
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
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 :-/
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.
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
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"
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
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)
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 ?
Marsh Posté le 06-03-2005 à 19:23:50
http://ordigamers.com/tests.php
c'est un jolie carnage ???
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..."
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.....
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
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.
Heureusement que c'est souvent les même
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
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.
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.
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
Marsh Posté le 06-03-2005 à 22:13:17
Je te donne ca, bien que je ne devrais pas le faire...
Code :
|
Je peux difficilement faire plus clair sans te donner le code. (Il y a neanmoins un petit piege dans le code ci dessus )
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...
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...)
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 :
|
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 :
|
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 :
|
Faut vraiment apprendre les bases de php.
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.
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 :
si c'est d'autre chose que vosu avez besoin dite le moi,
Un gros gros merci a tous