Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php]Sortowanie tablicy, zapis do pliku
Max Damage
post 20.06.2007, 12:50:55
Post #1





Grupa: Zarejestrowani
Postów: 246
Pomógł: 19
Dołączył: 14.06.2007

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


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


--------------------
"Wszyscy wiedzą, że czegoś nie da się zrobić, i przychodzi taki jeden, który nie wie, że się nie da, i on właśnie to robi." - Albert Einstein
Go to the top of the page
+Quote Post
nospor
post 20.06.2007, 12:56:13
Post #2





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




  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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Max Damage
post 20.06.2007, 13:10:53
Post #3





Grupa: Zarejestrowani
Postów: 246
Pomógł: 19
Dołączył: 14.06.2007

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


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ć....

Ten post edytował Max Damage 20.06.2007, 13:11:40


--------------------
"Wszyscy wiedzą, że czegoś nie da się zrobić, i przychodzi taki jeden, który nie wie, że się nie da, i on właśnie to robi." - Albert Einstein
Go to the top of the page
+Quote Post
nospor
post 20.06.2007, 13:14:41
Post #4





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




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Max Damage
post 20.06.2007, 13:22:56
Post #5





Grupa: Zarejestrowani
Postów: 246
Pomógł: 19
Dołączył: 14.06.2007

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


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


--------------------
"Wszyscy wiedzą, że czegoś nie da się zrobić, i przychodzi taki jeden, który nie wie, że się nie da, i on właśnie to robi." - Albert Einstein
Go to the top of the page
+Quote Post
nospor
post 20.06.2007, 13:27:44
Post #6





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




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Max Damage
post 20.06.2007, 13:46:15
Post #7





Grupa: Zarejestrowani
Postów: 246
Pomógł: 19
Dołączył: 14.06.2007

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


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.


--------------------
"Wszyscy wiedzą, że czegoś nie da się zrobić, i przychodzi taki jeden, który nie wie, że się nie da, i on właśnie to robi." - Albert Einstein
Go to the top of the page
+Quote Post
nospor
post 20.06.2007, 13:50:32
Post #8





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




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Max Damage
post 20.06.2007, 13:59:50
Post #9





Grupa: Zarejestrowani
Postów: 246
Pomógł: 19
Dołączył: 14.06.2007

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


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.

Ten post edytował Max Damage 20.06.2007, 14:17:25


--------------------
"Wszyscy wiedzą, że czegoś nie da się zrobić, i przychodzi taki jeden, który nie wie, że się nie da, i on właśnie to robi." - Albert Einstein
Go to the top of the page
+Quote Post
nospor
post 20.06.2007, 15:18:21
Post #10





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




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Max Damage
post 20.06.2007, 15:51:14
Post #11





Grupa: Zarejestrowani
Postów: 246
Pomógł: 19
Dołączył: 14.06.2007

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


No faktycznie, to tablica dwuwymiarowa, na szczęście wiem jak ją dowolnie sortować biggrin.gif
Sorki za błąd, czasem zakręcony trochę jestem...


--------------------
"Wszyscy wiedzą, że czegoś nie da się zrobić, i przychodzi taki jeden, który nie wie, że się nie da, i on właśnie to robi." - Albert Einstein
Go to the top of the page
+Quote Post
Dandelion
post 25.06.2007, 00:35:18
Post #12





Grupa: Zarejestrowani
Postów: 169
Pomógł: 0
Dołączył: 27.01.2006

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


tak z ciekawosci kto wie jaki algorytm sortowania stoi za funkcja sort


quicksort ?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 13.06.2025 - 13:30