Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML] Tabela z dwiema kolumnami oraz SQL
Forum PHP.pl > Forum > Przedszkole
k0b3
mam pewien problem i nie wiem jak się do tego zabrać... A wiem, że wszystko da się rozwiązać, trzeba tylko chęci, a obecnie je mam.. biggrin.gif

mam tabele w html mającą 2 kolumny, a wniej jakas zmienna pobrana z bazy mysql...


col1 _____| col2__|
$a.........|..........|


tablica powiązana z $a ma tak z 10 wpisów -> np. kolejne litery alfabetu ze znacznikiem '<br>', aby obniżało do następnego wiersza.

pobierając dane, tabela w html będzie zapewne tak się prezentować

col1 __| col2__|
a........ |..........|
b........ |..........|
c........ |..........|
d........ |..........|
e........ |..........|
f........ |..........|
g........ |..........|
h........ |..........|
i........ |..........|
j.........|..........|

Chicałbym, aby dane automatycznie, porówno rozkładały się po kolumnach... Jest to możliwe?

np.
col1 __| col2__|
a........ |f..........|
b........ |g..........|
c........ |h..........|
d........ |i..........|
e.........|j..........|

i jak dodam nastepny rekord to tabela się powiększa...

Nie wiem sam czy o banał pytam. Siedzę już sporo w HTML... no sam nie wiem, czekam na wasze propozycje ;-)

Z góry thx
strife
Cytat(kobemat @ 21.02.2007, 18:38:16 ) *
Nie wiem sam czy o banał pytam. Siedzę już sporo w HTML... no sam nie wiem, czekam na wasze propozycje ;-)


Chyba żartujesz, najpierw pokaż nam co Ty zrobiłeś to Ci pomożemy - nikt za Ciebie nie będzie pisał skryptu! Poczytaj o mysql" title="Zobacz w manualu PHP" target="_manual, przyda Ci się też podstawowa wiedza zapytań sql ( odsyłam do przyklejonego tematu ) jak coś wymyślisz, daj znać to Ci pomożemy.

Pozdrawiam.
k0b3
Chyba sie nie zrozumieliśmy...
Narazie myśle nad takim rozwiązaniem, ale nie ma przykładu.

wiem jak się odczytuje dane... np. do mojej sprawy bylo by tak..


  1. <?php
  2. $wynik = mysql_query ("SELECT * FROM xxx ORDER BY id DESC;");
  3.  
  4. while ($rekord = mysql_fetch_assoc ($wynik)) {
  5. $a = $rekord['a'];
  6.  
  7. echo "<table><tr>
  8. <td>$a</td>
  9. <td></td>
  10. </tr>
  11. </table>";
  12.  
  13. }
  14. ?>


natomiast w tablicy jest ok 10 wpisów (jesli tłumacząc łopatologicznie swój problem to prosze):

id | a |
1 | a |
2 | b |
3 | c |
4 | d |
5 | e |
6 | f |
7 | g |
8 | h |
9 | i |
10| j |

i teraz czytając mój pierwszy post widać że powstaje taka tabelka... problem jaśniejszy?
Moze tu ma być jakaś segregacja w JS... ?
Cienki1980
No to tłumaczymy łopatologicznie:D

Dane z bazy wyciągnij i umieść w tablicy. Np tak:
  1. <?php
  2. $query="select * from table";
  3. $result=mysql_query($query);
  4. $num=mysql_num_rows($result);
  5. for($i=0;$i<$num;$i++)
  6.  $wynik[$i]=mysql_fetch_array($result);
  7. ?>


Otrzymasz tablicę $wynik z danymi oraz $num która będzie zawierała ilość pobranych wierszy.
Wykorzystując te dane tworzysz sobie bardzo prostego for'a.
  1. <?php
  2. if($num%2==0)//sprawdzasz czy ilość wierszy jest parzysta
  3.  $r=$num/2;//jeżeli tak dzielisz przez dwa
  4. else
  5.  $r=($num+1)/2;//jeżeli nie dodajesz 1 i dzielisz przez dwa
  6.  
  7. //wartość otrzymana z dzielenia podstawiasz do for'a i odpowiednio wyświetlasz tablicę
  8. for($g=0;$g<$r;$g++)
  9. {
  10.  echo $wynik[$g];echo "---";echo $wynik[$g+$r];echo "<BR>";
  11. }
  12. ?>


Proste jak budowa gwoździa.
k0b3
ODŚWIERZAM WĄTEK

Jednak nie przydał mi się kiedyś ten skrypt, ale znów potrzebuje pomocy w tej samej sprawie.. Czy aby napewno jest on poprawny?

Chce uzyskać podobny efekt w swojej galeri tak jak to jest w wyszukiwarce google np:
http://images.google.pl/images?svnum=10&am...amp;btnG=Szukaj

jest to zapewne tabela, w wierszu jest 5 kolumn.. Oraz dane pobierane z bazy SQL...

jest jakies dokładne rozwiązanie?

Przepraszam, że tak truje, ale jesteście moją jedyną deską ratunku biggrin.gif tongue.gif

Pozd
Cienki1980
Nooo to żeś mi pojechał po gaciach.

Skrypt, który Ci napisałem został podzielony na dwie części ale jest w 100% sprawny.

Pokaż jaki kod na podstawie tego stworzyłeś i powiedz może gdzie Ci nie działa.
k0b3
W żadnym stopniu nie chciałem Cie urazić! :-) jestem Ci wdzięczny za pomoc.

WYświetla tak:

Array---Array
Array---Array

