• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Konstrukcja if else - brak wyświetlenia strony

Object Storage Arubacloud
0 głosów
222 wizyt
pytanie zadane 20 października 2016 w PHP przez Zbigniew Andrysiak Bywalec (2,470 p.)

Hejka mam taki oto kod. Niestety gdy wrzucam go na serwer strona w ogóle nic nie wyświetla. Wiem, że za to odpowiedzialny jest IF bo gdy tego kody nie mam to strona się wyświetla. Poprawcie mnie proszę jeśli jest coś źle.

 

cena = $db->prepare("SELECT * FROM cennikmobi10 WHERE Model = :brand2 Group by type");
$cena->bindValue(':brand2',  $row22, PDO::PARAM_STR);
$cena->execute();
$klientwybor = $db->prepare("SELECT * FROM mobidoktor where ticket = :ticket");
$klientwybor ->bindValue(':ticket', $_GET['ticket'], PDO::PARAM_INT);
$klientwybor ->execute();
//var_dump($klientwybor);
$klientwybor2 = $klientwybor->fetch();
$klientrodzaj = $klientwybor2['rodzajklient'];
//var_dump($klientrodzaj);
//echo $klientrodzaj;


if($klientrodzaj=="serwis"){
$cenab2 = $wynik['price_b2c'];
$serwisb2 = $wynik['service_b2b'];
}

elseif($klientrodzaj=="indywidualny"){
$cenab2 = $wynik['price_b2b'];
$serwisb2 = $wynik['service_b2c'];

}
endif;
echo $cenab2;

while ($wynik = $cena ->fetch()) {
$cennikserwis = $wynik['category'];
$cennikserwis2 = $wynik['type'];

echo $cennikserwis.'   '.$cennikserwis2. ' ';
?>

<input type="checkbox" name="id[]" value="1">
<input type="hidden" name="produkt[]" value="<?php echo $cennikserwis; ?>">
<input type="hidden" name="type[]" value="<?php echo $cennikserwis2; ?>">
<input type="number" name="ilosc[]" size="5" value="<?php echo $cennikserwis1; ?>" >

<input type="hidden" name="kosztbruttob2b[]" size="2" value="<?php echo $cenab2; ?>" >
<input type="hidden" name="kosztnettob2b[]" size="2" value="<?php echo $serwisb2; ?>" >


<br>

 

1 odpowiedź

0 głosów
odpowiedź 20 października 2016 przez HaKIM Szeryf (87,590 p.)

Brakuje tutaj else{}.

IMO to ta instrukcja warunkowa powinna wyglądać tak:

if ($klientrodzaj == 'serwis') {
    $cenab2 = $wynik['price_b2c'];
    $serwisb2 = $wynik['service_b2b'];
} elseif ($klientrodzaj == 'indywidualny') {
    $cenab2 = $wynik['price_b2b'];
    $serwisb2 = $wynik['service_b2c'];
} else {
    return false;
    // Lub jakiś exception.
}

Lub:

if ($klientrodzaj == 'serwis'):
    $cenab2 = $wynik['price_b2c'];
    $serwisb2 = $wynik['service_b2b'];
elseif ($klientrodzaj == 'indywidualny'):
    $cenab2 = $wynik['price_b2b'];
    $serwisb2 = $wynik['service_b2c'];
else:
    return false;
    // Lub jakiś exception.
endif;

Choć, ja bym sprówobwał ze switch.

Btw. Nawet nie podałeś jaki błąd Ci wyskakuje. : /

To, co Ty chcesz zrobić, z endif; nadaje się prędzej do szablonów:

http://php.net/manual/en/control-structures.alternative-syntax.php

komentarz 20 października 2016 przez Zbigniew Andrysiak Bywalec (2,470 p.)
Nic mi właśnie nie wyskakuje - strona niestety w ogóle się nie wyświetla
komentarz 20 października 2016 przez HaKIM Szeryf (87,590 p.)
Może while przeciąża, czy cuś.

Spekulować nie ma co.

var_dump'nij co trzeba, ot tak nie może nie działać. :D
komentarz 20 października 2016 przez Zbigniew Andrysiak Bywalec (2,470 p.)
$cena = $db->prepare("SELECT * FROM cennikmobi10 WHERE Model = :brand2 Group by type");
$cena->bindValue(':brand2',  $row22, PDO::PARAM_STR);
$cena->execute();
$wynik2 = $cena ->fetch()
$klientwybor = $db->prepare("SELECT * FROM mobidoktor where ticket = :ticket");
$klientwybor ->bindValue(':ticket', $_GET['ticket'], PDO::PARAM_INT);
$klientwybor ->execute();
$klientwybor2 = $klientwybor->fetch();
$klientrodzaj = $klientwybor2['rodzajklient'];
var_dump($klientrodzaj);
//echo $klientrodzaj;

switch ($klientrodzaj) // sprawdzamy zmienną $a
{
case 'indywidualny':
 $cenab2 = $wynik2['price_b2b'];
$serwisb2 = $wynik2['service_b2b'];
  break;
  
case 'serwis':
  $cenab2 = $wynik2['price_b2c'];
$serwisb2 = $wynik2['service_b2c'];
  break;
  
default:
  echo "Żadna z powyższych";
  break;
}
var_dump($cenab2);



while ($wynik = $cena ->fetch()) {
$cennikserwis = $wynik['category'];
$cennikserwis2 = $wynik['type'];

echo $cennikserwis.'   '.$cennikserwis2. ' ';
?>

<input type="checkbox" name="id[]" value="1">
<input type="hidden" name="produkt[]" value="<?php echo $cennikserwis; ?>">
<input type="hidden" name="type[]" value="<?php echo $cennikserwis2; ?>">
<input type="number" name="ilosc[]" size="5" value="<?php echo $cennikserwis1; ?>" >
<input type="hidden" name="kosztbruttob2b[]" size="2" value="<?php echo $cenab2; ?>" >
<input type="hidden" name="kosztnettob2b[]" size="2" value="<?php echo $serwisb2; ?>" >


<br>
<?php
}
?> 

 

Zmieniłem na to, ale strona się nie wyświetla.

VAR DUMP też nic nie pokazuje.

komentarz 20 października 2016 przez Zbigniew Andrysiak Bywalec (2,470 p.)

Wrzuciłem na localhost (swoją drogą super narzędzie bo pokazuje błędy od razu i testuję)

Wyrzuciło błąd, więc szukam :)

