Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
wyświetlanie ograniczonej ilości rekordów
#1
witam,

na początku proszę o wyrozumiałość, nie mogę sobie poradzić z drobnym problemem,
mam kod pobierania i wyświetlania wszystkich rekordów w tabelce, a chciałbym żeby wyświetlał tylko ostatnie 10 , próbowałem to zrobić przy pomocy select i limit ale nie wychodzi mi, proszę o pomoc, kod:

<?php foreach ($baza->messages as $message): ?>
<p><b style="color: red";><?php echo $message ?></b></p>
<?php endforeach; ?>
<?php foreach ($baza->wyniki as $wyniki): ?>
<?php echo '<b>' . $wyniki->id . '. ' . $wyniki->tytul . '</b>, ' . $wyniki->findDependentRowset('User')->current()->use_name . ', ' . $wyniki->findDependentRowset('User')->current()->use_email . ' - ' . date('Y-m-d', $wyniki->data_dodania); ?> -
<a href="/admin/wyniki/id/<?php echo $wyniki->id; ?>" onclick="return confirm('do usunięcia?');">usuń</a><br />
<?php endforeach; ?>
Odpowiedz
#2
wszystko wychodzi selectem i limit Smile

$zapytanie_o_wpisy=mysql_query("SELECT tytul, data FROM informacje where typ_postow='publiczne' limit 10 order by data desc");
while($a = mysql_fetch_array($zapytanie_o_wpisy))
{
echo 'cos_tam';
echo 'tutaj_wyswietlasz_wyniki Smile';
}

Powyżej masz zapytanie select do bazy + pętle by wyświetlić wyniki

chciałem przerobić twój kod, ale nic z tego nie wiem ;P
masz tam jeszcze js w tym itd. chce zasugerować by przed wklejaniem kodu lepiej go uporządkować, wyczyścić z zbędnych rzeczy i wtedy każdy zapewne chętniej by sie mu przyjrzał.
Odpowiedz
#3
(11-04-2011, 19:45)ketoprom234 napisał(a): witam,

na początku proszę o wyrozumiałość, nie mogę sobie poradzić z drobnym problemem,
mam kod pobierania i wyświetlania wszystkich rekordów w tabelce, a chciałbym żeby wyświetlał tylko ostatnie 10 , próbowałem to zrobić przy pomocy select i limit ale nie wychodzi mi, proszę o pomoc, kod:

<?php foreach ($baza->messages as $message): ?>
<p><b style="color: red";><?php echo $message ?></b></p>
<?php endforeach; ?>
<?php foreach ($baza->wyniki as $wyniki): ?>
<?php echo '<b>' . $wyniki->id . '. ' . $wyniki->tytul . '</b>, ' . $wyniki->findDependentRowset('User')->current()->use_name . ', ' . $wyniki->findDependentRowset('User')->current()->use_email . ' - ' . date('Y-m-d', $wyniki->data_dodania); ?> -
<a href="/admin/wyniki/id/<?php echo $wyniki->id; ?>" onclick="return confirm('do usunięcia?');">usuń</a><br />
<?php endforeach; ?>
Limit się robi w momencie wysyłania zapytania do bazy, nie wyświetlania.

@Radian: Zobacz co on ma za kod...
Odpowiedz
#4
(12-04-2011, 13:01)Pedro84 napisał(a):
(11-04-2011, 19:45)ketoprom234 napisał(a): witam,

na początku proszę o wyrozumiałość, nie mogę sobie poradzić z drobnym problemem,
mam kod pobierania i wyświetlania wszystkich rekordów w tabelce, a chciałbym żeby wyświetlał tylko ostatnie 10 , próbowałem to zrobić przy pomocy select i limit ale nie wychodzi mi, proszę o pomoc, kod:

<?php foreach ($baza->messages as $message): ?>
<p><b style="color: red";><?php echo $message ?></b></p>
<?php endforeach; ?>
<?php foreach ($baza->wyniki as $wyniki): ?>
<?php echo '<b>' . $wyniki->id . '. ' . $wyniki->tytul . '</b>, ' . $wyniki->findDependentRowset('User')->current()->use_name . ', ' . $wyniki->findDependentRowset('User')->current()->use_email . ' - ' . date('Y-m-d', $wyniki->data_dodania); ?> -
<a href="/admin/wyniki/id/<?php echo $wyniki->id; ?>" onclick="return confirm('do usunięcia?');">usuń</a><br />
<?php endforeach; ?>
Limit się robi w momencie wysyłania zapytania do bazy, nie wyświetlania.

@Radian: Zobacz co on ma za kod...

