Új hozzászólás Aktív témák
-
bobace
addikt
Szerencsére magamnak csinálom. Ez a "tanulóprojektem" phpban. Sajnos ennél ki is jött a legnagyobb problémám, nincs rendes programozó agyam
Nem tudok ennyi féle problémát előre látni... Persze, gondolom gyakorlat teszi..
Végül is mivel alapvetően prepaid rendszerű a dolog, így mindegy melyik optimumot választanám, mert az egyenleg a mérvadó, ha most marad 20 Ft a számláján mindegy, majd következő alkalommal beszámítja a rendszer. Csak szerettem volna igényesen megjeleníteni, hogy mely tételek vannak már úgymond rendezve, csak bírnám legalább valamelyiket leprogramozni -
bobace
addikt
válasz
Sk8erPeter #11975 üzenetére
Bocs, hogy veletek osztom meg a dolgot, de kivel mással
Az elméletem:
Van X egyenlege. X lehet kisebb mint 0, 0, nagyobb mint 0.
Érkezik Y feltöltés. Y > 0
Van neki több tétele: A, B, C , D, E, n.
X >= 0 :automatikusan minden 1-re lesz állítva. Y növeli X értékét.
X < 0 esete:
1. X+Y = 0 -> mindent 1-re állítok
2. X+Y > 0 -> mindent 1-re állítok és X nagyobb lesz, mint 0.
3. X+Y < 0 ->annyit állítok 1-re, ahányat tudok.
Szeretném X-et úgy elkölteni, hogy időrendben amire pénz van azt állítsa 1-re. Egyesével vizsgálgatom sorba az elemeket:
a. Ha Y – A > Y
1. ha igen, akkor A => 1 lesz, Y pedig csökken A értékével => Y-A = Y2 => b. pont
2. ha nem, akkor ugrik B-re, és megvizsgálja azt.
(Ha Y - B > Y, akkor B =>1. Ha nem, megy C-re. Ezt folytatja n-ig.)
b. Ha Y2 – B > Y2
1. Igen: B=>1 , Y2 – B = Y3
2. Nem: Ugrik C-re.
Ez helyesnek tűnik? Mondjuk hogy hogy lesz ebből kód -
bobace
addikt
válasz
Sk8erPeter #11975 üzenetére
Ilyen hibaüziket pakol egy logba a check, amit az admin felületen tudok ellenőrizni (itt pl elfelejtettem az order by részt levenni a select végéről):
"15-11-2012, 11:46:43:: Adatbázis hozzáférési hiba. Kérjük vegye fel a kapcsolatot az adminisztrátorral. SELECT u.id FROM fees u WHERE u.paid = 0 and u.user_id=17 ORDER BY amount
Unknown column 'amount' in 'order clause'
page: C :\wamp\www\root\admin\user.php line:273"
Maga a function a mysql_error() köré épül. -
bobace
addikt
válasz
Sk8erPeter #11970 üzenetére
A $row['id'] mikor fog változni? A sima if ágban sem ugrik a következőre? (Mert ott ha elég az összeg mindenre, akkor minden sort updatel)
Nem tudom, hogyan működik ez a check, de még eddig dobta a hibákat.. Nem vagyok php guru, majd egyszer
Az utolsó példád az a legegyszerűbb, mert akkor egyszerűen az egyenlege +2950 lesz, az if ág pedig működött ilyenre. Tehát pluszba mehet, maradhat fent egyenlege, ami kimarad, azt majd legközelebb elhasználja másra, illetve ott automatikusan 1-re állítom a paidet, amíg pluszos az egyenleg.
-
bobace
addikt
Ez így volt a rendszerben ez a check és system, ezeket nem én találtam ki,csak kopizon, ahová láttam, hogy kell.. Ez egy egyedi CRM rendszer része, amit nem én csináltam.
A megoldás az lenne, hogy 200 Ft-ból kiegyenlít időrendben amennyit tud. Ha mondjuk az 50-50-90-90-200 időben 50-200-90-50-90, akkor 50-90-50-et egyenlít ki, és marad 10. De ha mondjuk 200-50-50-90-90, akkor nyilván a 200-at. Nem tudom, hogyan lenne a leglogikusabb, lehet hogy nagyság szerinti sorba kéne rakni, nem időben? Bár ott meg ha nincs keret a legnagyobbon, és megáll a dolog, akkor meg kisebbek nem lesznek kiegyenlítve, holott arra lenne egyenleg.. Ezt én sem tudom, mi a legéletszerűbb, leglogikusabb.
-
bobace
addikt
Az megesik, hogy ezer sebből vérzik, hisz én írtam, és én nagyon kicsit értek hozzá
- annyit kellene neki tudni, hogy vannak benne fizetetlen tételek, amiket ki akarok egyenlíteni. Egy-egy befizetésnél megvizsgálja, hogy mely tételeket kell kiegyenlíteni, és van-e rá fedezet. Egyszerre több tétel is lehet, mondjuk van kint 50+200+100 és bejön 180 vagy akármennyi (plusz az előző egyenlegem, mondjuk 15), ami kevesebb mint a kintlévő összeg (350), de amire van fedezet, azért azt állítsa át fizetvére (100+50). Azt érzem, hogy ez nem gyenge feladat, egyelőre annak is örültem volna, ha az 50-re rájön, hogy azt állítsa át első körben.
-a check a szintaktikát ellenőrzi, ha rossz, dob egy hibaüzit. Teszteléskor jól jött sokszor. -
bobace
addikt
válasz
Sk8erPeter #11964 üzenetére
Akkor bemásolok többet
Továbbra sem vagyok sokkal okosabb, szóval simán lehet, hogy teljes hülyeség amit csinálok..
while ($row = mysql_fetch_assoc($res2))
{
if (($egyenleg + $feltolt) >= 0)
{
$query = "UPDATE fees u SET u.paid = 1 WHERE u.id=" . $row['id'];
$system->check_mysql(mysql_query($query), $query, __LINE__, __FILE__);
}
else
{
$avabal = $egyenleg + $feltolt ;
while ($avabal >= $row['amount'])
{
$query = "UPDATE fees u SET u.paid = 1 WHERE u.id=" . $row['id'];
$system->check_mysql(mysql_query($query), $query, __LINE__, __FILE__);
$avabal= $avabal - $row['amount'];
}
}
}
Még így teljesen rossz? A sima if rész működik jól, azt próbáltam, vagy lehet nem is jó, csak csinálja, ami nekem kell? -
bobace
addikt
Korábban már kérdeztem itt, de nem bírtam megoldani a dolgot, így visszatértem..
Most ez a kódom:
Van egy lekérdezésem, amire a $row-val hivatkozok
$avabal = $egyenleg + $feltoltes ;
while ($avabal >= $row['amount'])
{
$query = "UPDATE fees u SET u.paid = 1 WHERE u.id=" . $row['id'];
$avabal= $avabal - $row['amount'];
}Azt akarom kihozni, hogy minden update után számolja újra az avabal-t, és a következő körben már azt vizsgálja, hogy nagyobb-e, mint az amount sorban szereplő érték. Ezt hogyan kell?
-
bobace
addikt
válasz
Sk8erPeter #11741 üzenetére
Küldtem privet.
Amúgy persze, hogy nem best, olyan egyszemélyes projektnek tűnik, van benne hiba is szép számmal, de könnyen tudtam vele boldogulni. Ránézésre a linkelt modulok nem tudják, ami nekem kell ebből. -
bobace
addikt
válasz
Sk8erPeter #11737 üzenetére
Ez lenne az. Egy sima webáruházat (virtuemart és társai) sokkal nehezebb lett volna átszabni.
-
bobace
addikt
válasz
Sk8erPeter #11732 üzenetére
Egy a gond, hogy az enyém is egy CMS rendszer alapból (csak nem ismert, de ez volt a legmegfelelőbb arra, amit akartam), ezt már átültetni nem gyenge dolog lenne. Ejj nem bíztatóak a kilátások.
-
bobace
addikt
válasz
Sk8erPeter #11729 üzenetére
Közben ezt a dolgot feladtam. A rewriteok működtek, amiket megadtam, de visszafelé nyilván értelmetlen is a dolog, ez volt egy sor:
RewriteRule ^(.*)termek/(.*)$ item.php?id=$2 [L]Azt akartam megoldani, hogy ha beírom hogy item.php?id=123, akkor a böngészőben termek/123 legyen.
Mai kutatásaimnak köszönhetően arra jutottam, hogy PHP rounting kellene.
Itt csak ennyi a .htaccess: RewriteRule ^.*$ index.php És akkor csinálok egy route funkciót, és az index.php-ba írom be, hogy mi mire mutasson. Most arra próbálok rájönni, hogy ezt hogyan is kell. -
bobace
addikt
Na látom, sikerült itt indulatokat kelteni.. Azért bátorkodtam ide feltenni a kérdést, mert az apache topikba nem írtak 3 éve, itt meg az apache-ra keresve elég sok friss találat is volt. Gondoltam köthető a témához, ha már más is meg merte kérdezni itt ezirányú baját
Ennyi.
Ja és:
- Nyilván beírtam, a keresőbe, de nem volt olyan, ami nekem kell.
- Azért tettem fel a kérdést, mert előtte már 2 napig a google-t túrtam, és nem jöttem rá a megoldásra. Nem szoktam olyat megkérdezni, amit meg bírok oldani...
- mivel nem én írtam a rendszer magját (csak átalakítom saját igényekre), és másrészt nem is vagyok programozó, így ebből kell főznöm.Én kérek elnézést...
-
bobace
addikt
Sziasztok! mod_rewrittal kapcsolatban lenne kérdésem. AZt megoldottam, hogy ha beírom, hogy sajatoldal.hu/termek/1 akkor az jöjjön be aminek kell. De azt hogy tudom megoldani, hogy ha beírom a hosszú címet, ami valami ilyesmi: sajatoldal.hu/index.php?item.php=1, a címsorban, akkor is a sajatoldal.hu/termek/1 legyen? Mert az oldalamon levő linkek mind a hosszú címekre mutatnak (most kezdtem el a rewrittal ismerkedni), de jó lenne ha a címsorban már a rövid lenne.
Köszi! -
bobace
addikt
Az egyszerűbb részt megcsináltam, hogy ha ugyanannyi a befizetés, mint az összterhelés, akkor updatelek minden sort. Nyilván ez sem túl elegáns, mert egy lekérdezéssel mindent le lehetne tudni, csak hogy érezzek egy kis sikerélményt, ezt megcsináltam
Else-ben addig jutottam, hogy lekérem SQL-ból az összegeket. Mondjuk ez 5 érték. De itt megállt a tudomány, ez a rész nem megy: "Majd szépen egyenként összeadogatod őket. Egy array-ban eltárolod azok id-ját amiket összeadsz . Nyilván akkor írod bele amikor már biztos, hogy 100alatt van az össz érték (és mész a következőre)." Foreachet már használtam egyszer-kétszer, de nem tudom, ezt hogyan lehetne összerakni..Hogyan adogatom össze őket úgy, hogy figyeljen egy értékhatárt? -
bobace
addikt
Sziasztok!
Nem régen vágtam bele SQL és PHP programozásba és egyben tanulásába. Viszonylag kezdek belejönni. Más nyelvhez nem igen értek, max html.. Szóval így kérném a választ, már ha kapok.
Azt szeretném megoldani, hogy adott egy tranzakciós lista.
Minden sornál eltárolom adatbázisban a fizetve sorhoz a 0 vagy 1 értéket, és ehhez megjelenítem a felületen a nincs fizetve/fizetve szöveget.
Ha egy terhelés jön, akkor csinálok 0-ás sort, ha jóváírás, akkor 1-est. Eddig tiszta sor.
Amit szeretnék megoldani, hogy mondjuk van 150 Ft terhelés, és akkor jön 100 Ft jóváírás, akkor a 0-ás sorokat írja át 1-esre azokban a sorokban, amire elég a jóváírás maradék nélkül. Hogyan lehet ezt számolni, mi lenne a módja?Köszi!
Új hozzászólás Aktív témák
Hirdetés
- Milyen házat vegyek?
- Videó stream letöltése
- Gaming notebook topik
- Spórolós topik
- Milyen GPS-t vegyek?
- Medence topik
- Kodi és kiegészítői magyar nyelvű online tartalmakhoz (Linux, Windows)
- Autós topik
- Samsung Galaxy S24 FE - később
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- További aktív témák...
- Dell Latitude 7390, 13,3" FHD IPS , I5-7300U CPU, 16GB DDR4, 512GB SSD, WIN 11, ( olvasd végig )
- Acer PREDATOR HELIOS NEO 16 / i9-14900HX / RTX 4070 (140W) / 1 TB SSD / 240HZ
- Topping A70 Pro fejhallgató erősítő
- Topping D70 Pro Octo DAC
- Egyedi PC összeszerelés Tökéletes színséma, prémium kábelmenedzsment, alkatrészfestés!
- ÁRGARANCIA!Épített KomPhone i5 12400F 16/32/64GB RAM RTX 4060 Ti 8GB GAMER PC termékbeszámítással
- 13-14" Új és használt laptopok , üzletitől a gamerig , kedvező áron. Garanciával !
- BESZÁMÍTÁS! MSI B450 TomaHawk R5 3600 16GB DDR4 512GB SSD RX5500 XT 8GB Rampage SHIVA TT 530W
- Több Lenovo Thinkpad x1 carbon gen 4 / 5 / 6 / 7 X1 Yoga gen3 6-9. gen i7, i5 procik
- Magyarország piacvezető szoftver webáruháza
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: PC Trade Systems Kft.
Város: Szeged