Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [myslq][php] Dzielenie co 4
Forum PHP.pl > Forum > PHP
Mayka
Witam

Miałem już kiedyś z tym problem ale poraz kolejny potrzebuje waszej pomocy.. niechce mi to działać..
  1. for($i = 0; $r = mysql_fetch_assoc($wynik); ++$i) {
  2. if($i % 4 === 0) {
  3. echo '<div class="content"><div>';
  4. }
  5. echo '<a href="./indexi.php?item='.$r["id"].'"><img src="./mini/'.$r["url_zdj1"].'" alt="'.$r["nazwa"].'"></a>
  6. <br/>';
  7. if($i % 4 === 0) {
  8. echo '</div></div>';
  9. }
  10. }
  11. </div>
  12. </body>
  13. </html>';
  14. }


Znaczy już mowie co jest nie tak.. Po for jest if sprawdzane czy jest dzielone przez 4 jesli tak to wyswietla że to początek diva jesli nie to nic, i tu jest okej ale co z końcem ? Dlaczego już na końcu ta sama regóła nie działa ?
nospor
Bo na koncu ma porównywać do 3 a nie do 0. Nie moze przeciez zarowno poczatek jak i koniec reagować na to samo.
Mayka
A dlaczego do 3 ?
nospor
No pomyśl chwilę.... jaka może być najwieksza wartosc z dzielenia modulo 4 questionmark.gif
Mayka
No 3 no ale jak to sie ma do tego bo nie bardzo to rozumiem..
nospor
No bo najmniejsza wartosc otwiera div, a najwieksza zamyka div. Chcesz miec co 4 to cos musi otworzyc a cos zamknąc.
Mayka
AAA wstydnis.gif Dobra juz rozumiem biggrin.gif
To może jeszcze dalej mi pomożesz;) teraz do tego potrzebuje zrobić tak żeby wyswietlało mi te 4 elementy obok siebie, hyba najprosciej tabelką ale jak to teraz wykonac.. Juz ja skróciłem do min. żeby było łatwiej ogarnać.. ale dziś mi sie jakoś strasznie cieżko mysli wstydnis.gif
  1. for($i = 0; $r = mysql_fetch_assoc($wynik); ++$i) {
  2. if($i % 4 === 0) {
  3. echo '<div class="content"><div><table><tr>';
  4. }
  5. echo '<td><a href="./indexi.php?item='.$r["id"].'"><img src="./mini/'.$r["url_zdj1"].'" alt="'.$r["nazwa"].'"></a>
  6. </td></tr><tr><td>';
  7. echo' '.$r["nazwa"].'</td></tr>';
  8. }
  9. if($i % 4 === 3) {
  10. echo '</table></div></div>';
  11. }


Chodzi mi o to żeby w każdym divie była taka tabelka z 4 elementami obok siebie..
nospor
skoro elementy mają być obok siebie to tabelka chyba powinna miec jeden wiersz a w nim porostu kolumny. Po co wiec na potęge tworzysz wiersze TR? Otwierac masz TR i zamykać TR razem z divem i tabelką.
Mayka
Ja niewiem coś za bardzo dziś kombinuje, wszystko ok. wielkie dzięki za pomoc.

Dobra problemów ciąg dalszy... bo teraz w momencie kiedy produktów jest 7 to sie otwiera 2raz divy ale sie nie zamykają.. jak jest 4,8 itd jest ok ale co jak bedzie ich 7 czy 5 ?
Tak wygląda całość tego co dziś wymodziłem..
Kożystam z czegoś takiego jak slidebox(jquery + easing)
  1. <div id="slidebox">
  2. <div class="next"></div>
  3. <div class="previous"></div>
  4. <div class="container">
  5. ';
  6. $wynik = mysql_query("SELECT id,nazwa,login,cena_pln,url_zdj1 FROM produkty WHERE promowane='tak'")
  7. or die('Błąd zapytania');
  8. if(mysql_num_rows($wynik) > 0) {
  9. for($i = 0; $r = mysql_fetch_assoc($wynik); ++$i) {
  10. if($i % 4 === 0) {
  11. echo '<div class="content"><div><table width="100%"><tr>';
  12. }
  13. echo '<td><a href="./indexi.php?item='.$r["id"].'"><img src="./upload/mini/'.$r["url_zdj1"].'" alt="'.$r["nazwa"].'"></a>
  14. </br>';
  15. if(defined('nazwa-produkty')) {
  16. echo constant('nazwa-produkty');
  17. }
  18. else{
  19. echo 'Nazwa:';
  20. echo $r["nazwa"].'<br/>Cena: '.$r["cena_pln"].'</td>';
  21. }
  22. if($i % 4 === 3) {
  23. echo '</tr></table></div></div>';
  24. }
  25. }
  26. </div>
  27. </div>';
  28. }
  29. }

Jak by ktoś miał pomysł to byłbym wdzieczy za pomoc bo od 17 nic nie wymyśliłem...
prowseed
W linijce 23 dodaj sobie
  1. || $i+1 == mysql_num_rows($wynik)
Mayka
Przed tym co jest czy po ? Czy zamiast ?
Bo nadal jak dodam tą linijke to sie robą dziwne rzeczy na stronie. Przy 8 czy 12 jest luzik ale przy 7 już jest kaszana...
prowseed
Rozumiesz co sprawdza linijka 23 i co to znaczy dodaj?

  1. if(($i % 4 === 3) || ($i+1 == mysql_num_rows($wynik))) {


to sobie wklej zamiast 23. Wydaje mi sie, ze sie psuje, bo tabela sie nie zamyka, nie chce mi sie budowac specjalnie szablonu by sprawdzic. Mozesz ewentualnie wrzucic statyczna zawartosc na jakis serwer, to Ci powiem jak ma wygladac jezeli dalej nie bedzie dzialac.
Mayka
No nie zrozumiałem, ale już wszystko działa jak nalerzy. Dzieki wielkie za pomoc. Do zamknięcia
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.