Post by Alsaru » Sun Mar 25, 2012 4:38 pm

Am postat aceasta problema si pe phpromania dar nu am reusit sa gasesc o solutie buna pentru mine dintre cele indicate de user-ii avansati de php ceea ce imi da de gandit ca rezolvarea problemei se afla chiar in structura opencart .

Am urmatoarea formula intr-un magazin online

<?php if ($price == 0) { echo "Text"; } else { ?>...................

Functioneaza pentru toate articolele cu preturile 0.00 RON dar din pacate si pentru preturile de la 0.01 RON pana la 0.99 RON
Inteleg ca formula de mai sus cauta doar 0 din fata punctului zecimal.
Intrebarea mea este cum modific formula pentru a gasi doar preturile de 0.00

Multumesc

New member

Posts

Joined
Wed Feb 29, 2012 1:33 am

Post by GoGo OpenCart » Sun Mar 25, 2012 6:41 pm

I translated your post with Google Translator, and you might want something like this:

http://www.opencart.com/index.php?route ... on_id=4067

http://www.opencart.com/index.php?route ... on_id=4139

See all my extensions: https://www.opencart.com/index.php?rout ... 20OpenCart


User avatar
Active Member

Posts

Joined
Mon Nov 14, 2011 11:30 pm

Post by rob_pal » Sun Mar 25, 2012 6:58 pm

Alsaru wrote:Inteleg ca formula de mai sus cauta doar 0 din fata punctului zecimal.
asta nu-i adevarat !

Code: Select all

<?php 
$price = 0.1;
if($price == 0) { 
		echo "equal"; 
	} else { 
		echo "not equal";
}
?>
asta nu-ti va da egal niciodata.

Am impresia ca problema ta e alt undeva. Poate valoarea $price e 0 la toate produsele.

New member

Posts

Joined
Tue Jan 10, 2012 6:11 pm
Location - Leeds

Post by Alsaru » Mon Mar 26, 2012 1:30 am

Preturile mai mari sau egale cu 1.00 iau valoarea de dupa "else" ceea ce e ok; pana la 0.99 iau valoarea din "if" ceea ce nu e ok pentru ca vroiam strict doar pentru 0.00
Formula se afla in product.tpl si schimba doua butoane, unul pentru if si altul pentru else. O solutie la indemana, ca sa nu mai pierd timpul cu problema asta ar fi ca toate preturile intre 0.01 si 0.99 sa le rotunjesc la 1.00 in lista de dinainte de upload in db; dar totusi acum vreau sa rezolv Enigma; ma gandesc ca ar trebui sa modific ceva in product.php cred ca legat de number_format dar sincer sa fiu nu sunt inca in stadiul avansat sa inteleg cum functioneaza acolo formatul.

Mai astept totusi cateva indicii de la cei care au trecut prin asta

Multumesc

New member

Posts

Joined
Wed Feb 29, 2012 1:33 am

Post by nicudica » Mon Mar 26, 2012 4:23 am

Saluty!

Foarte simplu :D

Exista mai multe solutii.. eu am ales-o pe cea mai lazy :)

Code: Select all

<?php
$price = "0.23";
$price2 = substr($price,0,1);

if ($price2 == 0){
	echo "Pret egal cu 0";
} else {
	echo "Pret mai mare ca 0";
}?>
Sa-m zici daca functioneaza, te pot ajuta sa rezolvi oricum...
Success

User avatar
Active Member

Posts

Joined
Wed Nov 11, 2009 9:20 pm
Location - Bucharest / Romania

Post by rob_pal » Tue Mar 27, 2012 1:54 am

Alsaru wrote:vroiam strict doar pentru 0.00
incerca cu triplu egal, nu stiu din cap daca pretul e sting sau nu, dace e string incerca cu
$price === "0.00" daca nu numai cu valoare $price === 0.00

New member

Posts

Joined
Tue Jan 10, 2012 6:11 pm
Location - Leeds

Post by nicudica » Tue Mar 27, 2012 7:04 am

Saluty!

Iar pentru stric valoarea 0.00:

Code: Select all

<?php
$price = "0.99";
$price1 = substr($price,0,1);
$price2 = substr($price,2,4);

echo $price1."<br>";
echo $price2."<br>";

if ($price1 == '0' & $price2 == '00'){
	echo "Pret egal cu 0.00";
} else {
	echo "Pret mai mare ca 0.00";
}
?>

User avatar
Active Member

Posts

Joined
Wed Nov 11, 2009 9:20 pm
Location - Bucharest / Romania

Post by Alsaru » Wed Jun 06, 2012 3:28 pm

Din pacate nu a mers nimic. Probabil imi scapa ceva. Oricum am renuntat pentru ca s-au schimbat datele problemei si nu mai este necesara modificarea.

Multumesc. Invat din orice discutie.

New member

Posts

Joined
Wed Feb 29, 2012 1:33 am
Who is online

Users browsing this forum: No registered users and 2 guests