Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z IF'em
Forum PHP.pl > Forum > PHP
K4mil94
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
jarmiar
  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. ?>
K4mil94
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
phpion
  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.
K4mil94
Czyli już mam rozwiązanie z pętlą smile.gif Dzięki

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

W manualu?
jarmiar
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. ?>
K4mil94
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
phpion
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ą.
K4mil94
Czyli jak zrobię
Kod
$tab = range(1, 1000);
To w tablicy będę miał liczby od 0 do 1000 jak dobrze rozumiem ?
Piniek
Tak
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.