mam np kolumne name w SQL
w postaci takiego zapytania nie wiem jak wyświetlić je zamiast tych ---
Cienki1980
Cytat(kobemat @ 18.03.2007, 20:17:26 ) *
W żadnym stopniu nie chciałem Cie urazić! :-) jestem Ci wdzięczny za pomoc.

WYświetla tak:

Array---Array
Array---Array

mam np kolumne name w SQL
w postaci takiego zapytania nie wiem jak wyświetlić je zamiast tych ---


No to pokaż ten kod a na pewno coś zdziałamy, tak żeby było dobrze biggrin.gif
k0b3
Kod nie jest zmieniony:
  1. <?
  2. include ('../config.php');
  3. mysql_connect($db_host,$username,$password);
  4. @mysql_select_db($database) or die("Nie odnaleziono bazy danych");
  5.  
  6.  
  7. $query="select * from galeria";
  8. $result=mysql_query($query);
  9. $num=mysql_num_rows($result);
  10. for($i=0;$i<$num;$i++)
  11.  $wynik[$i]=mysql_fetch_array($result);
  12.  
  13. if($num%2==0)//sprawdzasz czy ilość wierszy jest parzysta
  14.  $r=$num/2;//jeżeli tak dzielisz przez dwa
  15. else
  16.  $r=($num+1)/2;//jeżeli nie dodajesz 1 i dzielisz przez dwa
  17.  
  18. //wartość otrzymana z dzielenia podstawiasz do for'a i odpowiednio wyświetlasz tablicę
  19. for($g=0;$g<$r;$g++)
  20. {
  21.  echo $wynik[$g];echo "---";echo $wynik[$g+$r];echo "<BR>";
  22. }
  23. ?>


Galeria SQL:
1.id
2.katalog
3.data
4.tytul

o znalzalem strone z właśnie takim efektem..:

http://galeria.4energy.pl/
Cienki1980
  1. <?php
  2. echo $wynik[$g]['tytul'];echo "---";echo $wynik[$g+$r]['tytul'];echo "<BR>";
  3. ?>
k0b3
Świetnie!
działa.. ale...

wyświetla w jednym wierszu tylko 2 rekordy, a chciabym np 4

a__b__c__d
g__f__i___j
k__l__m__n

kombinuje z cyferkami (jestem na rozszerzonej matmie tongue.gif ) i nie daje rady... znowu help

  1. <?php
  2. if($num%2==0)//sprawdzasz czy ilość wierszy jest parzysta
  3.  $r=$num/2;//jeżeli tak dzielisz przez dwa
  4. else
  5.  $r=($num+1)/2;//jeżeli nie dodajesz 1 i dzielisz przez dwa
  6. ?>


To jest chyba najlepsze forum odnośnie tej tematyki. Wiele konkurencji, ale tu jest klimat, odpowiadać w 5min!

Jeszcze raz dzięki ;-)
Cienki1980
No to musimy zmienić koncepcje:
  1. <?php
  2. $pyt=mysql_query("select * from galeria");
  3.  $ile=mysql_num_rows($pyt);
  4.  for($i=0;$i<$ile;$i++)
  5. $wynik[]=mysql_fetch_array($pyt);
  6.  
  7.  
  8.  
  9.  for($g=0;$g<$ile;$g+=4) 
  10.  {
  11. if(isset($wynik[$g]['tytul']))
  12.  echo $wynik[$g]['tytul'];
  13. if(isset($wynik[$g+1]['tytul']))
  14.  echo "--".$wynik[$g+1]['tytul'];
  15. if(isset($wynik[$g+2]['tytul']))
  16.  echo "--".$wynik[$g+2]['tytul'];
  17. if(isset($wynik[$g+3]['tytul']))
  18.  echo "--".$wynik[$g+3]['tytul'];
  19. echo "<BR>";
  20.  }
  21. ?>
k0b3
Wielki plus dla Ciebie!
Wielkie dzięki za pomoc! o to właśnie mi chodziło

Pozdrawiam winksmiley.jpg

Aj.. jednak wracam do tematu... tongue.gif

z tekstem nie ma problemu - układa się tak jak chciałem, natomiast jeśli dodam div'a to przedstawia sie kod:

[]
[]
[]
[]
[]
[]
[]

... zamiast:

[] [] []
[] [] []
[] []

zmieniłem i zastosowałem 3 rekordy w wierszu...

  1. <?php
  2. $pyt=mysql_query("select * from galeria");
  3.  $ile=mysql_num_rows($pyt);
  4.  for($i=0;$i<$ile;$i++)
  5. $wynik[]=mysql_fetch_array($pyt);
  6.  
  7.  
  8.  
  9.  for($g=0;$g<$ile;$g+=3) 
  10.  {
  11. if(isset($wynik[$g]['opis']))
  12.  echo ('<div style="border:1px #000000 solid; width:140px; text-align:center; padding-top:7px; padding-bottom:7px">
  13. <img src="xxxx.jpg" width="125" />'.$wynik[$g]['opis'].'</div>');
  14. if(isset($wynik[$g+1]['opis']))
  15.  echo ('<div style="border:1px #000000 solid; width:140px; text-align:center; padding-top:7px; padding-bottom:7px">
  16. <img src="xxxx.jpg" width="125" />
  17. '.$wynik[$g+1]['opis'].'</div>');
  18.  
  19. if(isset($wynik[$g+2]['opis']))
  20. echo ('<div style="border:1px #000000 solid; width:140px; text-align:center; padding-top:7px; padding-bottom:7px">
  21. <img src="xxxx.jpg" width="125" /><br>
  22. '.$wynik[$g+2]['opis'].'</div>');
  23. echo "<BR>";
  24. }
  25. ?>
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.