Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Sortowanie tablicy, zapis do pliku
Forum PHP.pl > Forum > Przedszkole
Max Damage
Przykłady dwa ze znanej książki o php.

1. Zapisywanie do pliku:
  1. <?php
  2. $DOCUMENT_ROOT=$_SERVER['DOCUMENT_ROOT']
  3. $wp=fopen("$DOCUMENT_ROOT/../zamowienia/zamowienia.txt".'w');
  4.  
  5. $ciagwyjsciowy=$data."t".$iloscopon."t".$iloscoleju."butelek olejut".$iloscswiec."swiec zaplonowycht".$wartosc."PLNt".$adres."n";
  6.  
  7. fwrite ($wp.ciagwyjsciowy, strlen($ciagwyjsciowy));
  8. fclose($wp);
  9. echo '<p>Zamowienie zapisane.</p>';
  10. ?>

wywala mi : unexpected T_VARIABLE , o co chodzi? Dane z $ciągwyjsciowy brane są z formularza, czy muszę tam tez coś dopisać ? Pliku zamowienia.txt oczywiście nie ma, i chce go utworzyć z danych wpisanych do tego formularza.
Ogólnie mam wrażenie, ze coś jest bardzo nie tak, i mógłby mi to ktoś opisać po kolei?

2. Sortowanie tablicy jednowymiarowej:
  1. <?php
  2. $produkt=array (array ('OPO','Opony',100),
  3.  array ('OLE','Olej',10),
  4.  array ('SWI','Swiece',4)); 
  5.  
  6. $produkt=array('Olej','Opony','Swiece');
  7. sort($produkt);
  8.  
  9. for($rzad=0; $rzad<3; $rzad++)
  10. {
  11. for($kolumna=0; $kolumna<3; $kolumna++)
  12. {
  13. echo ' | '. $produkt[$rzad][$kolumna];
  14. }
  15.  echo ' |</br>';
  16. }
  17. ?>

Tu błędu nie wywala, za do sortuje pierwszą kolumne - każda litera w osobnej rubryce...
nospor
  1. <?php
  2. $DOCUMENT_ROOT=$_SERVER['DOCUMENT_ROOT'];
  3. $wp=fopen("$DOCUMENT_ROOT/../zamowienia/zamowienia.txt",'w');
  4.  
  5. $ciagwyjsciowy=$data."t".$iloscopon."t".$iloscoleju."butelek olejut".$iloscswiec."swiec zaplonowycht".$wartosc."PLNt".$adres."n";
  6.  
  7. fwrite ($wp.ciagwyjsciowy, strlen($ciagwyjsciowy));
  8. fclose($wp);
  9. echo '<p>Zamowienie zapisane.</p>';
  10. ?>

Na przyszlosc przepisuj lepiej lub zmien książke
Max Damage
Hm , no lepiej ale nadal nie za bardzo. Wyświetlają się błędy:
  1. <?php
  2. Warning: fopen() [function.fopen]: open_basedir restriction in effect. File(/htdocs/../zamowienia/zamowienia.txt) is not within the allowed path(s): (/var/www/sites:/var/www/tmp:/var/www/advertisements/)
  3.  
  4. Warning: fopen(/htdocs/../zamowienia/zamowienia.txt) [function.fopen]: failed to open stream: Operation not permitted in
  5.  
  6. Warning: fwrite(): supplied argument is not a valid stream resource in 
  7. Warning: fclose(): supplied argument is not a valid stream resource in
  8. ?>


Jak coś to sorry, że tak to wkleiłem, ale sie na tym po prostu nie znam. I jeszcze jedno: gdzie wcześniej miałem błąd? Bo sie nie mogę doszukać....
nospor
Komunikat głosi, że nie masz praw do pliku spowodu open_basedir. Jesli masz dostep do php.ini to zmien to.

Cytat
I jeszcze jedno: gdzie wcześniej miałem błąd? Bo sie nie mogę doszukać....
No bez przesady... pare linijek kodu i roznicy znaleźć nie mozesz. Szukaj w dwóch pierwszych liniach. miales tam dwa bledy
Max Damage
Cytat
No bez przesady... pare linijek kodu i roznicy znaleźć nie mozesz. Szukaj w dwóch pierwszych liniach. miales tam dwa bledy

No faktycznie jest, jeden błąd mój , drugi książki...

Cytat
Jesli masz dostep do php.ini to zmien to

A gdzie mam tego szukać ? I jak to zmienić? Pojęcia bladego nie mam czymś takim sad.gif Help....
nospor
php.ini jest to plik z konfiguracją php. Jesli masz to u siebie na kompie to zapuść szukajkę tego pliku to ci znajdzie. Albo poszukaj na googlach gdzie standardowo lezy taki plik dla systemu jaki masz.
Jesli zaś korzystasz z zewnetrzengo hostingu, to masz problem.

ps: a musisz do takiej sciezki zapisywac? Nie mozesz do takiej './' ? Czyli do katalogu co lezy skrypt
Max Damage
Cytat
Jesli zaś korzystasz z zewnetrzengo hostingu, to masz problem.

Hm, no niestety, ale tak.

Cytat
Nie mozesz do takiej './' ? Czyli do katalogu co lezy skrypt

Czyli tak : ?
  1. <?php
  2. $wp=fopen("./zamowienia.txt",'w');
  3. ?>

Nom, utworzyło plik, tylko problem z fwrite , błąd ten sam co poprzednio.
nospor
Przeoczylem jeszcze jednego byka:
  1. <?php
  2. fwrite ($wp,$ciagwyjsciowy, strlen($ciagwyjsciowy));
  3. ?>

A tobie proponuje manuala
http://pl.php.net/manual/pl/function.fwrite.php
Max Damage
Boże, przez te kropki i przecinki można zwariować, to wina czcionki w tej książce, i mojej nieostrożności oczywiście...
Działa elegancko. Dzięki za wszystko thumbsupsmileyanim.gif thumbsupsmileyanim.gif
Miło by było jak by jeszcze ktoś mi wyjaśnił to sortowanie, ale nie śpieszy mi się - poczekam biggrin.gif
Manuala oczywiście też poczytam.
nospor
Cytat
Miło by było jak by jeszcze ktoś mi wyjaśnił to sortowanie
Ten skrypt sortowania to jakas kicha a nie sortowanie. Najpierw definiujesz tablice wielowymiarową $produkt, zaraz potem nadpisujesz ją tablicą jednowymiarową, którą potem normalną funkcją sortujesz. Nastepnie lecisz pętlami po tablicy $produkt tak jakby byla ona tą tablicą wielowymiarową z początku, ale ona juz nie jest bo została nadpisana. Ufff, ale zakręcone smile.gif
Podsumowując: ten kod nie trzyma się kupy
Max Damage
No faktycznie, to tablica dwuwymiarowa, na szczęście wiem jak ją dowolnie sortować biggrin.gif
Sorki za błąd, czasem zakręcony trochę jestem...
Dandelion
tak z ciekawosci kto wie jaki algorytm sortowania stoi za funkcja sort


quicksort ?
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.