Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]pętla for();
Forum PHP.pl > Forum > Przedszkole
kamilos809
Hejka,
Mam kodzik:
  1. $wyss = $_POST['wys'];
  2. $szerr = $_POST['szer'];
  3.  
  4. $plik = "kalkulator_passiv90.txt";
  5. $dane = file($plik); /* pobieram dane z pliku i zapisuje do tablicy (linia = rekord) */
  6.  
  7. for($i=0;$i<count($dane) && ;$i++) { /* przeszukuję tablicę */
  8. list($szer[$i], $szer2[$i], $wys[$i], $wys2[$i], $cena[$i]) = explode(" || ", $dane[$i]);
  9. /* dziele linię na tablicę i zapisuje dane do odpowiednich zmienncyh */
  10. }
  11. for($i=0;$i<count($szer);$i++)
  12. if($wyss >= $wys[$i] && $wyss <= $wys2[$i] && $szerr >= $szer[$i] && $szerr <= $szer2[$i]){
  13. $cena = $cena[$i];
  14. }


W pliku bazy mam powiedzmy kilka tabel, różniących się liczbami, ale zostawiłem w nich komórkę z numerem tabeli.
Moje pytanie: jak to przerobić, żeby system czytał jedynie wyniki z tabeli oznaczonej cyfrą 1 w pierwszej komórce?

moja "baza" wygląda tak:

numer_bazy || szer || szer2 || wys || wys2 || cena
1 || 30 || 60 || 50 || 20 || 100
1 || 20 || 30 || 70 || 80 || 120
2 || 60 || 90 || 10 || 40 || 90
2 || 11 || 70 || 20 || 40 || 110
by_ikar
Najlepiej pomyśleć o przeniesieniu się na jakaś bazę danych typu mysql/pgsql, lub kiedy koniecznie musi być w pliku sqlite. Bo przy każdej drobnej funkcjonalności będziesz musiał dopisać do tego tonę kodu.

W tym kodzie brakuje ci jednej zmiennej, która odpowiada za numer_bazy, oraz odpowiedniego warunku który będzie sprawdzać czy ów zmienna numer_bazy jest równa temu czego potrzebujesz.
kamilos809
to wiem, że można if'em zrobić, ale myślałem, że to można zaznaczyć w jednym kodzie, żeby skrypt nie mielił całej bazy kilka razy.
Co do bazy, niestety takie było wymaganie odgórne, że ma być to bez bazy sql, więc umywam ręce wink.gif
tzm
Cytat(kamilos809 @ 3.07.2014, 17:18:08 ) *
to wiem, że można if'em zrobić, ale myślałem, że to można zaznaczyć w jednym kodzie, żeby skrypt nie mielił całej bazy kilka razy.
Co do bazy, niestety takie było wymaganie odgórne, że ma być to bez bazy sql, więc umywam ręce wink.gif


To sugerował bym użycie cache jak nie chcesz jej cały czas mielić. Klientowi żal dać 5 złotych więcej za serwer z bazą czy o co chodzi?
by_ikar
Cytat(kamilos809 @ 3.07.2014, 17:18:08 ) *
to wiem, że można if'em zrobić, ale myślałem, że to można zaznaczyć w jednym kodzie, żeby skrypt nie mielił całej bazy kilka razy.
Co do bazy, niestety takie było wymaganie odgórne, że ma być to bez bazy sql, więc umywam ręce wink.gif


No to jak już napisałem, sqlite stoi otworem.
kamilos809
Dzięki za pomoc ;]
No trudno, głupota zleceniodawcy, nie wnikajmy bo nie ma potrzeby tongue.gif
binary101
w linii 5 zmieniasz:
  1. $dane = preg_grep("/^$numer_bazy[ ]+||/", file($plik));
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.