Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> odwracanie tablic
arek_inc
post 15.06.2003, 15:00:00
Post #1





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 25.03.2003

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


Mam taki problem. oto czesc skryptu do kat. linkow:
[php:1:a139329939]<?php
$tablica=file("../users/domowe.txt");
$tablica=array_reverse($tablica);
for($i=0;$i{
$http_string=basename($SCRIPT_NAME);$sign=strpos($http_string,".");
$kat=substr($http_string,0,$sign);
$ile=@file("../komentarze/$kat/$id.txt");
$ile_kom=count($ile);
if(@filesize("../komentarze/$kat/$id.txt")<=0){$ile_kom="brak";
}
$ex=explode("",$tablica[$i]);
?>[/php:1:a139329939]

jak widac odwracam tablice, po to zeby nowsze linki pojawialy sie na gorze, ale tu wlasnie pojawia sie problem, bo mam tez komentarze, ktore po dodaniu zapisuja sie w postaci id.txt (np 3.txt), ale przez to ze odwrocilem tablice, wszystkie linki maja zmienne id (najnowsze ma zawsze 0) przez co komentarze sie przesowaja wypadaloby spowrotem odwrocic tablice przed komentarzami, ale jak?questionmark.gif


----------------------------
Używaj odpowiedniego BBcode -DeyV


--------------------
Arbeit macht frei
Go to the top of the page
+Quote Post
DeyV
post 15.06.2003, 16:35:55
Post #2





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




zanim przejdziemy dalej - co to za pętla? --> for($i=0;$i{


--------------------
"Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
Go to the top of the page
+Quote Post
arek_inc
post 15.06.2003, 16:42:37
Post #3





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 25.03.2003

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


eh, wiesz co, ja sie na php znam srednio, nie ja napisalem ten skrypt...


--------------------
Arbeit macht frei
Go to the top of the page
+Quote Post
scanner
post 15.06.2003, 17:19:10
Post #4





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




i według Ciebie to co nam pokazałeś to niby działa?


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post
arek_inc
post 15.06.2003, 17:28:49
Post #5





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 25.03.2003

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


Oto caly kod (wraz z html-em (jak za duzo, to usune)) jednej ze stron (dzialow). Chyba fatycznie wkradl tam sie jakis blad (sorki).
[php:1:455022dbeb]
<?
echo"
<center><a HREF=../dodaj.php>dopisz do katalogu</A> | <a HREF=../dir.php>Wykaz katalogów</A></center><br>";
$id=0;
$tablica=file("../users/domowe.txt");
$tablica=array_reverse($tablica);
for($i=0;$i<count($tablica);$i++)
{
$http_string=basename($SCRIPT_NAME);$sign=strpos($http_string,".");
$kat=substr($http_string,0,$sign);
$ile=@file("../komentarze/$kat/$id.txt");
$ile_kom=count($ile);
if(@filesize("../komentarze/$kat/$id.txt")<=0){$ile_kom="brak";
}
$ex=explode("|**|",$tablica[$i]);
echo "<div align=center><center><table border=0 cellpadding=0 cellspacing=1 bgcolor=white width=360 height=94><tr><td width=137 height=21 valign=middle align=center bgcolor=rgb(245,245,245)>
<font class=text>dodał: </font><a HREF=mailto:$ex[2]>$ex[1]</A></td><td width=217 height=21 valign=middle align=center bgcolor=rgb(245,245,245)>
<a HREF=$ex[0] target=new>$ex[0]</A></td></tr><tr><td width=138 height=69 style=background-color:transparent></td><td width=216 height=69 valign=middle align=center valign=top bgcolor=rgb(235,235,235)>
<div align=center><center><table border=0 cellpadding=5 cellspacing=0 width=193 height=54><tr><td width=193 height=54 valign=top bgcolor=rgb(245,245,245)><font class=text>$ex[3]</font></td></tr></table>
</center>
</div></td></tr></table></center></div>
<div align=center><center><table border=0 cellpadding=0 cellspacing=0 width=360 height=11><tr><td width=138 height=11>
<font class=text>Komentarzy [ $ile_kom ]</FONT></td><td width=216 height=11 bgcolor=rgb(245,245,245) align=center><a HREF=../komentarze/domowe.php?id=$id>dodaj komenatrz</A>
<a HREF=../kom.pokaz.php?id=$id>Zobacz opinie</A></td></tr></table><hr noshade size=1 width=360></center></div>";
$id++;
}
?>[/php:1:455022dbeb]


--------------------
Arbeit macht frei
Go to the top of the page
+Quote Post
arek_inc
post 15.06.2003, 18:57:09
Post #6





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 25.03.2003

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


eno przeciez sie przyznalem do bledu! scaner napisales i usunales czemu?


--------------------
Arbeit macht frei
Go to the top of the page
+Quote Post
scanner
post 15.06.2003, 19:14:12
Post #7





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




Może to pomoże?
[php:1:bd7f73348a]
<?php
// (...)
$tablica=file("../users/domowe.txt");
$tablica1=array_reverse($tablica);
for($i=0;$i<count($tablica1);$i++)
// (...)
?>[/php:1:bd7f73348a]

Usunąłem coś, co miało cie zmusic do pokazania poprawnego kodu. Ale zaraz po wysłaniu okazało się, ze właśnie to zrobiłes, więc po co trzymac zbednego posta.


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post
arek_inc
post 15.06.2003, 19:58:29
Post #8





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 25.03.2003

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


Niestety, to nawet nie odwocilo tablicy sad.gif


--------------------
Arbeit macht frei
Go to the top of the page
+Quote Post
scanner
post 15.06.2003, 20:03:37
Post #9





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




podpowiedz:
$tablica - oryginal
$tablica1 - tablica odwrocona


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post
arek_inc
post 15.06.2003, 20:07:27
Post #10





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 25.03.2003

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


a jak zrobic oryginal?
scanner prosze przejrzysciej... sad.gif


--------------------
Arbeit macht frei
Go to the top of the page
+Quote Post
scanner
post 15.06.2003, 20:21:07
Post #11





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




[php:1:02b3f0e786]<?php
echo 'Nie dobijaj mnie...';
$tablica1 = array_reverse($tablica); // odwracamy
$tablica2 = array_reverse($tablica1); // znowu odwracamy
?>[/php:1:02b3f0e786]
Mówi ci to coś?


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post
arek_inc
post 15.06.2003, 20:25:42
Post #12





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 25.03.2003

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


no wiec odwocilo sie, ale id wciaz jest w zla strone.
zobacz jak to wyglada w praktyce http://punk.do.pl/~arek/dzialy/domowe.php
a czy nie ma jakiejs opcji do zmiennej id typu $reverse_id ? biggrin.gif


--------------------
Arbeit macht frei
Go to the top of the page
+Quote Post
scanner
post 15.06.2003, 20:35:33
Post #13





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




1. Ostrzeżenieczacie.
2.[php:1:0d9a1d40f3]<?php
echo 'Myślenie naprawdę nie boli';
$reverse_id = $max_id - $id
?>[/php:1:0d9a1d40f3]


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post
arek_inc
post 15.06.2003, 20:42:18
Post #14





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 25.03.2003

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


PRZEPRASZAM!
Zalamac sie idzie... nie dziala :cry:


--------------------
Arbeit macht frei
Go to the top of the page
+Quote Post
scanner
post 15.06.2003, 21:38:03
Post #15





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




Wiesz co.. pokaz dwie pierwsze linijki z pliku "domowe.txt" i dwie pierwsze z dowolnego pliku z komentarzami. Od tego zaczniemy.


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post
Cudi
post 15.06.2003, 21:38:16
Post #16


Administrator planeta/IRC


Grupa: Przyjaciele php.pl
Postów: 385
Pomógł: 0
Dołączył: 19.04.2003
Skąd: Zabrze

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


Nie odwracaj array_reversem tylko napisz inną pętle, żeby szło od count($tablica), dopóki $i jest większe od zera i $i-- smile.gif


--------------------
"Programmers are in a race with the Universe to create bigger and better idiot-proof programs, while the Universe is trying to create bigger and better idiots. So far the Universe is winning."
Cudi's devBlog
Go to the top of the page
+Quote Post
arek_inc
post 16.06.2003, 07:32:17
Post #17





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 25.03.2003

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


Domowe txt:
Kod
http://cedar.prv.pl|**||**||**|Strona po¶więcona softwerowi. Znajdziesz tu wiele spolszczeń do popularnych programów.|**|Monday, 05  May  2003

[url=http://www.denis35.prv.pl|**|denis35|**|denis35@wp.pl|**|taka]http://www.denis35.prv.pl|**|denis35|**|de...5@wp.pl|**|taka[/url] moja stronka o wszystkim|**|Wednesday, 07  May  2003

Komentarze:
Kod
arek|**|arek_inc@o2.pl|**|tresc komentarza

Cytat
Nie odwracaj array_reversem tylko napisz inną pętle, żeby szło od count($tablica), dopóki $i jest większe od zera i $i--

Czyli jak ta petla ma wygladac? Sluchajcie, ja wiem o czym wy mowicie, natomiast nie jestem na tyle zaawansowany zeby pisac cokolwiek, z petlami wlacznie sad.gif


--------------------
Arbeit macht frei
Go to the top of the page
+Quote Post
scanner
post 16.06.2003, 07:59:07
Post #18





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




Co do plików - powiedz komuś, kto ten skrypt pisał, że bardzo dobrym roziązaniem jest dodawanie na poczatku każdej linii ID wpisu. Tak jak to ma miejsce w bazach danych. Inaczej zawsze coś będzie nie tak, szczególnie, gdy usuniesz jakąś linię z danego elementu. każdy wpis powienien być poprzedzony swoim ID - jak dla mnie ten skrypt jest do napisania od nowa.

Co do pętli:
Przeanalizuj poniższą konktrukcję:[php:1:11fc23bb74]<?php
$intArraySize = sizeof($tablica); // sizeof i count to to samo
// jezeli tablica nie zmienia rozmairów wewnatrz petli, zawsze sizeof() sprawedzamy przed petla
// dzieki temu przyspieszamy dzialania skryptu.
// to jak ty masz napisane powoduje
// ze rozmiar tablicy jest sprawdzany za kazdym obrotem petli
for($intLoopA = $intArraySize; $intLoopA >= 0; $intLoopA--)
{
// tu wyświetlasz co chcesz traktując $intLoopA jako index tablicy.
}
?>[/php:1:11fc23bb74]
To powinno dac tabele w odwrotnej kolejności z zachowaniem indexów.


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post
Cudi
post 16.06.2003, 13:48:00
Post #19


Administrator planeta/IRC


Grupa: Przyjaciele php.pl
Postów: 385
Pomógł: 0
Dołączył: 19.04.2003
Skąd: Zabrze

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


Ja nigdy nie używam ID w plikach txt, dla mnie ID to numer lini w której leży dany wpis, a numery te są generowane zawsze na bierząco, więc po usunięciu problemu z tym raczej nie ma...

A co do pętli:
[php:1:595926be68]<?php
for($i = count($tablica); $i >= 0; $i--) {
// i tutaj wyświetlanie
}
?>[/php:1:595926be68]


--------------------
"Programmers are in a race with the Universe to create bigger and better idiot-proof programs, while the Universe is trying to create bigger and better idiots. So far the Universe is winning."
Cudi's devBlog
Go to the top of the page
+Quote Post
scanner
post 16.06.2003, 13:54:32
Post #20





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




Cudi: przecież ja pętle pokazałem i nawet skomentowałem dlaczego wygląda tak a nie inaczej. Poczytaj prosze mojego posta. Piszesz nieoptymalnie.


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 14.08.2025 - 09:35