Mylisz się. Można zrobić także podczas wyświetlania ale jest to mniej efektywne.
Odpowiedz
#5
(12-04-2011, 13:32)mateo napisał(a): Mylisz się. Można zrobić także podczas wyświetlania ale jest to mniej efektywne.
No to oczywiste, że jak się ktoś uprze to tak zrobi. Tak samo jak można pchać samochód zamiast nim jeździć. Tylko dla mnie - jak coś jest nieefektywne bądź złe = nie istnieje. Reasumując: nie, nie można.
Odpowiedz
#6
Można! Wymaga to tylko kilku znaków i już. Porównanie sytuacji do pchania samochodu jest bezsensowna. Sam nawet nie wiesz ile Twoich dzieł jest nieefektywnych wg. innych. Ktoś może używać pierwszych 5 rekordów do danej rzeczy a pozostałych do innej na jednej stronie, tak więc przykład podany przeze mnie jest bardziej efektywny gdyż wykonujemy jedno zapytanie do bazy danych a nie 2. W tym momencie Twoje rozwiązanie jest nieefektywne więc według Twojego toku myślenia złe? Nie mam zamiaru Cię obrazić tylko uświadomić, że w tym co robimy pojęcie "nieefektywne" jest względne.
Odpowiedz
#7
(12-04-2011, 18:36)mateo napisał(a): Można! Wymaga to tylko kilku znaków i już. Porównanie sytuacji do pchania samochodu jest bezsensowna. Sam nawet nie wiesz ile Twoich dzieł jest nieefektywnych wg. innych. Ktoś może używać pierwszych 5 rekordów do danej rzeczy a pozostałych do innej na jednej stronie, tak więc przykład podany przeze mnie jest bardziej efektywny gdyż wykonujemy jedno zapytanie do bazy danych a nie 2. W tym momencie Twoje rozwiązanie jest nieefektywne więc według Twojego toku myślenia złe? Nie mam zamiaru Cię obrazić tylko uświadomić, że w tym co robimy pojęcie "nieefektywne" jest względne.
Jeśli uważasz, że pobieranie wszystkich rekordów z bazy i ich porcjowanie w widoku ma cokolwiek wspólnego z efektywnością, to poducz się trochę, jak się poduczysz, to wróć pogadamy.

Bez obrazy mateo, ale pieprzysz jak potłuczony. Tylko jedno, po co ludzie robią paginację? Mogą przecież ciągnąć wszystko jednym zapytaniem i porcjować w widoku.

PS. Nieefektywny jest Twój tok myślenia w tej sytuacji. Zapamiętaj 1 zapytanie pobierające więcej rekordów jest MNIEJ optymalne i efektywne niż dwa z limitem i offsetem.
Odpowiedz
#8
Tak czyli twierdzisz, że pobranie 5 rekordów i 100 rekordów jest bardziej efektywne od pobrania tylko 100 rekordów? I kto tu musi się poduczyć ;o
Odpowiedz
#9
(12-04-2011, 20:43)mateo napisał(a): Tak czyli twierdzisz, że pobranie 5 rekordów i 100 rekordów jest bardziej efektywne od pobrania tylko 100 rekordów? I kto tu musi się poduczyć ;o
Nom, właśnie Ty. Pogrążasz się mateo.

Czytanka na wieczór, prosta tablica. Kilkadziesiąt pól, większość to integery. Zadanie:
1. Przeanalizuj zapytania.
2. Przeanalizuj ich czas wykonania.
3. Przemyśl, jaki będzie narzut zużycia zasobów.
4. Skonfrontuj to ze swoimi głupotami.
5. Teraz przerzuć te dane na większą ilość rekordów.
6. Naucz się.
Kod:
SELECT * FROM `xs_customers_data` limit 300; // Wykonanie zapytania trwało 0.039 sekund(y)
SELECT * FROM `xs_customers_data` limit 150;  // Wykonanie zapytania trwało 0.016 sekund(y)
a) Nie mówimy o relacjach, JOINach, etc.
b) Małe dane = małe różnice, duże dane = dużę różnice.
c) Zauważ, że często pobierasz dane z wielu tabel.
Odpowiedz
#10
Ty po prostu nie rozumiesz o co mi chodzi i zamiast to pojąć uważasz swoją prawdę za najprawdziwszą i starasz się mnie obrazić. Nie chodzi mi o samo pobieranie danych ale o ich pobieranie i wyświetlanie na stronie o co chodzi autorowi tekstu.
Odpowiedz


Podobne wątki…
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Wyświetlenie ilości Plików z bazy MySQL, Wyświetlenie ilości Plików z bazy SQL maniek666 1 3,662 28-11-2013, 14:51
Ostatni post: ILIES
  [PHP] Nieprawidłowo działa wyświetlanie i stronicowanie zdjęć martinprz 0 1,806 26-01-2013, 20:14
Ostatni post: martinprz
  Wyświetlanie sumy z kolumn. Intelactive 2 2,543 27-10-2012, 00:36
Ostatni post: Intelactive
  Wyciąganie pojedynczych rekordów z bazy po separatorze Piotrroger 0 1,630 01-08-2012, 20:41
Ostatni post: Piotrroger
  Odzyskanie rekordów lomek 2 2,419 28-05-2012, 19:53
Ostatni post: mateo

Skocz do:


Użytkownicy przeglądający ten wątek:
Sponsorzy i przyjaciele
SeoHost.pl