Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][CSS]Wyświetlanie wyników
DerekDX
post
Post #1





Grupa: Zarejestrowani
Postów: 108
Pomógł: 0
Dołączył: 23.04.2010

Ostrzeżenie: (0%)
-----


Witam,
mam pytanie:
Posiadam bazę danych gdzie zawarte są linki do zdjęć i nazwy, czy chcąc wyświetlić te zdjęcia a pod nimi nazwy po kilka sztuk w rzędzie muszę kombinować coś w PHP czy sam CSS da sobie z tym rade?
Ujmując to prościej: czy można za pomocą CSS wyświetlić np 4 obrazki w rzędzie a potem aby same się przełamały do następnego wiersza?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
Ghost_78
post
Post #2





Grupa: Zarejestrowani
Postów: 222
Pomógł: 34
Dołączył: 3.11.2010

Ostrzeżenie: (0%)
-----


jedyne co mi przychodzi do glowy to wsadzenie tych zdjec do kontenera i ustawienie mu konkretnego wymiaru.
problem tylko taki ze bedziesz musial miec wszystkie zdjecia jednakowej szerokosci np:
  1. <div style="width: 440px;">
  2. <img src="" style="width: 100px;">
  3. <img src="" style="width: 100px;">
  4. <img src="" style="width: 100px;">
  5. <img src="" style="width: 100px;">
  6. <? //.... tu powinno sie przelamac .... ?>
  7. <img src="" style="width: 100px;">
  8. <img src="" style="width: 100px;">
  9. <img src="" style="width: 100px;">
  10. </div>
Go to the top of the page
+Quote Post
Age1869
post
Post #3





Grupa: Zarejestrowani
Postów: 118
Pomógł: 6
Dołączył: 25.10.2010
Skąd: Radzyn Podlaski

Ostrzeżenie: (0%)
-----


Jak CSS ma Ci niby wyświetlić zdjęcia, które jak mniemam masz w bazie MySQL (tzn linki do nich)... CSS to jedynie arkusze stylów... Możesz nimi nadać właściwości poszczególnym elementom. Natomiast musisz również napisać odpowiednie zapytanie do bazy np:

  1. $zapytanko = mysql_query("SELECT * FROM graficzki", $connect);
  2. echo '<div id="costam">';
  3. while ($zap = mysql_fetch_array($zapytanko)) {
  4. echo '<div id="costam2"><img src="sciezka/' . $zap['adres'] . '"><br /><b>' . $zap['nazwa'] . '</b>';
  5. }


Reszta to kwestia dopasowania danych i napisania odpowiednich styli.

EDIT: klamra umknęła :-P

Ten post edytował Age1869 25.11.2010, 00:49:09
Go to the top of the page
+Quote Post
wdev
post
Post #4





Grupa: Zarejestrowani
Postów: 86
Pomógł: 20
Dołączył: 20.01.2010

Ostrzeżenie: (0%)
-----


Najlepiej skorzystaj z pętli for i dodaj dzielenie obrazków wykorzystując modulo.
  1. for($i = 0, $ii = mysql_num_rows($query); $i < $ii; $i++){
  2. echo "<img..."; /* tu wyświetlasz swój obrazek */
  3. if ($id%4 == 0){
  4. echo '<br />';
  5. }
  6. }
Go to the top of the page
+Quote Post
CuteOne
post
Post #5





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

Ostrzeżenie: (0%)
-----


  1.  
  2. for($i = 0; $i < mysql_num_rows($query); $i++){
  3. echo "<img..."; /* tu wyświetlasz swój obrazek */
  4. if ($i%4 == 1){
  5. echo '<br />';
  6. }
  7. }

(IMG:style_emoticons/default/winksmiley.jpg)

Ten post edytował CuteOne 25.11.2010, 05:06:05
Go to the top of the page
+Quote Post
DerekDX
post
Post #6





Grupa: Zarejestrowani
Postów: 108
Pomógł: 0
Dołączył: 23.04.2010

Ostrzeżenie: (0%)
-----


Cytat(Age1869 @ 25.11.2010, 00:48:28 ) *
Jak CSS ma Ci niby wyświetlić zdjęcia, które jak mniemam masz w bazie MySQL (tzn linki do nich)... CSS to jedynie arkusze stylów... Możesz nimi nadać właściwości poszczególnym elementom.


