Kezdőoldal » Számítástechnika » Programozás » Hogyan lehet if () tagot...

Hogyan lehet if () tagot csinálni, php változókból?

Figyelt kérdés

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!



#php #változó #változókkal
2017. júl. 30. 20:38
1 2
 11/19 anonim ***** válasza:
Akkor végre ideje lenne kitalálnod, hogy ezt az egészet te hogyan akarod használni. Csak egész számok lesznek, vagy lebegőpontos számok is (tört számok)? Lesznek bonyolultabb kifejezéseid is?
2017. júl. 30. 22:30
Hasznos számodra ez a válasz?
 12/19 A kérdező kommentje:

Igen, azóta utána néztem az operátoroknak.


A legdurvább ilyen féle lenne: 31.058 >= 0.059

2017. júl. 30. 22:34
 13/19 anonim válasza:

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..)

2017. júl. 30. 22:43
Hasznos számodra ez a válasz?
 14/19 A kérdező kommentje:

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.

2017. júl. 30. 23:31
 15/19 anonim ***** válasza:
100%

Akkor aztán remek ötlet evalt használni, ha a user küldi be a kódot. :D


Volt nincs szervered/adatbázisod. :D

2017. júl. 30. 23:47
Hasznos számodra ez a válasz?
 16/19 A kérdező kommentje:
Más megoldás lenne?
2017. júl. 31. 10:48
 17/19 anonim ***** válasza:
Írni kell egy parsert (vagy keresni egyet).
2017. júl. 31. 10:58
Hasznos számodra ez a válasz?
 18/19 anonim ***** válasza:

"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*)/";

[link]

2017. júl. 31. 12:13
Hasznos számodra ez a válasz?
 19/19 A kérdező kommentje:
Köszi szépen!!
2017. júl. 31. 13:10
1 2

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!