Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [wolontariat]Instrukcja if
Forum PHP.pl > Inne > Giełda ofert > Poszukuję
mlody93
Witam.
Dlaczego ten skrypt nie działa?

zmienna $lum jest podawana przez formularz

if ( 3400 < $lum ) {
$lampa = "lampa 50 W";
} elseif ( 4500 > $lum ){
$lampa = "lampa 50W";
} elseif ( 4501 < $lum ){
$lampa = "lampa 70 W";
} elseif ( 7000 > $lum ){
$lampa = "lampa 70 W";
} else if ( 7001 < $lum ){
$lampa = "lampa 100 W";
} elseif ( 12000 > $lum ){
$lampa = "lampa 100 W";
}


Aby oświetlić pokój potrzebujesz: $lampa

Jeżeli ktoś mi pomoże będę wdzięczny
michal_robak
a walnij echo $lum przed tą formułą i powiedz co ci wyskoczy. i daj w kazdym ifie coś takie echo "jestem w x warunku" i sprawdzisz czy ci wchodzi do ktorejś pętli. Debugować debugować i jeszcze raz debugować w takich wypadkach exclamation.gif!!
viking
Zapewne $_POST['lum']. I poczytaj o register_globals.
MateuszS
A jaki błąd? Przypisałeś zawartość tablicy $_POST/$_GET do $lum?

$lum = $_POST['lum'];
mlody93
Cytat(michal_robak @ 2.07.2009, 13:06:24 ) *
a walnij echo $lum przed tą formułą i powiedz co ci wyskoczy.


Wyskoczy mi wartość podana w formularzu
Spawnm
korzystaj z bbcode.
daj na początku
  1. <?php
  2. $lum=(int)$lum;
  3. ?>
MateuszS
dodaj na koncu zamiast ostatniego elseif

  1. <?php
  2. else { $lampa = "lampa 100 W"; }
  3. ?>


PS ten skrypt nie pokazuje jaka lampe potrzeba, musisz dodac pod kazdym warunkiem
echo $lampa;
Wicepsik
  1. <?php
  2. $lum=(int)$_POST['lum'];
  3.  
  4. if ($lum < 3400){
  5.   $lampa = 'Wartość lum jest mniejsza niz 3400';
  6. }elseif(3400 <= $lum and $lum <= 4500){  // Gdy zmienna lum jest między 3400 a 4500
  7.    $lampa = "lampa 50W";
  8. }elseif (4501 <= $lum and $lum <= 7000){ // Gdy zmienna lum jest między 4501 a 7000
  9.   $lampa = "lampa 70 W";
  10. }else if ( 7001 <= $lum and $lum <= 12000){ // Gdy zmienna lum jest między 7001 a 12000
  11.   $lampa = "lampa 100 W";
  12. }else{
  13.   $lampa = 'Wartość lum przekroczyła 12000';
  14. }
  15. ?>
mlody93
Dzięki Wicepsik!
Lecz zrobiłeś 2 błędy bodajże w swoim kodzie.
Wielkie dzięki.

A co zrobić żeby.
W formularzu gdzie jest zmienna $lum podaje ktoś literę a nie liczbę.
Żeby zwróciło błąd?
Spawnm
albo odbieraj jak pisałem czyli z (int)
albo na końcu daj
  1. <?php
  2. }else{
  3.  echo 'error';
  4. }
  5. ?>
Pawel_W
is_numeric()

zwraca true albo false
mlody93
A mógłbym poprosić o jakiegoś gotowca?
Pawel_W
if(is_numeric($lum))
{
// kod ten co masz wyżej
}
else
{
echo 'błąd';
}
Spawnm
Przenoszę.

Przypominam o stosowaniu bbcode...
mlody93
Paweł, coś nie tak z tym... Co ma być na miejscu tekstu za slashami?
Wicepsik
  1. <?php
  2. $lum=$_POST['lum'];
  3. if(is_numeric($lum))
  4. {
  5.  
  6. if ($lum < 3400){
  7.  $lampa = 'Wartość lum jest mniejsza niz 3400';
  8. }elseif(3400 <= $lum and $lum <= 4500){  // Gdy zmienna lum jest między 3400 a 4500
  9.   $lampa = "lampa 50W";
  10. }elseif (4501 <= $lum and $lum <= 7000){ // Gdy zmienna lum jest między 4501 a 7000
  11.  $lampa = "lampa 70 W";
  12. }else if ( 7001 <= $lum and $lum <= 12000){ // Gdy zmienna lum jest między 7001 a 12000
  13.  $lampa = "lampa 100 W";
  14. }else{
  15.  $lampa = 'Wartość lum przekroczyła 12000';
  16. }
  17.  
  18. }
  19. else
  20. {
  21. echo 'błąd';
  22. }
  23. ?>
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.