No to ja wiem, może źle sformułowałem pytanie ale dokładnie chodziło mi o coś takiego jak powyżej
Dziękuje wszystkim a pomoc (IMG:style_emoticons/default/cool.gif)
Go to the top of the page
+Quote Post
wdev
post
Post #7





Grupa: Zarejestrowani
Postów: 86
Pomógł: 20
Dołączył: 20.01.2010

Ostrzeżenie: (0%)
-----


Cytat(CuteOne @ 25.11.2010, 05:05:14 ) *
  1.  
  2. for($i = 0; $i < mysql_num_rows($query); $i++){
  3. echo "<img..."; /* tu wyświetlasz swój obrazek */
  4. if ($i%4 == 1){
  5. echo '<br />';
  6. }
  7. }

(IMG:style_emoticons/default/winksmiley.jpg)

Nie do końca, CuteOne. Nie wykonuj funkcji (jeśli koniecznie nie musisz) jako środkowy argument pętli for, bo wtedy ona jest wykonywana za każdą iteracją funkcji, co daje Ci spory spadek wydajości. Lepiej wykonać ją na początku, a później pracować już tylko na zwróconym wyniku.
Go to the top of the page
+Quote Post
CuteOne
post
Post #8





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

Ostrzeżenie: (0%)
-----


yhym... mów tak dalej, może ktoś uwierzy (IMG:style_emoticons/default/winksmiley.jpg) a tak na serio:

1. niepotrzebnie przepisujesz wartość do nowej zmiennej
2. sprawdź wydajność mojego sposobu i swojego przy dużej ilości wierszy [10-30 mln]
3. O jakiej ty funkcji mówisz? mysql_num_rows() czy $i < mysql_num_rows() ?
Go to the top of the page
+Quote Post
wdev
post
Post #9





Grupa: Zarejestrowani
Postów: 86
Pomógł: 20
Dołączył: 20.01.2010

Ostrzeżenie: (0%)
-----


Sorry, że odpisuję dopiero dzisiaj, ale praca dała mi się ostro we znaki (IMG:style_emoticons/default/winksmiley.jpg)
Ad. 3. oczywiście, że mówię o mysql_num_rows;
a teraz ad. 2. Zrobiłem trochę testów, bo to co pisałem przeczytałem kiedyś w necie i było na tyle logiczne, że nie zadałem sobie trudów benchmarkować. Tabela z 1 kolumną - id, primary key, - 100 tys. pól (mój komputer ma już swoje lata, nie chcę, żeby mi umarł z wycieńczenia).

Test:
  1. $query = mysql_query("SELECT * FROM test");
  2. for($y = 0; $y <= 100; $y++){
  3. $start = microtime(true);
  4. for($i = 0, $ii = mysql_num_rows($query); $i < $ii; $i++) // test 1
  5. // test2: for($i = 0; $i < mysql_num_rows($query); $i++)
  6. {
  7. }
  8. $end = microtime(true);
  9. $time[] = $end - $start;
  10. }
  11. $time = round(array_sum($time), 4);
  12.  
  13. file_put_contents('log.txt', 'test1: '. $time . "\n", FILE_APPEND); //lub test2:


Wyniki po pięciokrotnym odświeżeniu przeglądarki na obu testach:
test1: 1.958
test1: 2.0256
test1: 2.3469
test1: 2.1014
test1: 1.9449
test2: 9.7351
test2: 10.0474
test2: 9.2541
test2: 10.0189
test2: 9.8731

Jeśli metodologia jest zła, to pomóż mi ją poprawić, mogę się mylić. Albo zrób test sam. Z moich wyników wychodzi, że mój sposób jest 5-krotnie szybszy.

Ten post edytował wdev 1.12.2010, 16:23:21
Go to the top of the page
+Quote Post
CuteOne
post
Post #10





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

Ostrzeżenie: (0%)
-----


Przetestowałem i zwracam honor (IMG:style_emoticons/default/smile.gif) wyniki podobne jak u Ciebie średnio 3-4 szybciej

Ten post edytował CuteOne 1.12.2010, 18:12:19
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 14:24