Parse error: syntax error, unexpected '$klientwybor' (T_VARIABLE) in G:\xammp\htdocs\mobidoktor\updateserwis.php on line 121

 

Ta linia to: (co w niej nie tak)

$klientwybor = $db->prepare("SELECT * FROM mobidoktor where ticket = :ticket");

 

komentarz 20 października 2016 przez HaKIM Szeryf (87,590 p.)

Dziwne.

Można spróbować stosować die() i wykryć gdzie dokładnie strona pada.

Btw.

<?php
}
?>

Co to jest? Przecie to nie ma prawa działać.

while ($i <= 10):
    echo $i;
    $i++;
endwhile;

http://php.net/manual/en/control-structures.while.php

?>
 
<input type="checkbox" name="id[]" value="1">
<input type="hidden" name="produkt[]" value="<?php echo $cennikserwis; ?>">
<input type="hidden" name="type[]" value="<?php echo $cennikserwis2; ?>">
<input type="number" name="ilosc[]" size="5" value="<?php echo $cennikserwis1; ?>" >
<input type="hidden" name="kosztbruttob2b[]" size="2" value="<?php echo $cenab2; ?>" >
<input type="hidden" name="kosztnettob2b[]" size="2" value="<?php echo $serwisb2; ?>" >
 
 
<br>
<?php
}
?>

Nie, żeby coś, ale wygląda to gorzej niżeli tragicznie.

<?=?> - od razu lepiej.

Sięgnij po dokumentacje, bo będziesz z pierwszym lepszym problemem tutaj przychodził. Robisz podstawowe błędy, bez znajomości podstaw, które są zawarte w dokumentacji.

komentarz 20 października 2016 przez Zbigniew Andrysiak Bywalec (2,470 p.)
Sorki znalazłem ; zabrakło:)
komentarz 20 października 2016 przez HaKIM Szeryf (87,590 p.)
A wystarczyło wpakować kod do pierwszego lepszego IDE i problem od razu załatwiony.

Ehh...
komentarz 20 października 2016 przez Zbigniew Andrysiak Bywalec (2,470 p.)
Mam nowy komputer i nie mogłem zainstalować XAMP-a. Poza tym korzystam z SUBLIME TEXT ale nie pokazywał mi błędu.

Podobne pytania

–1 głos
2 odpowiedzi 908 wizyt
pytanie zadane 28 września 2016 w PHP przez Paweł123 Nałogowiec (33,500 p.)
0 głosów
1 odpowiedź 483 wizyt
pytanie zadane 17 stycznia 2018 w PHP przez Adam Ostrogórski Obywatel (1,070 p.)

92,549 zapytań

141,392 odpowiedzi

319,519 komentarzy

61,935 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...