Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z IF'em
K4mil94
post
Post #1





Grupa: Zarejestrowani
Postów: 302
Pomógł: 18
Dołączył: 10.03.2008
Skąd: Dębno

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


Witam! Wczoraj zacząłem tak na serio przygodę z PHP. Postanowiłem napisać prostą grę liczbową i mam problem z IF'em. Skrypt działa dobrze lecz na początku zanim wpiszę jakąkolwiek liczbę pokazuje mi wynik z else. Co zrobić żeby na początku mi tego nie pokazywało ?

Oto kod
Kod
Traf liczbę!
<form method=\"POST\">
Wpisz liczbę: <input type=\"text\" name=\"liczba\'><br />
<button type=\"submit\" value=\"OK\">OK!</button>  
<br />
</form>
<?php
$tab = array(0 => 1, 2, 3, 4, 5, 6, 7, 8, 9, 10);

if($_POST['liczba'] == $tab[rand(0, 10)])
{
echo 'Gratulacje! Odkryłeś naszą tajną liczbę!';
}
else
{
echo 'Niestety nie trafiłeś!';
}

A stronę można zobaczyć na www.simsnews.cba.pl/test/

PS. Chciałem tą grę zrobić z liczbami od 0 do tysiąca, czy jest możliwość w tablicy wstawienia pętli for
Kod
for( $x = 1; $x <= 1000; $x++ )

aby wyświetliła liczby od 0 do 1000 ? Czy sam muszę do tablicy wpisać je ?

PS2. Jeśli zły dział to proszę o przeniesienie do iodpowiedniego smile.gif

Ten post edytował K4mil94 2.08.2008, 08:15:04
Go to the top of the page
+Quote Post
jarmiar
post
Post #2





