Hogyan lehet if () tagot csinálni, php változókból?
Van egy adatbázisom(mysql), amiben tárolok ilyen alakban dokumentumokat: >15 ; =8 stb.. stb..
A PHP fájlban elvégzek egy műveletet, amelynek az eredményét szeretném összehasonlítani ezekkel az adatokkal.
$muvelet = $adat["muvelet"] // Ennek az egésznek az értéke: >15
$szamitas = 8;
azt szeretném elérni, hogyha igaz a relációs művelet, akkor írja ki, hogy "igaz". Ha nem igaz, akkor pedig "nem igaz".
Előre is köszönöm a válaszokat!
Igen, azóta utána néztem az operátoroknak.
A legdurvább ilyen féle lenne: 31.058 >= 0.059
Bár nekem eddig a fohászkodás még többnyire megoldott minden programozási problémát.. xd
Ezt a kérdést viszont nem értem. Az adatbázis egy cellájában van a ">15" karakterlánc?
Az elvégzett művelet egy szám?
Ehhez a számhoz kellene találni egy adatbázisban lévő relációt tartalmazó karakterláncot?
Ebben az esetben lekéred az adatbázist, eltárolod a $tabla tömbben.
foreach($tabla as $kulcs => $sor){
//az adott reláció mondjuk a 'relation' oszlopban van
$string = $sor['relation'];
//az első karakter:
$rel = $string{0};
//a szám:
$num = substr($string,1);
switch ($rel) {
case ">":
if($eredmeny > $num){ print "igen"; };
break;
case "=":
if($eredmeny == $num){ print "igen"; };
break;
case "<":
if($eredmeny < $num){ print "igen"; };
break;
default:
;
}
}
(nem ellenőriztem le, csak úgy hirtelen..)
A lényege: a felhasználó begépel egy algoritmust. 3 meghatározott változóval. pl: $a * $b + $c
Aztán ki lehet választani, hogy az így kapott érték mennyitől legyen nagyobb,kisebb, nagyobbegyenlő stb. mint 8.
A feldolgozásnál a $a, $b és $c értéke mindig változik, tehát az előzőleg megadott algoritmusnak mindig más lesz az eredménye. Viszont az úgymond kikötés állandó.
A kikötést, a változók értékét is az adatbázis egy cellájában tárolom.
Az eredmény lehet tört szám vagy egész szám.
A te kódodban csak > < = jelekkel számoltál. Nekem kellene >= és <= is. Vissza fele azért nem lehet leválasztani, mert az eredmény lehet 1,2,3 vagy akár 4 számjegyű is.
Egyébként a fentebbi megoldás teljesen jó, csak a kikötésnél a szám egésznek kell, hogy legyen. Ennyi a problémája annak.
Akkor aztán remek ötlet evalt használni, ha a user küldi be a kódot. :D
Volt nincs szervered/adatbázisod. :D
"Egyébként a fentebbi megoldás teljesen jó, csak a kikötésnél a szám egésznek kell, hogy legyen. Ennyi a problémája annak."
Akkor a reguláris kifejezést kell egy kicsi módosítani, hozzáadni a tizedespontot és a tizedesjegyeket:
$regexp = "/([\D^ ]+)(\d+\.*\d*)/";
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!