Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]pętla for();
kamilos809
post
Post #1





Grupa: Zarejestrowani
Postów: 165
Pomógł: 3
Dołączył: 2.04.2010

Ostrzeżenie: (10%)
X----


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

Ten post edytował kamilos809 3.07.2014, 11:53:13
Go to the top of the page
+Quote Post
by_ikar
post
Post #2





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

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


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.
Go to the top of the page
+Quote Post
kamilos809
post
Post #3





Grupa: Zarejestrowani
Postów: 165
Pomógł: 3
Dołączył: 2.04.2010

Ostrzeżenie: (10%)
X----


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 (IMG:style_emoticons/default/wink.gif)

Ten post edytował kamilos809 3.07.2014, 16:18:56
Go to the top of the page
+Quote Post
tzm
post
Post #4





Grupa: Zarejestrowani
Postów: 675
Pomógł: 58
Dołączył: 17.12.2013

Ostrzeżenie: (10%)
X----


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 (IMG:style_emoticons/default/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?
Go to the top of the page
+Quote Post
by_ikar
post
Post #5





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

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


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 (IMG:style_emoticons/default/wink.gif)


No to jak już napisałem, sqlite stoi otworem.
Go to the top of the page
+Quote Post
kamilos809
post
Post #6





Grupa: Zarejestrowani
Postów: 165
Pomógł: 3
Dołączył: 2.04.2010

Ostrzeżenie: (10%)
X----


Dzięki za pomoc ;]
No trudno, głupota zleceniodawcy, nie wnikajmy bo nie ma potrzeby (IMG:style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
binary101
post
Post #7





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 3.07.2014

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


w linii 5 zmieniasz:
  1. $dane = preg_grep("/^$numer_bazy[ ]+||/", file($plik));
Go to the top of the page
+Quote Post

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: 23.08.2025 - 15:37