Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Wyświetlanie rekordu z tabeli po $id
Forum PHP.pl > Forum > Przedszkole
jozbar
Witam,

Mam taki kodzik:
  1. <?php
  2.  
  3. $plik = "oferta.txt";
  4. $dane = file($plik);
  5.  
  6. for($i=0;$i<count($dane);$i++) {
  7.  list($nr[$i], $rodzaj[$i], $nazwa[$i], $dostawa[$i], $material[$i], $kategoria[$i], $kolor[$i], $rozmiar[$i], $cena[$i], $opis[$i]) = explode("||", $dane[$i]);
  8. }
  9.  
  10. ?>


Dane na stronie wyświetlam poprzez:
  1. <?php echo $nazwa[$_GET['id']]; ?>


Jest to jednak trochę niewygodne rozwiązanie i tutaj pojawia się pytanie - jak i czy można wyświetlać poszczególne dane poprzez zmienną $nr (zamiast id w adresie strony) która w każdym wersie pliku 'oferta.txt' jest inna i czy takie rozwiązanie ma w ogóle sens!?

Pozdrawiam,
jozbar
kipero
Jeśli tak bardzo się upierasz na pliki to po prostu każdy produkt z oferty w oddzielnym pliku i nadawaj im nazwy produkt_01.txt. Można ewentualnie rozwiązać to tak:
  1. <?php
  2. $plik = "oferta.txt";
  3. $dane = file($plik);
  4.  
  5. $nr = (int)$_GET['id'] - 1;
  6.  
  7. if ($nr > 0){
  8.   $produkt = $dane[$nr];
  9.   list($nr, $rodzaj, $nazwa, $dostawa, $material, $kategoria, $kolor, $rozmiar, $cena, $opis) = explode("||", $produkt);
  10. }
  11. ?>

O to chodziło?
erix
Ale Ty sobie lubisz utrudniać życie... ;]

  1. <?php
  2. $keys = array('nr', 'rodzaj', 'nazwa'...);
  3. $values = explode('||', $produkt);
  4.  
  5. extract(array_combine($keys, $values));
  6. ?>
jozbar
Cytat(kipero @ 8.07.2009, 17:23:34 ) *
Jeśli tak bardzo się upierasz na pliki to po prostu każdy produkt z oferty w oddzielnym pliku i nadawaj im nazwy produkt_01.txt. (...)


AFAIR pliki są szybsze niż BD przy małej ilości danych a co do każdego produktu w innym pliku to nie podoba mi się takie rozwiązanie ...

Cytat(kipero @ 8.07.2009, 17:23:34 ) *
Można ewentualnie rozwiązać to tak:
(...)
O to chodziło?


Coś mi nie śmiga ten kod ...

Cytat(erix @ 8.07.2009, 18:45:05 ) *
Ale Ty sobie lubisz utrudniać życie... ;]

(Kod PHP)


Zupełnie nie wiem jak to ugryźć i jak wyświetlić konkretną komórkę z konkretnej linijki ...
erix
Cytat
AFAIR pliki są szybsze niż BD przy małej ilości danych a co do każdego produktu w innym pliku to nie podoba mi się takie rozwiązanie ...

Zależy. Ale w 90% przypadków będą szybsze, jeśli chodzi o odczyt. Zapis będzie koszmarem. [;

Cytat
Zupełnie nie wiem jak to ugryźć i jak wyświetlić konkretną komórkę z konkretnej linijki ...

Co do konkretnej linijki: pętla while" title="Zobacz w manualu PHP" target="_manual, jedziesz po kolei z fgets" title="Zobacz w manualu PHP" target="_manual z licznikiem. Jeśli licznik = numer linii, wyciągasz tak, jak napisaliśmy.

file" title="Zobacz w manualu PHP" target="_manual unikaj jak ognia, marnujesz tak pamięć.
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.