Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> zepsuty warunek? pewnie to ja... :P
goped
post
Post #1





Grupa: Zarejestrowani
Postów: 156
Pomógł: 0
Dołączył: 28.11.2003
Skąd: gliwice

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


Hello, zaczne od kodu (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
  1. <?
  2. $name=explode(".", $id); // kasowanie linijki z menu
  3. $menu="../base/menu.txt";
  4. $plik=file($menu);
  5. $count=count($plik);
  6. $a="0";
  7. while($a<=$count)
  8. {
  9. $dane=explode("||", $plik[$a]);
  10.  
  11. if($name[0]==$dane[1]) <----- ten warunek
  12. {
  13. echo"warunek dziala"; // koniec kasowania linijki z menu
  14. }
  15. $a++;
  16. }
  17. ?>

$id to cos.php
plik menu.txt wyglada tak COS||cos

No i co tu duzo mowic, warunek nigdy nie przechodzi. Moze macie jakies pomysly?(IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Z gory thx (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Ten post edytował goped 2.06.2006, 23:34:30
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
acztery
post
Post #2





Grupa: Zarejestrowani
Postów: 945
Pomógł: 7
Dołączył: 15.03.2005
Skąd: katowice

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


rozumiem ze chcesz sprawdzic czy cos jest identyczne wtedy === a nie ==
Go to the top of the page
+Quote Post
goped
post
Post #3





Grupa: Zarejestrowani
Postów: 156
Pomógł: 0
Dołączył: 28.11.2003
Skąd: gliwice

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


=== sprawdza czy typ jest ten sam, == rowniez moze byc. Jezeli nie dziala z == to z === tez nie bedzie, zreszta, sprawdzalem (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
NuLL
post
Post #4





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

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


  1. <?
  2. $name=explode(".", $id); // kasowanie linijki z menu
  3. $menu="../base/menu.txt";
  4. $_file=file($menu);
  5. foreach($_file as $line)
  6. {
  7. $data=explode("||",$line);
  8.  
  9. if($data[0]!=$name) $ret[]=$line;
  10. }
  11. ?>

Oczywiscie zgaduje ale w tablicy $ret powinien byc plik bez danej linii (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
goped
post
Post #5





Grupa: Zarejestrowani
Postów: 156
Pomógł: 0
Dołączył: 28.11.2003
Skąd: gliwice

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


A moze jednak ktos wymysli dlaczego nie dziala moj warunek?(IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
NuLL
post
Post #6





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

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


Nie powinno byc $dane[0] (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) Pozatym powinno być $a=0; zamiast $a="0";
Go to the top of the page
+Quote Post
goped
post
Post #7





Grupa: Zarejestrowani
Postów: 156
Pomógł: 0
Dołączył: 28.11.2003
Skąd: gliwice

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


dane[1], bo chce tekst po prawej stronie COS||cos, a z tym $a to tez nie dziala (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) fajne, co nie?(IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
raf_gc
post
Post #8





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 12.05.2006

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


  1. <?php
  2. $id = "cos.php";
  3. $name=explode(".", $id); // kasowanie linijki z menu
  4. $menu="menu.txt";
  5. $plik=file($menu);
  6. $count=count($plik);
  7. $a="0";
  8. while($a<=$count)
  9. {
  10. $dane=explode("||", $plik[$a]);
  11.  
  12. if($name[0]==$dane[1]) //<----- ten warunek
  13. {
  14. echo"warunek dziala"; // koniec kasowania linijki z menu
  15. }
  16. $a++;
  17. }
  18. ?>

sprawadziłem twój skrypt i działa dobrze, w jaki sposób deklarujesz zmienną $id, jeśli $id jest puste to warunek nie bedzie spełniony nigdy, czy scieżka do pliku menu.txt jest prawidłowa?

Zrób tak jak ja w tym skrypcie, zdefiniuj na początku zmienną $id i sprawdź, czy dalej nie działa, przenieś plik menu.txt do katalogu ze skryptem (dla testów).

Jesli pobierasz zmienną $id z parametrów wywołania skryptu (np: index.php?id=cos.php) to musisz użyć:
  1. <?php
  2. $id = $_GET['id'];
  3. ?>


Ten post edytował raf_gc 3.06.2006, 05:51:46
Go to the top of the page
+Quote Post
goped
post
Post #9





Grupa: Zarejestrowani
Postów: 156
Pomógł: 0
Dołączył: 28.11.2003
Skąd: gliwice

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


To teraz juz wiem co sie stalo i wam powiem :] normalnie padniecie <lol2> (IMG:http://forum.php.pl/style_emoticons/default/angrysmiley.gif) (IMG:http://forum.php.pl/style_emoticons/default/angrysmiley.gif) (IMG:http://forum.php.pl/style_emoticons/default/angrysmiley.gif) ale najpierw:
  1. <?php
  2. $id = "h.php";
  3. $name=explode(".", $id); // kasowanie linijki z menu
  4. $menu="menu.txt";
  5. $plik=file($menu);
  6. $count=count($plik);
  7. $a="0";
  8. while($a<=$count)
  9. {
  10. $dane=explode("||", $plik[$a]);
  11. echo $dane[1].$name[0];
  12. if($name[0]==$dane[1]) //<----- ten warunek
  13. {
  14. echo"warunek dziala"; // koniec kasowania linijki z menu
  15. }
  16. $a++;
  17. }
  18. ?>

Menu.txt:
  1. A||a
  2. B||b
  3. C||c
  4. H||h
  5. D||d

Wynik dzialania:
  1. a
  2. hb
  3. hc
  4. hh
  5. hdhh

Kto wymysli dlaczego na koncu mam te 2 hh to ma 6 za odpowiedz. Jedno h ma prawo byc, ale drugie nie wiem skad sie bierze.
A teraz powiem wam czemu to nie dzialalo, bo komus moze tez kiedys cos takiego walnac. Plik Menu.txt wyglada tak:
A||a
B||b
C||c
H||h
D||d
php exploduje to przez znaczniki || i teraz tak, po lewej mamy A, ale poprawej nie jest "a", tam jest kurcze "a\n"(akurat u mnie jest \r\n), tyle ze \n jest niewidoczne. By to szlag trafil (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Ten post edytował goped 3.06.2006, 18:15:00
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.12.2025 - 12:32