Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Ustawianie pozycji z danych wybranych z bazy
Forum PHP.pl > Forum > Przedszkole
Croos22
Napisałem sobie pole o wymiarach 520px na 520px a w nim dałem pętle while która wypisuje mi liczby z zakresu 1-400 po 20 w rzędzie. W bazie mysql znajdują się dane w postaci liczb i dlatego chce aby liczba która będzie w bazie ma zamalować liczbę z tych które wypisuje.

Kod wygląda tak:
  1. <?php
  2. include("baza.php");
  3.  
  4. $a = mysql_query("select `numer` from `users`") or die('Blad: '.mysql_error());
  5.  
  6. echo '<div style="width: 520px; height: 520px; background: red;"><table>';
  7. $x = 0;
  8. while($x <= 399){
  9. $x++;
  10. if($x % 20 == 1) echo '<tr>';
  11. while($o = mysql_fetch_array($a)){
  12. echo '<td><div style="width: 20px; height: 20px; border: 1px solid black; font-size: 10px; background: green;">'.$x.'</div></td>';
  13. }
  14. if($x % 20 == 0) echo '</tr>';
  15. }
  16. echo '</table></div>';
  17. ?>


Jeśli w polu numer w tabeli users jest 20 to zamalowuje 20 numer na zielono i tak z wszystkimi liczbami w bazie.
CuteOne
  1. while($o = mysql_fetch_array($a)){
  2.  
  3. $pos[$o['numer']] = '<td><div style="width: 20px; height: 20px; border: 1px solid black; font-size: 10px; background: green;">'.$o['numer'].'</div></td>';
  4. }
  5.  
  6.  
  7. while($x <= 399){
  8. $x++;
  9. if($x % 20 == 1) echo '<tr>';
  10.  
  11. if(!empty($pos[$x]))
  12. echo $pos[$x];
  13. else
  14. echo '<td></td>';
  15.  
  16. if($x % 20 == 0) echo '</tr>';
  17. }
  18. echo '</table></div>';


ps. nie lepiej to zrobić na tablicy dwuwymiarowej? $mapa[x][y] czyli tak jak się to się zazwyczaj robi?
Croos22
Cytat
ps. nie lepiej to zrobić na tablicy dwuwymiarowej? $mapa[x][y] czyli tak jak się to się zazwyczaj robi?


Nie wiedziałem jak takie coś napisać kombinowałem coś z dwoma pętlami.


Mam nawet kawałek kodu:

  1. for ($i=0; $i<=24; $i++){
  2. echo "<div style='position:absolute; top:; left:'>$i</div>";
  3. }
  4.  
  5. for ($i=0; $i<=24; $i++)
  6. {
  7. echo "<div style='position:absolute; top:; left:'>$i</div>";
  8. }


Lepiej by mi było zapisywać w tej postaci x2, y1 czyli pole 2.
CuteOne
  1.  
  2. /* pozycja postaci pobrana z bazy [w tym przykładzie to również środek mapy] */
  3. $u = array('y' => 16, 'x' => 15);
  4. $mapa_size = array('x'=>50, 'y' =>50);
  5.  
  6. $zoom= 5; // wielkość wyswitlanego obszaru mapy czyli x = 5+5, y=5+5
  7.  
  8. $x['min'] = ($u['x'] - $zoom < 0) ? 0 : $u['x'] - $zoom ;
  9. $x['max'] = ($u['x'] + $zoom > $mapa_size['x']) ? $mapa_size['x'] : $u['x'] + $zoom;
  10.  
  11. $y['min'] = ($u['y'] - $zoom < 0) ? 0 : $u['y'] - $zoom ;
  12. $y['max'] = ($u['y'] + $zoom > $mapa_size['y']) ? $mapa_size['y'] : $u['y'] + $zoom;
  13.  
  14. for($i=$y['min']; $i<=$y['max'];$i++) {
  15.  
  16. $mapa .= '<tr>';
  17.  
  18. for($k=$x['min']; $k<=$x['max']; $k++) {
  19.  
  20. $bg = (isset($u[$i][$k])) ? 'green' : 'black';
  21. $mapa .= '<td style="background: '.$bg.'"> </td>';
  22. }
  23.  
  24. $mapa .= '</tr>';
  25. }
  26.  
  27. echo '<table>'.$mapa.'</table>';
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.