Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Problem z echo
kubax33
post 1.02.2012, 15:27:19
Post #1





Grupa: Zarejestrowani
Postów: 157
Pomógł: 1
Dołączył: 27.01.2010

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


mam taki kod:

  1. <?php
  2. $szukane = $_GET['info'];
  3. $plik = "db.txt";
  4. $dane = file($plik);
  5.  
  6. if ((isset($_POST['nazw'])) AND (trim($_POST['nazw']) != ""))
  7. {
  8.  
  9. for($i=0;$i<count($dane);$i++)
  10. list($imie[$i], $nazwisko[$i], $miejscowosc[$i]) = explode(" || ", $dane[$i]);
  11.  
  12.  
  13. for($i=0;$i<count($nazwisko);$i++)
  14. if (strpos($nazwisko[$i],$_POST['nazw']) !== false && $_GET['info'] == $id[$i])
  15.  
  16.  
  17. echo $imie[$i]." ".$nazwisko[$i].", ".$miejscowosc[$i]."<br />";
  18.  
  19. /* tutaj else echo!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  20. }
  21.  
  22. }
  23. ?>


i kombinuje na wszelkie sposoby, ale nie moge dopisać else echo w miejscu, którym wskazałem czyli chodzi mi o to jeśli nie będzie spełniony "if" pokaże się informacja! Proszę o pomoc

Ten post edytował kubax33 1.02.2012, 15:28:10
Go to the top of the page
+Quote Post
seba123
post 1.02.2012, 15:30:05
Post #2





Grupa: Zarejestrowani
Postów: 57
Pomógł: 1
Dołączył: 20.03.2008

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


Polecam stosować nawiasy { } to będzie wszystko jasne.
Go to the top of the page
+Quote Post
slawek3422
post 1.02.2012, 15:31:15
Post #3





Grupa: Zarejestrowani
Postów: 142
Pomógł: 7
Dołączył: 3.08.2007
Skąd: śląsk

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


  1. <?php
  2. $szukane = $_GET['info'];
  3. $plik = "db.txt";
  4. $dane = file($plik);
  5.  
  6. if ((isset($_POST['nazw'])) AND (trim($_POST['nazw']) != "")){
  7.  
  8. for($i=0;$i<count($dane);$i++){
  9. list($imie[$i], $nazwisko[$i], $miejscowosc[$i]) = explode(" || ", $dane[$i]);
  10. }
  11.  
  12. for($i=0;$i<count($nazwisko);$i++){
  13. if (strpos($nazwisko[$i],$_POST['nazw']) !== false && $_GET['info'] == $id[$i]){
  14. echo $imie[$i]." ".$nazwisko[$i].", ".$miejscowosc[$i]."<br />";
  15. } else {
  16. echo "HELP !!";
  17. }
  18.  
  19.  
  20. }
  21.  
  22. }
  23. ?>
Go to the top of the page
+Quote Post
Sephirus
post 1.02.2012, 15:31:47
Post #4





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

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


Naucz się używać klamr {}

  1. <?php
  2. $szukane = $_GET['info'];
  3. $plik = "db.txt";
  4. $dane = file($plik);
  5.  
  6. if ((isset($_POST['nazw'])) AND (trim($_POST['nazw']) != ""))
  7. {
  8.  
  9. for($i=0;$i<count($dane);$i++)
  10. {
  11. list($imie[$i], $nazwisko[$i], $miejscowosc[$i]) = explode(" || ", $dane[$i]);
  12. }
  13.  
  14. for($i=0;$i<count($nazwisko);$i++)
  15. {
  16. if (strpos($nazwisko[$i],$_POST['nazw']) !== false && $_GET['info'] == $id[$i])
  17. echo $imie[$i]." ".$nazwisko[$i].", ".$miejscowosc[$i]."<br />";
  18. else
  19. echo '!!!';
  20. }
  21. }
  22. ?>


--------------------
If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;)
Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka...
Go to the top of the page
+Quote Post
by_ikar
post 1.02.2012, 15:33:06
Post #5





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

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


Użyj klamerek. Przy jednym bloku możesz sobie pozwolić na nie danie klamerek. Przy zagnieżdżeniu wielu bloków, lepiej użyć klamerki, żeby potem nie głowić się dlaczego sypie mi errorem.
Go to the top of the page
+Quote Post
kubax33
post 1.02.2012, 16:01:33
Post #6





Grupa: Zarejestrowani
Postów: 157
Pomógł: 1
Dołączył: 27.01.2010

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


mam spore problemy z tymi klamrami przyznaje!

już trace cierpliwość co tutaj jest źle?questionmark.gif

  1.  
  2. $szukane = $_GET['zamowienie'];
  3. if ($szukane)
  4. {
  5.  
  6. $plik = "db.txt";
  7. $dane = file($plik);
  8. {
  9. if ((isset($_GET['zamowienie'])) AND (trim($_GET['zamowienie']) != "")) {
  10. {
  11. for($i=0;$i<count($dane);$i++)
  12. {
  13. list($nr[$i], $nick[$i], $ilosc[$i]) = explode("|", $dane[$i]);
  14. }
  15. for($i=0;$i<count($nick);$i++)
  16. {
  17. if (strpos($nick[$i],$_GET['zamowienie']) !== false && $_GET['zamowienie'] == $nick[$i])
  18. {
  19. echo $nr[$i]." ".$nick[$i].", ".$ilosc[$i]."<br />";
  20.  
  21. else
  22. echo '!!!';
  23.  
  24. }
  25.  
  26. }
  27.  


i czy kto jest wstanie mi logicznie wytlumaczyć jak stosuje się te klamry albo jakiś dobry link podesłać bo szczerze mówiąc często robie je metoda prób i błędów edytując jakiegos gotowca :/
Go to the top of the page
+Quote Post
Sephirus
post 1.02.2012, 16:09:26
Post #7





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

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


Zrób inaczej - skoro masz z tym problem to używaj ich wszędzie i zawsze obojętnie od liczby linijek w nich smile.gif

  1. // dla warunków :
  2.  
  3. if(...) {
  4. // kod...
  5. // kod...
  6. }
  7.  
  8. // pętli :
  9.  
  10. foreach(...) {
  11. // kod...
  12. }
  13.  


i tak dalej... i pamiętaj o dobrym formatowaniu kodu i wcięciach! Czytelny kod to taki w którym łatwiej znaleźć błąd, zarówno logiczny jak i składniowy wink.gif

Twój kod po "próbie" sformatowania:
  1. $szukane = $_GET['zamowienie'];
  2. if ($szukane)
  3. {
  4. $plik = "db.txt";
  5. $dane = file($plik);
  6. { // WTF? po co tutaj ta klamerka
  7. if((isset($_GET['zamowienie'])) AND (trim($_GET['zamowienie']) != ""))
  8. {
  9. { // i po co tutaj??
  10. for($i=0;$i<count($dane);$i++)
  11. {
  12. list($nr[$i], $nick[$i], $ilosc[$i]) = explode("|", $dane[$i]);
  13. }
  14. for($i=0;$i<coun($nick);$i++)
  15. {
  16. if (strpos($nick[$i],$_GET['zamowienie']) !== false && $_GET['zamowienie'] == $nick[$i])
  17. {
  18. echo $nr[$i]." ".$nick[$i].", ".$ilosc[$i]."<br />";
  19. else // do czego to else niby??
  20. echo '!!!';
  21. }
  22. }
  23. // gdzie reszta klamerek :)


Ten post edytował Sephirus 1.02.2012, 16:13:11


--------------------
If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;)
Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka...
Go to the top of the page
+Quote Post
kubax33
post 1.02.2012, 16:43:57
Post #8





Grupa: Zarejestrowani
Postów: 157
Pomógł: 1
Dołączył: 27.01.2010

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


Jakoś trace siły żeby się męczyć 3 h z klamrami ehhh ciężko mi to opanować. Zrobiłem tak jak mówiłeś tylko...

  1. $szukane = $_GET['zamowienie'];
  2.  
  3. if ($szukane)
  4. {
  5.  
  6. $plik = "db.txt";
  7. $dane = file($plik);
  8.  
  9. if ((isset($_GET['zamowienie'])) AND (trim($_GET['zamowienie']) != ""))
  10. {
  11. for($i=0;$i<count($dane);$i++)
  12. {
  13. list($nr[$i], $nick[$i], $ilosc[$i]);
  14. }
  15. for($i=0;$i<count($nick);$i++)
  16. {
  17. if (strpos($nick[$i],$_GET['zamowienie']) !== false && $_GET['zamowienie'] == $nick[$i])
  18. {
  19. echo $nr[$i]." ".$nick[$i].", ".$ilosc[$i]."<br />";
  20. else
  21. echo '!!!'; // musze mieć else zeby zwracało błąd jeśli nie są spełnione warunki if-a ( if (strpos($nick[$i],$_GET['zamowienie'] itd. )
  22. }
  23.  
  24. }
  25. } // te klamry miałem zamknąć wcześniej otwierając górne?
  26. }
  27.  
  28.  


Go to the top of the page
+Quote Post
untorched
post 1.02.2012, 16:48:11
Post #9





Grupa: Zarejestrowani
Postów: 318
Pomógł: 76
Dołączył: 27.12.2011
Skąd: Dąbrowa Górnicza

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


  1. $szukane = $_GET['zamowienie'];
  2.  
  3. if ($szukane)
  4. {
  5. $plik = "db.txt";
  6. $dane = file($plik);
  7.  
  8. if ((isset($_GET['zamowienie'])) AND (trim($_GET['zamowienie']) != ""))
  9. {
  10. for($i=0;$i<count($dane);$i++)
  11. {
  12. list($nr[$i], $nick[$i], $ilosc[$i]);
  13. }
  14.  
  15. for($i=0;$i<count($nick);$i++)
  16. {
  17. if (strpos($nick[$i],$_GET['zamowienie']) !== false && $_GET['zamowienie'] == $nick[$i])
  18. {
  19. echo $nr[$i]." ".$nick[$i].", ".$ilosc[$i]."<br />";
  20. }
  21. else
  22. {
  23. echo '!!!'; // musze mieć else zeby zwracało błąd jeśli nie są spełnione warunki if-a ( if (strpos($nick[$i],$_GET['zamowienie'] itd. )
  24. }
  25. }
  26. }
  27. }
Go to the top of the page
+Quote Post
kubax33
post 1.02.2012, 16:59:17
Post #10





Grupa: Zarejestrowani
Postów: 157
Pomógł: 1
Dołączył: 27.01.2010

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


zadziałało dziękuję! Jest tylko jeden problem że w pomencie kiedy zostaje wywoływane else echo zamiast "!!!" pokazuje mi ich :
exclamation.gif!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

czyli kilkunastokrotnie wpisuje to co jest w else echo. Czego to moze byc wina?

do tego teraz jednocześnie pokazuje na stronie to co jest w samym echo oraz w else echo :/ cos jest nie tak...

  1.  
  2. <?php
  3. $szukane = $_GET['zamowienie'];
  4.  
  5. if ($szukane)
  6. {
  7.  
  8. $plik = "db.txt";
  9. $dane = file($plik);
  10.  
  11. if ((isset($_GET['zamowienie'])) AND (trim($_GET['zamowienie']) != ""))
  12. {
  13. for($i=0;$i<count($dane);$i++)
  14. {
  15. list($nr[$i], $nick[$i], $ilosc[$i]) = explode("|", $dane[$i]);
  16. }
  17. for($i=0;$i<count($id);$i++)
  18. {
  19. if (strpos($nick[$i],$_GET['zamowienie']) !== false && $_GET['zamowienie'] == $nick[$i])
  20. {
  21. echo $nr[$i]." ".$nick[$i].", ".$ilosc[$i]."<br />";
  22. }
  23. else
  24. {
  25. echo '!!!';
  26.  
  27. }
  28.  
  29. }
  30. }
  31. }
  32.  
  33. ?>
Go to the top of the page
+Quote Post
untorched
post 1.02.2012, 16:59:46
Post #11





Grupa: Zarejestrowani
Postów: 318
Pomógł: 76
Dołączył: 27.12.2011
Skąd: Dąbrowa Górnicza

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


To jest wina tego, że instrukcja for(15 linijka) dalej się wykonuje. Jeśli chcesz ją przerwać gdy wystąpi echo '!!!'; to pod tym echo daj break;, lub napisz to w ten sposób:
  1. $szukane = $_GET['zamowienie'];
  2. $error = 0;
  3.  
  4. if ($szukane)
  5. {
  6. $plik = "db.txt";
  7. $dane = file($plik);
  8.  
  9. if ((isset($_GET['zamowienie'])) AND (trim($_GET['zamowienie']) != ""))
  10. {
  11. for($i=0;$i<count($dane);$i++)
  12. {
  13. list($nr[$i], $nick[$i], $ilosc[$i]);
  14. }
  15.  
  16. for($i=0;$i<count($nick);$i++)
  17. {
  18. if (strpos($nick[$i],$_GET['zamowienie']) !== false && $_GET['zamowienie'] == $nick[$i])
  19. {
  20. $zwrot .= $nr[$i]." ".$nick[$i].", ".$ilosc[$i]."<br />";
  21. }
  22. else
  23. {
  24. $error = 1;
  25. }
  26. }
  27.  
  28. if($error == 1)
  29. {
  30. echo 'Wystąpił błąd!';
  31. }
  32. else
  33. {
  34. echo $zwrot;
  35. }
  36. }
  37. }


PS. Obstawiam że ta linijka:
  1. for($i=0;$i<count($nick);$i++)
Ma wyglądać tak:
  1. for($i=0;$i<count($nick-1);$i++)


Ten post edytował untorched 1.02.2012, 17:01:49
Go to the top of the page
+Quote Post
kubax33
post 1.02.2012, 17:33:27
Post #12





Grupa: Zarejestrowani
Postów: 157
Pomógł: 1
Dołączył: 27.01.2010

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



a jednak nadal szwankuje coś sad.gif


  1. <?php
  2. $szukane = $_GET['zamowienie'];
  3.  
  4. if ($szukane)
  5. {
  6.  
  7. $plik = "db.txt";
  8. $dane = file($plik);
  9.  
  10. if ((isset($_GET['zamowienie'])) AND (trim($_GET['zamowienie']) != ""))
  11. {
  12. for($i=0;$i<count($dane);$i++)
  13. {
  14. list($nr[$i], $nick[$i], $ilosc[$i]) = explode("|", $dane[$i]);
  15. }
  16. for($i=0;$i<count($id);$i++)
  17. {
  18. if (strpos($nick[$i],$_GET['zamowienie']) !== false && $_GET['zamowienie'] == $nick[$i])
  19. {
  20. echo $nr[$i]." ".$nick[$i].", ".$ilosc[$i]."<br />";
  21. break;
  22. }
  23. else
  24. {
  25. echo '!!!';
  26. brak;
  27. }
  28.  
  29. }
  30. }
  31. }
  32.  
  33. ?>
  34.  
  35.  


mianowicie jeśli wyśle przez get i wyswietli dane to zawsze jest na poczatku else echo czyli : "!!!!!!!!!!" i do tego dopiero echo wyswietlone (prawidlowo)
Jeśli wywołam else echo to jest ono znowu kilkunastokrotnie powtorzone czyli "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"

A ten sposób drugi co wysłałeś "untorched" wyrzuca bład cały czas przy każdej akcji.

Jeśli ma ktos jakies pomysły będę wdzięczny...

Ten post edytował kubax33 1.02.2012, 17:37:56
Go to the top of the page
+Quote Post
untorched
post 1.02.2012, 20:35:00
Post #13





Grupa: Zarejestrowani
Postów: 318
Pomógł: 76
Dołączył: 27.12.2011
Skąd: Dąbrowa Górnicza

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


Nie łaska wrzucić jakie błędy? Na oko nie zawsze wszystko da się zauważyć.. Poniżej masz działający, testowany skrypt
  1. $szukane = (isset($_GET['zamowienie']) ? $_GET['zamowienie'] : NULL);
  2.  
  3. if ($szukane !== NULL)
  4. {
  5. $plik = 'db.txt';
  6. $dane = file($plik);
  7.  
  8. if (trim($szukane) != '')
  9. {
  10. foreach($dane as $linia => $text)
  11. {
  12. list($nr[$linia], $nick[$linia], $ilosc[$linia]) = explode('|', $text);
  13. }
  14.  
  15. $zwrot = '';
  16.  
  17. for($i=0; $i<count($nr); $i++)
  18. {
  19. if (strpos($nick[$i],$szukane) !== false && $szukane == $nick[$i])
  20. {
  21. $zwrot .= $nr[$i].', '.$nick[$i].', '.$ilosc[$i].'<br />';
  22. }
  23.  
  24. }
  25.  
  26. if($zwrot != '')
  27. {
  28. echo $zwrot;
  29. }
  30. else
  31. {
  32. echo '!!!';
  33. }
  34. }
  35. }


Ten post edytował untorched 1.02.2012, 20:38:51
Go to the top of the page
+Quote Post
kubax33
post 2.02.2012, 00:03:27
Post #14





Grupa: Zarejestrowani
Postów: 157
Pomógł: 1
Dołączył: 27.01.2010

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


Dziękuję uprzejmie działa bez zarzutów o to chodziło.

Pozdrawiam
Go to the top of the page
+Quote Post
--Bono--
post 2.02.2012, 17:07:02
Post #15





Goście







Uczę się PHP za pomocą pewnej książki HELIONU, mam tam kod
  1. <?php
  2. echo "<p>Zamówienie przyjęte o:</p>";
  3. echo date('H:i. jS F');
  4. echo '</p>';
  5. echo '<blink><h2>Zamówienie Państwa wygląda następująco:</h2></blink>';
  6. echo $iloscopon.'<center> opon</center><br />';
  7. echo $iloscoleju.'<center> butelek oleju</center><br />';
  8. echo $iloscswiec.'<center> Swiec zapłonowych</center><br />';
  9. $ilosc = 0;
  10. $ilosc = $iloscopon + $iloscoleju + $iloscswiec;
  11. echo 'Zamówionych częsci: '.$ilosc.'<br />';
  12.  
  13. $wartosc = 0.00;
  14.  
  15. define('CENAOPON'. 400);
  16. define('CENAOLEJU'. 100);
  17. define('CENASWIEC'. 40);
  18.  
  19. $wartosc = $iloscopon * CENAOPON /* Tu Rozpoczyna się problem */
  20. + $iloscoleju * CENAOLEJU /* np.zamiast "CENAOLEJU" podam 100 to obliczy bez problemu*/
  21. + $iloscswiec * CENASWIEC;
  22.  
  23. echo 'Cena netto: '[font="Arial Black"].[b]$wartosc[/b].[/font]' PLN<br />';/*tu daje format type*/
  24. $stawkavat = 0.23;
  25. $wartosc = $wartosc * ( 1 + $stawkavat );
  26. echo 'Cena brutto: '[font="Arial Black"].[b]$wartosc[/b].[/font]' PLN<br />'; /*Tu daje format_type*/
  27. ?>

A mianowicie gdy zdefiniowałem słowa CENA-||- mimo to nie potrafi wyczytać że cena np. CENAOPON to to samo co 400
po prostu daje wynik 0.
Problem rozwiązuje danie kodu
$wartosc = $iloscopon * 400 I TAK DALEJ.
Ale mnie to nie zadowala. Czemu mi nie działa "define"?
Mam jeszcze problem z
'.format_type($wartosc. 2).'
Co powinno mi dać (ja tak to rozumie) 2 wyrazy po przecinku tak jak to np.(3.21)=e
a daje mi tak (0.321)=e
Czemu?
Próbowałem to rozgryźć na wszelkie sposoby nie widzę błędu? Może w php.ini?
Go to the top of the page
+Quote Post
by_ikar
post 3.02.2012, 09:01:21
Post #16





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

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


define ci nie działa, bo użyłeś zamiast przecinku żeby podać drugi parametr, to użyłeś kropki, powinieneś dostać warning, ale pewnie masz wyłączone raportowanie błędów. Tak samo jest w format_type tam również podałeś kropkę zamiast przecinku.
Go to the top of the page
+Quote Post
kubax33
post 5.02.2012, 12:11:45
Post #17





Grupa: Zarejestrowani
Postów: 157
Pomógł: 1
Dołączył: 27.01.2010

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


i napotkałem kolejny błąd odnośnie mojego kodu. W firefoxie jest ok, ale w IE wyrzuca błąd :
Notice: Undefined offset:

tyczy się to linijki:
  1. list($nr[$linia], $nick[$linia], $ilosc[$linia]) = explode('|', $text);


Co tutaj jest źle? Niby wyczytałem, że pętla powtarza się w nieskończoność? jak temu zaradzić.

Zastanawiam się czy związku z tym nie ma też:

  1. $szukane = (isset($_GET['zamowienie']) ? $_GET['zamowienie'] : NULL);


Ten post edytował kubax33 5.02.2012, 12:13:41
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 - 09:54