Grupa: Zarejestrowani
Postów: 616
Pomógł: 12
Dołączył: 16.07.2006
Skąd: : getCity ( );

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


  1. <?php
  2. if(empty($_POST['liczba']))
  3. {
  4. echo 'Traf liczbę!
  5. <form method=\"POST\">
  6. Wpisz liczbę: <input type=\"text\" name=\"liczba'><br />
  7. <button type=\"submit\" value=\"OK\">OK!</button>
  8. <br />
  9. </form>';
  10. }
  11. else
  12. {
  13. $tab = array(=> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
  14.  
  15. if($_POST['liczba'] == $tab[rand(0, 10)])
  16. {
  17. echo 'Gratulacje! Odkryłeś naszą tajną liczbę!';
  18. }
  19. else
  20. {
  21. echo 'Niestety nie trafiłeś!';
  22. }
  23. }
  24. ?>


a to z tablicą możesz zrobić tak:
  1. <?
  2. for( $x = 1; $x <= 1000; $x++ )
  3. {
  4. $tab[] = $x;
  5. }
  6.  
  7. //sprawdzasz co ci wyslwietla
  8.  
  9. print_r($tab);
  10. ?>


Ten post edytował jarmiar 2.08.2008, 08:34:55


--------------------
Jeśli my czegoś nie zrobimy, zrobią to za nas inni
Go to the top of the page
+Quote Post
K4mil94
post
Post #3





Grupa: Zarejestrowani
Postów: 302
Pomógł: 18
Dołączył: 10.03.2008
Skąd: Dębno

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


Kod
<?php
if(empty($_POST['liczba']))
{
echo 'Traf liczbę!
<form method=\"POST\">
Wpisz liczbę: <input type=\"text\" name=\"liczba\'><br />
<button type=\"submit\" value=\"OK\">OK!</button>  
<br />
</form>';
}
else
{
$tab = array(0 => 1, 2, 3, 4, 5, 6, 7, 8, 9, 10);

if($_POST['liczba'] == $tab[rand(0, 10)])
{
echo 'Gratulacje! Odkryłeś naszą tajną liczbę!';
}
else
{
echo 'Niestety nie trafiłeś!';
}
}
?>


Ten kod jest zły, w ogóle nie wyświetla czy ktoś trafił czy nie

Ten post edytował K4mil94 2.08.2008, 08:40:39
Go to the top of the page
+Quote Post
phpion
post
Post #4





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




  1. Traf liczbę!
  2. <form method="POST">
  3. Wpisz liczbę: <input type="text" name="liczba" /><br />
  4. <input type="submit" value="OK!" />
  5. <br />
  6. </form>
  7. <?php
  8. $tab = array(=> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
  9. // lub po prostu $tab = range(1, 10);
  10.  
  11. if(isset($_POST['liczba']))
  12. {
  13. echo $_POST['liczba'] == $tab[rand(0, 10)] ? 'Gratulacje! Odkryłeś naszą tajną liczbę!' : 'Niestety nie trafiłeś!';
  14. }
  15. ?>


Cytat(K4mil94 @ 2.08.2008, 09:00:18 ) *
PS. Chciałem tą grę zrobić z liczbami od 0 do tysiąca, czy jest możliwość w tablicy wstawienia pętli for
Kod
for( $x = 1; $x <= 1000; $x++ )

aby wyświetliła liczby od 0 do 1000 ? Czy sam muszę do tablicy wpisać je ?

Tak, możesz to zrobić w pętli. Jednak ja sugerowałbym zainteresowanie się funkcją range" title="Zobacz w manualu PHP" target="_manual, która zrobi to za ciebie.

Ten post edytował phpion 2.08.2008, 09:16:01
Go to the top of the page
+Quote Post
K4mil94
post
Post #5





Grupa: Zarejestrowani
Postów: 302
Pomógł: 18
Dołączył: 10.03.2008
Skąd: Dębno

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


Czyli już mam rozwiązanie z pętlą smile.gif Dzięki

PS. Gdzie znajdę funkcje instrukcji warunkowych typu: isset, empty i innych ?
Go to the top of the page
+Quote Post
phpion
post
Post #6





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Cytat(K4mil94 @ 2.08.2008, 10:21:47 ) *
PS. Gdzie znajdę funkcje instrukcji warunkowych typu: isset, empty i innych ?

W manualu?
Go to the top of the page
+Quote Post
jarmiar
post
Post #7





Grupa: Zarejestrowani
Postów: 616
Pomógł: 12
Dołączył: 16.07.2006
Skąd: : getCity ( );

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


Cytat(phpion @ 2.08.2008, 10:14:28 ) *
  1. <?php
  2. Traf liczbę!
  3.  
  4. Wpisz liczbę: 
  5.  
  6.  
  7.  
  8.  
  9.  
  10. $tab = array(=> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
  11. // lub po prostu $tab = range(1, 10);
  12.  
  13. if(isset($_POST['liczba']))
  14. {
  15. echo $_POST['liczba'] == $tab[rand(0, 10)] ? 'Gratulacje! Odkryłeś naszą tajną liczbę!' : 'Niestety nie trafiłeś!';
  16. }
  17. ?>





Tak, możesz to zrobić w pętli. Jednak ja sugerowałbym zainteresowanie się funkcją [manual\]range\[/manual\], która zrobi to za ciebie.


Ja bym losowanie liczb z takiego przedziału zapisał tak:
  1. <?php
  2. $losuj = rand(0, 100);
  3. //losuje liczby od 0 do 100
  4.  
  5. echo $losuj;
  6. //wyswietla wylosowaną liczbę
  7. ?>


Ten post edytował jarmiar 2.08.2008, 09:40:50


--------------------
Jeśli my czegoś nie zrobimy, zrobią to za nas inni
Go to the top of the page
+Quote Post
K4mil94
post
Post #8





Grupa: Zarejestrowani
Postów: 302
Pomógł: 18
Dołączył: 10.03.2008
Skąd: Dębno

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


phpion, a zamiast range mogło by to być w if bo ja dopiero zacząłem w php i instrukcja warunkowa jest dla mnie łatwiejsza smile.gif
Go to the top of the page
+Quote Post
phpion
post
Post #9





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




range() miało służyć tylko do wygenerowania n-elementowej tablicy (zamiast definiowania jej ręcznie lub w pętli). Nie ma to nic wspólnego z instrukcją warunkową.
Go to the top of the page
+Quote Post
K4mil94
post
Post #10





Grupa: Zarejestrowani
Postów: 302
Pomógł: 18
Dołączył: 10.03.2008
Skąd: Dębno

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


Czyli jak zrobię
Kod
$tab = range(1, 1000);
To w tablicy będę miał liczby od 0 do 1000 jak dobrze rozumiem ?
Go to the top of the page
+Quote Post
Piniek
post
Post #11





Grupa: Przyjaciele php.pl
Postów: 463
Pomógł: 49
Dołączył: 27.12.2007
Skąd: Warszawa

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


Tak


--------------------
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 Aktualny czas: 19.08.2025 - 13:05