Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php + sql] Wyświetlanie wartości
Forum PHP.pl > Forum > Przedszkole
RoxyFox
Witam!

Mam taki skrypcik. On wyświetla zawartość bazy
  1. <?php
  2.  
  3. include "common.inc"; // tu jest funkcja łączenia z bazą
  4.  
  5. $link_id = db_connect('roxyfox');
  6. $result = mysql_query("SELECT * FROM kolory", $link_id);
  7.  
  8. while($query_data = mysql_fetch_row($result)) {
  9.   echo "<p>".$query_data[0]." - ".$query_data[1]."</P>";
  10. }
  11.  
  12.  
  13. ?>


A jak zrobić żeby wyświetlił mi TYLKO np drugą wartość z 5 rekordu ? Tak najprościej jak się da i bez żadnych pentel.
Kuziu
Po 1 nie rób czegoś takiego jak

  1. <?php
  2. include 'common.inc';
  3. ?>


Taki plik jeśli oczywiście nie masz nastawionego datatype'a mogę podejrzeć a dodatkowo tam łaczysz się z bazą dzięki czemu moge pozanać user'a i hasło

po 2 aby wyciągnąć 5 rekord możesz zrobić np. tak

  1. SELECT *
  2. FROM tabela
  3. WHERE cos=1 LIMIT 1, 5


To zwróci 5 rekord z tym że nie wiadomo posortowany względem czego.
Można użyć ORDER BY pole by sortować względem pola o nazwie 'pole'.

Polecam jakiś kursik MySQL'a na początek gdyż widać braki na wejściu

A pola jak widzisz masz zwracane w tablicy
  1. <?php
  2. $query_data[1]
  3. ?>


Gdy natomiast użyjesz zamiast mysql_fetch_row -> mysql_fetch_array
otrzymasz tablicę asocjacyjną z kluczami jak nazy pól
  1. <?php
  2. $query_data['nazwa_pola'];
  3. ?>
RoxyFox
Spoko spoko. To wszystko to ja wiem. Ale jek piszę sobie po tej pentli takie coś
  1. <?php
  2. echo $query_data[1]
  3. ?>
to to wcale nie wypisuje tego czego bym oczekiwał - tam nie ma nic
Kuziu
Ponieważ w pętli while kolejno są wpisywane do tablicy $query_data wartośći rekordów...

Po kolei 1,2,3,4,false -> gdy natrafia na false czy tam undefined czyli wartość pustą gdy poprzednio był juz ostatni rekord a kolejnego nie ma tablica zostaje wyczyszczona.
RoxyFox
Czyli nie da się krótko i bez bentli wypisać tego co chcę ? Musi to wyglądać np. tak: ?

  1. <?php
  2.  
  3. $result = mysql_query("SELECT * FROM kolory WHERE objekt='tlo' LIMIT 3,3", $link_id);
  4.  
  5. while($query_data = mysql_fetch_row($result)) {
  6. echo "<p>".$query_data[0]." - ".$query_data[1]."<P>";
  7.  
  8. ?>
Kuziu
Jeśli masz zwrócony tylko 1 rekord to

  1. <?php
  2. $result = mysql_query("SELECT * FROM kolory WHERE objekt='tlo' LIMIT 3,3");
  3.  
  4. $query_data = mysql_fetch_row($result);
  5. echo "<p>".$query_data[0]." - ".$query_data[1] . '</p>';
  6.  
  7. ?>


Co to za jakiś $link_id po zapytaniu ?
RoxyFox
Opcjonalny argument - połączenie z bazą. Uchwyt czy jakoś tak - nieistotne.

No dobra, to dzięki
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.