Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] gotowa tabela - jak ją zmienić aby... ?
Forum PHP.pl > Forum > Przedszkole
panniewiedzacy
Witam

na wstepnie tylko powiem ze jestem zielony w temacie, jednak chcialbym zmienic ta tabele i nie moge znalezc rozwiazania

Tabela wyglada tak:
Kod
<table><tr>
<?php $i = 1; ?>
<?php foreach ($categories as $c): ?>
<td style="padding-left:15px">
<?php if ($i == count($categories)): ?><?php endif; ?><a href="<?php echo url::site('/catalog/index/' . $c->category_id) ?>"><?php if (!empty($category) && $category->category_id == $c->category_id): ?><strong><?php endif ?><?php echo Security::escape_text($c->category_name) ?><?php if (!empty($category) && $category->category_id == $c->category_id): ?></strong><?php endif ?></a>
</td>
<?php if($i%3==0) echo "</tr><tr>"; ?>
<?php $i++ ?>
                                                          
<?php endforeach; ?>
</table>


w takim zapisie tabela posiada 3 kolumny a ilosc wierszy jest dopasowywana automatycznie w zaleznosci od ilosci komorek, problem w tym ze komorki sa 'wprowadzane' do tabeli alfabetycznie w porządku poziomym czyli:

Kod
nazwa1, nazwa2, nazwa3
nazwa4, nazwa4, nazwa6
nazwa7, nazwa8, nazwa9



chciałbym aby były wprowadzane w porzadku pionowym tak:
Kod
nazwa1, nazwa 4, nazwa 7
nazwa2, nazwa 5, nazwa 8
nazwa3, nazwa 6, nazwa 9


próbowałem coś zmieniać na czuja ale chyba nie jest to aż tak proste smile.gif

proszę o pomoc
panniewiedzacy
zapomnialem jeszcze wspomnieć, że miedzy wierszami i kolumnami chciałbym dodać małe odstępy aby tabela była bardziej czytelna

prosze o porady
karolek83
Mam bardzo podobny problem, kod jest praktycznie identyczny, rowniez prosze o pomoc w rozwiazaniu
jackussa
Nakieruję cię, to powinno pomóc

  1.  
  2. for($i=0;$i<=ceil(count($categories)/3);$i++){
  3. echo '<tr>';
  4. for($j=0;$j<4;$j++){
  5. if(array_key_exists($i+3*$j),$categories){
  6. echo '<td>'.$categories[$i+3*$j].'</td>';
  7. }
  8. }
  9. echo '</tr>';
  10. }
  11.  


nie wiem czy zauważyłeś, ale nic nie robisz tym blkiem:
  1. <?php if ($i == count($categories)): ?><?php endif; ?>


Oczywiście wszystko możesz przystosowac pod potrzebny Ci widok
Gość
Jackussa - dzieki za odpowiedz.... sprawdzilen u siebie plik, kod jest identyczny jak tu (skrypt kupiony pewnie u tej samej osoby) jednak z moja wiedza nie poradze sobie, mialem nadzieje ze wystarczy zrobic mala zmiane .... nie lapie techniki wprowadzania, tj. Jaki wpis za co odpowiada.... czy da sie to szybko przerobic na te pionowe wprowadzanie?
Gość
Podobnie jak karolek - nie do konca zrozumialem jak to zmienic tongue.gif

moglbys troszke podpowiedziec jeszcze ?

z góry wielkie dzieki exclamation.gif!!
panniewiedzacy
jackussa HELP please sad.gif probowalem cos skladac ale nie mam wystarczajacej wiedzy ....
prowseed
Dostałeś/dostaliście [?] niemal gotowy kod na tacy. Chcesz tworzyć równy podział poziomy sortując wartości w pionie, do tego potrzeba odrobinkę wiedzy matematycznej [a w sumie logicznego myślenia tylko], co akurat w powyzszej funkcji się przejawia.
Jeżeli brak Ci wiedzy i nie rozumiesz tego, to kurs php + Krysicki/Włodarski... Bo jakiej wiedzy Ci brakuje? Składnia zbyt skomplikowana czy dzielenie na zbyt wysokim poziomie?
I nie zachowuj się jak mały dzieciak który zaczyna płakać, bo nie potrafi złączyć zabawki z kinderniespodzianki.

W funkcji foreach masz postinkrementacje zmiennej $i, wystarczy sprawdzić jej wartość po całej operacji i już wiesz ile pozycji wprowadzić do pojedyńczej kolumny. Przenieś sobie tylko pojedyńcze komórki tabeli [ <td> ] do tablicy, a pozniej po funkcji foreach stworz sobie kolumny i wkladaj tam odpowiedni zakres tablicy bazując na ostatecznym wyniku zmiennej $i (pamiętaj o zaokrągleniu, bo możesz nie dostawać liczby całkowitej z dzielenia). Jasne? Jest już późno więc całkiem możliwe, że piszę głupoty, ale akurat w tym momencie wydaje mi się, że nie smile.gif
panniewiedzacy
Panie prowseed rozumiem, żę dla Pana to bułka z masmixem ale ja nie wiem gdzie wstawić, co zamienić a co usunąć i gdzie wcisnąć kod <a heref......</a>, przy różnych kombinacjach wywala mi błędy np. unexpected ','

dzieki za zainteresowanie i pomoc

szczerze mówiąc liczyłem właśnie na gotowy kod jeśli to takie proste
prowseed
A ja rozumiem, że ludzie chodzą do szkoły po to, żeby się tam czegoś nauczyć, czegoś, co w przyszłości niewątpliwie może się im przydać i jakoś w swojej historii nie pamiętam sytuacji gdy inni ludzie czatują pod szkoła na tych wychodzących i proszą o wykonanie za nich pracy na podstawie tego, czego się Ci pierwsi nauczyli w szkole. A cały wysiłek czekających skupia się na... czekaniu. I na dodatek mają gotowy produkt bazujący na wysiłku uczących się. Ciekawie by ten świat wyglądał... Scenariusz rodem z Pratchett'a.
panniewiedzacy
Panie prowseed serdecznie Pana prosze nie odpowiadac jesli nie ma Pan na celu pomocy w rozwiazaniu problemu.

innych uzytkownikow ponownie prosze o pomoc

dasz mi gotowe rozwiazanie z php ... na innym forum ja dam Ci gotowe rozwiazanie w temacie, w którym ty jestes 'zielony' - kierujmy sie ta zasada zamiast sie spinac.
karolek83
Ja tez sobie nie poradzilem, pomoze ktos?
Lombi
Oj Panowie po co się sprzeczacie?
Mogę dać wam taki kawałek kodu. Na jego podstawie można to zrobić.
  1. $arr=array('nazwa1','nazwa2','nazwa3','nazwa4','nazwa5','nazwa6','nazwa7','nazwa8','nazwa9','nazwa10','nazwa11','nazwa12','nazwa13');
  2. $num=count($arr);
  3. $col=3;
  4. $up=3;
  5. echo '<table border="1">';
  6. for($i=0;$i<$num;$i++)
  7. {
  8. echo '<tr>';
  9. for($j=0;$j<$col;$j++)
  10. {
  11. if(array_key_exists($j*$up+$i, $arr))
  12. echo '<td>'.$arr[$j*$up+$i].'</td>';
  13. else
  14. echo '<td>&nbsp;</td>';
  15. }
  16. echo '</tr>';
  17. }
  18. echo '</table>';
Gość
Niestety nie moge poradzic, moze ktos moglby jeszcze jakies wskazowki / rady ... bardzo prosze
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.