Dawka83 Opublikowano 27 Września 2010 Udostępnij Opublikowano 27 Września 2010 Więc tak chciałem uzyskać tabele z wynikami z mysql. Jeżeli wynik o danym id znajduje się w mysql to ma go wyświetlić w odpowiednim miejscu w tabeli jeśli natomiast nie ma, ma wyświetlić jego cyferkę. No i napisałem sobie oto taki kodzik: $zmienne = mysql_query("select * from `ivy_map` LIMIT $str1 , $str2"); while ($sq=mysql_fetch_array($zmienne)) { $dane[$u][1]=$sq['id']; $dane[$u][2]=$sq['grafika']; $dane[$u][3]=$sq['typ']; $dane[$u][4]=$sq['others']; $u=$u+1; } echo '<table>'; echo '<tr>'; $a=0; for ($i=$str*60; $i<$str*60+60; $i++) { $a=$a+1; if (empty($dane[$i][1])==false) { echo '<td><img src="modules/images/'.$dane[$i][2].'" onclick="load(\'map.zas?act=show&id='.$dane[$i][1].'\')"/></td>'; } else { echo '<td class="free" onclick="load(\'map.zas?act=show&id='.$i.'\')">'.$i.'</td>'; } if ($a==10) { echo '</tr><tr>'; $a=0; } } echo '</tr>'; echo '</table>'; Niestety ku moim oczekiwaniom kod nie spełnia swojego zadania i gdy ma wyświetlać w danej komórce obrazek (np 30) wyświetla go w komórce 0... Moje pytanie jest takie czy jesteście w stanie mi pomóc i znaleźć błąd. Bardzo was proszę. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 27 Września 2010 Udostępnij Opublikowano 27 Września 2010 $str, $str1, $str2? Co w tym dokładnie trzymasz? Jakie wartości, jak są liczone? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dawka83 Opublikowano 27 Września 2010 Autor Udostępnij Opublikowano 27 Września 2010 No to dam ci wyższy kawałek kodu: $str=$_GET['str']; if (empty($str)) { $str=0; } $str1=$str*60; $str2=$str*60+60-1; $dane=array(); $dane[0][0]=0; $u=$str*60; $str - strona. Na każdej stronie 60 rekordów. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 27 Września 2010 Udostępnij Opublikowano 27 Września 2010 echo '<table><tr>'; $idMin = $str * 60; $idMax = $idMin + 60; if( $result = mysql_query( 'SELECT * FROM `ivy_map` WHERE `id` >= ' . $idMin. ' AND `id` < ' . $idMax . ' ORDER BY `id`' ) ) { $u = 1; $id = $idMin; $cell = null; for( $id = $idMin; $id < $idMax; $id++ ) { if( $cell == null ) { $cell = mysql_fetch_assoc( $result ); } if( is_array( $cell ) && $cell['id'] == $id ) { echo '<td><img src="modules/images/' . $cell['grafika'] . '" /></td>'; $cell = null; } else { echo '<td>' . $id . '</td>'; } if( !fmod( $u++, 10 ) ) { echo '</tr><tr>'; } } } echo '</tr></table>'; Nie wiem czy działa, pisałem z pamięci. EDIT Poprawka. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dawka83 Opublikowano 27 Września 2010 Autor Udostępnij Opublikowano 27 Września 2010 Tymon niestety nie działa... Tabela w ogóle sie nie rysuje... Edit: chyba juz wiem dlaczego. Edit2: Ahh no tak bo twój kod pobiera komórki z id. Tyle że w bazie nie są wszystkie komórki tylko wybrane... Więc praktycznie nie pobiera nic. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 27 Września 2010 Udostępnij Opublikowano 27 Września 2010 Skopiuj teraz, narzuciłem przed Twoim postem jedną poprawkę. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dawka83 Opublikowano 27 Września 2010 Autor Udostępnij Opublikowano 27 Września 2010 Jee działa!! Tymon jesteś moim mistrzem! Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 27 Września 2010 Udostępnij Opublikowano 27 Września 2010 Jee działa!! Tyle że z zapytaniem: "select * from `ivy_map` LIMIT $str1 , $str2" ale działa!!! Tymon jesteś moim mistrzem!Tyle, że użycie tutaj LIMIT jest błędem. Jeśli chcesz wypluć rekordy o ID od 0 do 60, a pobierasz 60 rekordów zaczynając od pierwszego jaki występuje w bazie, podczas gdy pierwszy zwrócony ma ID 60, kolejne, 61, 62, 63... itd., to ściągasz 60 rekordów niepotrzebnie. W zapytaniu SQLa koniecznie musi być wybierane w przedziale <0,60) za pomocą WHERE, wtedy wybierze tylko te, które są potrzebne. Sprawdź moje zapytanie, może gdzieś popełniłem błąd - mówiłem, pisałem wszystko z pamięci. EDIT Swoją drogą, nie powinno być w bez 0? W przedziale (0,60>? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dawka83 Opublikowano 27 Września 2010 Autor Udostępnij Opublikowano 27 Września 2010 Tak faktycznie twoje zapytanie jest lepsze. Zrozumiałem jego treść dopiero później. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się