irysek110
19.06.2005, 19:33:35
Co robi skrypt każdy widzi. Pytanie brzmi: dlaczego nie uzyskuję poprawnego wyniku sumowania ($cena_wywolawcza) + ($skok) w elsie na dole?. Wielkości sumowane są poprawne, gdy $skok = 5, a $cena_wywolawcza = 530, to wynik mam 5. Nie rozumiem dlaczego..
<?php
if( isset($_POST['co_licytuje'])) {
if ($db)
{
$data=date(\"Y-m-j\");
$z_bazy = mysql_query(\"SELECT * FROM asortyment WHERE asortyment_id = '$co_licytuje'\"); if ( $licz_z_bazy!= 0)
{
$cena_wywolawcza = stripslashes($z_b[\"cena_wywolawcza\"]);
//echo \"<font color=\"black\">$cena_wywolawcza\";
}
$najwyzsza_licytowana = mysql_query(\"SELECT MAX(cena_licytowana) AS cena_l FROM licytacje where asortyment_id = '$co_licytuje' \"); //echo $nawj_lic;
if ($nawj_lic!=0)
{
$zalicytowalem = $cena_obecna + $skok;
//echo $cena_obecna;
}
else
{
$zalicytowalem = ($cena_wywolawcza) + ($skok);
//echo $zalicytowalem;
}
//echo $moja_netaukcja;
echo \"<br>\".$cena_wywolawcza; echo \"<br>\".$cena_obecna; echo \"<br>\".$zalicytowalem;
}
}
else
echo \"Nie przesyla\"; ?>
Serdeczne dzięki
SongoQ
19.06.2005, 21:59:46
Hm niby wyglada ok, ale po co te nawiasy? Moze zor rzutownaie typow.
irysek110
19.06.2005, 22:20:05
Rzutowanie nic nie dało...Dziwne, bo jeśli skrypt wykonuje if -a i sumowanie jakie w nim jest ($zalicytowalem = $cena_obecna + $skok;) to to sumowanie działa poprawnie..
Masz SongoQ jeszcze inny pomysł? Może ktoś inny?
LukasMG
19.06.2005, 22:23:25
Nawiasy mogą, choć nie muszą być - nie wpływają na obliczenia w tym wypadku.
Przyjżyj się dokładniej wypluwa Ci baza przy zapytaniu o cene wywoławczą.
<?php
//18 Linijka
$cena_wywolawcza = stripslashes($z_b[\"cena_wywolawcza\"]);
?>
dr_bonzo
19.06.2005, 22:30:43
a sprawdz tutaj:
<?php
else
{
echo $cena_wywolawcza; //<<<<<<<<<<< $zalicytowalem = ($cena_wywolawcza) + ($skok);
//echo $zalicytowalem;
}
// bo tutaj
if ( $licz_z_bazy!= 0)
{
$cena_wywolawcza = stripslashes($z_b[\"cena_wywolawcza\"]); // <<<<<<<<
//echo \"<font color=\"black\">$cena_wywolawcza\";
}
//warunkowo deklarujesz zmienna $cena_wywolawcza, ktora nie musi byc dostepna w ta
tym ELSE
?>
irysek110
19.06.2005, 22:59:44
Baza wypluwa mi odpowiednią zmienną $cena_wywolawcza, to już sprawdziłem.
Właśnie, to dokładnie tak wygląda jakby $cena_wywolawcza byla rowna 0, czyli jakby była niedostępna. Ale jak to jest, że ta zmienna nie jest dostępna, a zmienna $skok, uzyskiwana w tym samym miejscu w tym samym elsie działa poprawnie? Trochę tu brak konsekwencji..
Jak to jest możliwe, że ta zmienna nie musi być tam dostępna?
Mało tego...zlikwidowałem warunek, bo i tak to zapytanie do tabeli asortyment wyrzuci jeden rekord i mimo to nie działa..
LukasMG
19.06.2005, 23:12:15
Cytat(irysek110 @ 2005-06-19 21:59:44)
Baza wypluwa mi odpowiednią zmienną $cena_wywolawcza, to już sprawdziłem.
A nazwa kolumny w tabeli "asortyment" jest napewno zgodna z kluczem tablicy "cena_wywolawcza"?
Nie możliwe jest by ta zmienna nie była dostępna w interesującej Cię częsci skyptu.
irysek110
19.06.2005, 23:18:09
Na pewno się zgadza. Wyświetliłem sobie zaraz pod
$cena_wywolawcza = stripslashes($z_b["cena_wywolawcza"]);
tę zmienną i jest poprawna..na bank
dr_bonzo
20.06.2005, 06:56:56
Wlacz error_reporting( E_ALL ), i zobacz jak twoj algorytm sie sypie. Stworz go na nowo i zakoduj! np:
<?php
if ($nawj_lic!=0)
{
$cena_obecna = stripslashes($n_l[\"cena_l\"]); // <<<<< CENA OBECNA $zalicytowalem = $cena_obecna + $skok;
}
else
{
$zalicytowalem = ($cena_wywolawcza) + ($skok);
// <<< TU JEJ NIE MA
}
echo \"<br>\".$cena_wywolawcza; echo \"<br>\".$cena_obecna; // A MIMO TO JA ECHUJESZ echo \"<br>\".$zalicytowalem;
}
?>
irysek110
20.06.2005, 12:04:07
Dzięki wszystkim, problem rozwiązałem....Okazało się, że zapytanie z klauzulą MAX nie działało do końca dobrze przez co skrypt nie wchodził do else i nie sumował, tylko wchodził do "if", gdzie sumował $skok i nieistniejącą w tabeli licytacje wartość $cena_obecna, dlatego na końcu wartość $zalicytowalem była równa skokowi...
Dzięki serdeczne za zainteresowanie.
Pozdrawiam
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.