Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> losowe wybieranie rekordów w połączeniu ze sprawdzaniem plików
Arek00
post
Post #1





Grupa: Zarejestrowani
Postów: 177
Pomógł: 0
Dołączył: 8.11.2005

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


mam tabelę w której pierwsza kolumna to identyfikatory. w jednym z folderów są pliki o nazwach takich jak te identyfikatory, z tym że nie dla każdego wpisu w bazie jest taki plik. chciałbym terez wybierać losowo 3 wpisy dla których istnieje ten plik, na razie przyszło mi do głowy coś takiego (kod na razie tylko teoretyczny, nie sprawdzałem go)
  1. <?php
  2. $zapytanie = db_query("SELECT * FROM tabela ORDER BY rand()");
  3.  while ($zapytanie2 = db_fetch_array($zapytanie) && $i<=3){
  4. $zdjecie = "fotki/" . $zapytanie2['indeks'] . ".jpg";
  5. if (file_exists($zdjecie)){
  6.  echo $zapytanie2['nazwa'] . "<br>";
  7.  echo $zapytanie2['opis'] . "<br>";
  8.  echo "<img src=" . $zdjecie . "><br><br>";
  9.  $i++;
  10. }
  11.  }
  12. ?>

tutaj najpierw wybieram wszystkie rekordy i potem dopiero sprawdzam po kolei czy istnieje plik. czy da się to zrobić jakoś prościej tak żeby nie wykonywać tylu pętli?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




No to troche inaczej to teraz wyglada. Jak ci pasuje, no to czemu nie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ale gdyby tak pogdybac jeszcze troche, to mozna by walnac dwa pola. jedno wskazuje na plik na zewnetrzym serwerze, drugie na lokalnym. nie musisz sie wowczas bawic w analize. ale chyba teraz tak wlasnie masz, albo nie zrozumialem dokladnie. No nic. jesli oba pola beda null, znaczy ze fotki nie ma.

Cytat
zarówno fotki (przez ftp) jak i opisy (przez csv) wrzucam ręcznie bo jest mi wygodniej i szybciej
Masz racje - wygodniej i szybciej. tylko ma to wlasnie te wade, ze jest niespojnosc danych. Ale i na to mozna zaradzic. Dopisz dodatkowy skrypt co mowilem wczesniej, niech on sprawdza czy dane sie pokrywaja i uaktualnia dane w bazie. Skrypcik ten mozesz zapuszczac po swoich recznych zmianach.

Podsumowujac: Jesli fakt niespojnosci danych nie wplywa na wydajnosc i ci to pasuje no to git. Jesli jednak do wyswietlenia 3 fotek, ty musisz mimo wszystko pobierac z bazy wszystkie dane, to troche nie tak jest. Oczywisicie Twoj sposob optymalizacji polegajacy na pobraniu 20 fotek wydaje sie dobry pod warunkiem ze faktycznie ta trafnosc bedzie taka jak mowiles.
Go to the top of the page
+Quote Post

Posty w temacie


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: 26.12.2025 - 17:33