Hirdetés
- Motorola Edge 60 Fusion - nem csak a forma időtálló
- Ismét elérhető a One UI 7 a Galaxy S24-re
- Bemutatkozott a Poco X7 és X7 Pro
- Apple iPhone 16 Pro - rutinvizsga
- Huawei Watch GT 4 - kerek karék
- Íme, a One UI 8
- A Deezer zenei kínálatának 18 százalékát már AI generálta
- Milyen okostelefont vegyek?
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Mobil flották
Új hozzászólás Aktív témák
-
eattila
őstag
Üdv! Valaki implementálta már sikeresen a NAV M2M REST apiját? Kapok vissza response-t, de egyrészt a doksija szerintem nem elég informatív (vagy hülye vagyok), meg a swaggerhub se, és állandóan token_creation_failed jön vissza.
-
biker
nagyúr
válasz
Drótszamár #21787 üzenetére
szerintem a number_format működik bármilyen nyelv alapértelmezett szerint
https://www.php.net/manual/en/function.number-format.php -
-
válasz
Drótszamár #21785 üzenetére
Szerintem ezt nem fogod tudni egyetlen beállítással megoldani.
Tippre azt mondanám, hogy azért van most így, mert 8.0 óta az lebegő pontos számok kiíratása nem "locale aware".
Ez a kód:setlocale(LC_NUMERIC, "en_US");
$i = 1.01;
echo $i;
echo PHP_EOL;
setlocale(LC_NUMERIC, "de_DE");
$j = 1.01;
echo $j;
PHP 8 előtt ezt írta ki:
1.01
1,01PHP 8 óta ezt:
1.01
1.01Bár a nullára végződő számoknál szerintem régen is levágta a nullákat, legalább is én nem tudtam az általad mutatott eredményt produkálni régi compilerrel sem. Elképzelhető, hogy a kódodban valahol korábban van valami trimmelés, ami úgy lett megírva, hogy a ponttól jobbra végződő nullákat levágja? És mivel régen locale aware volt az floating -> string átalakítás, ezért ott vessző volt, míg újabban pont, és ezért vágja le...? Nem tudom, csak tippelek.
Szóval azon kívül, hogy átírod a kódot, szerintem mást nem tudsz tenni. Van erre többféle megoldás is, number_format, sprintf, NumberFormatter, paddolás...
-
Drótszamár
őstag
Help!
1000 éves szervert lecseréltem. Változott ubuntu (18->24), apache, php, mysql
php 8.3.6
Apache/2.4.58Úgy tűnik az új php megeszi a float végéről a nullákat.
$i = 1.00;
echo $i;
Eredménye: 1$i = 1.01;
echo $i;
Eredménye: 1.01Van valami módszer, amivel ezt globálisan ki lehet kapcsolni?
Már 1 napja a netet túrom, de csak körbe körbe járok, google nem a barátom -
Panhard
tag
Sziasztok. Az miért van ha php-ből kiküldök json formában értéket, akkor a számoknál a két tizedes helyett hozzátesz még vagy 50-et?
echo json_encode(array("aaa"=>12.34,"bbb"=>123,"ccc"=>325.8), JSON_NUMERIC_CHECK);
Válasz:
{"aaa":12.339999999999999857891452847979962825775146484375,"bbb":123,"ccc":325.80000000000001136868377216160297393798828125}
-
gilfoyle
őstag
Composer segítséget szeretnék kérni - ez kínai nekem...
Ezt a fizetési felületes API-t kellene telepítenem, a leírás szerint csinálom. [link]
A composer init majd a composer require lefut.
A php fájlba beszúrom a require ... sort.Ez a mappastruktúra jön létre:
A vendor a projekt mappában van közvetlenül.
A belső Sdk és almappáiban vannak az osztályok.a php file:
<?php
require __DIR__.'/vendor/autoload.php';
$connection = new DefaultConnection();
?>Már itt elakad, a "PHP Fatal error: Uncaught Error: Class "DefaultConnection" not found" üzenet dobja.
A DefaultConnection osztályt tartalmazó fájl a DefaultConnection.php, és a lib alatti Sdk mappában van.Mi lehet a hiba?
-
Gardaai
senior tag
válasz
Gardaai #21778 üzenetére
Közben tárgytalan lett..
Megvan a hiba.
Relation-nál az 'order' => 'recommended', majd alatta 'pivotSortable' => ['....'] nem fért össze.Ezt csak azért írom, ha valaki ugyanebbe a helyzetbe kerül:
Így elveszik az alapértelmezett order-t ami be volt állítva. De az adott modellen belül anélkül hogy a további orderBy stackelődne, ezzel megoldható a dolog:use Illuminate\Database\Eloquent\Builder;
protected static function boot()
{
parent::boot();
static::addGlobalScope('order', function (Builder $builder) {
$builder->orderBy('recommended', 'desc');
});
} -
Gardaai
senior tag
OctoberCMS-ben (Laravel) van egy belongsToMany relation-om collection (kollekció) és product (termék) között. Így viszont az orderBy nem működik. Ahogy utána jártam, azt írják, hogy állítsak be egy bizonyos 'pivotSortable' => 'column' paramétert a relation kapcsolatnál, viszont nekem ennél bonyolultabb a dolog.
Konkrétabban:
DB így néz ki:
Product: mytable_products
Collection: mytable_collections
belongsToMany: mytable_collections_products
Főoldalon összes termék, szűrés lehetőség (ár, sorrend, kategória).
Collection-on belül csak adott termékek jelennek meg (külön aloldalon).
Viszont ahogy az összes listázott terméknél, itt is szeretnék opciót adni szűrésre (a kategória kivételével, mert egy adott collection, egy kategória termékeit tartalmazzák).
A where szűrések működnek, viszont az orderBy nem.Nem igazán értetettem a talált anyagokból, hogy milyen opcióim vannak a sorrendezésre. Próbáltam a termék minden oszlopát beadni tömbként a 'pivotSortable' paraméterhez, nem nem értelmezi. Nem áll össze a fejemben, hogy ennél a lekérdezésnél mégis milyen kapcsolatot kéne kialakítani, hogy tudja sorrendezni az adott collection összes termékét pl. ár alapján csökkenőben.
-
Gardaai
senior tag
-
cucka
addikt
-
Gardaai
senior tag
Tudtok esetleg egy olyan API kapcsolattal is rendelkező (lehetőleg ingyenes) tool-t amit betudok építeni arra a célra, hogy megnézzem egy adott URL végső URL-jét? Tehát átirányítások végén lévő final URL-re lennék kíváncsi.
PHP curl sajnos nem működik, mert megfogja az oldalra beépített cloudflare a szerver kérést.. és 500-as hibával tér vissza a header.
Érdekes módon a redirect checker és hasonló oldalak azonnal lekérik, nem tudom miben különbözik az ő kérésük és az enyém, annyira nem vagyok benne ezekben a szerver témákban.
Eddig működött, viszont vagy szerver költöztetés volt az adott oldalon vagy pedig eddig nem volt CF az oldalukon. -
válasz
lanszelot #21768 üzenetére
Az a baj, hogy még mindig nem vagy tisztában alapfogalmakkal sem, és nem is jársz utánuk. A múltkor linkeltem neked egy dokumentumot a kliens-szerver architektúráról, még rajzoltam is hozzá egy ábrát, ahova beírtam a webszerver mellé a PHP-t. Arról is volt már szó, hogy a PHP milyen kapcsolatban van a MySQL-el.
Erre te leírod, hogy nálad nincs szerver... -
biker
nagyúr
válasz
lanszelot #21768 üzenetére
"minden más össze zavar."
maradva a festős példánál, téged a festésben csak két dolog zavar, amivel nem tudsz mit kezdeni, a festék és az ecset. A fal se teljesen van rendben, de nagyjából el tudod képzelni, hogy azt kell festeni, de az a fránya ecset meg festék, ami nem is olyan színű mint a youtube videóban a hogyan kezdjünk festeni résznél
-
lanszelot
addikt
válasz
urandom0 #21767 üzenetére
Nincs itt nagy fa.
Csak elfelejtettétek a kezdetet.
Egy kezdőnek amíg nem sajátítja el a for ciklust, addig a for each össze zavarja. Vagy a kezdő aki most használja először az if -et azt a ternary operator teljesen megbolondítja.
Hiába írjátok, hogy az csak más színű festék.
Ez az első sql -em. Sqlite -val kezdtem, minden más össze zavar.
Ha eddig nem kellett szerver és felhasználó, akkor most nem tudom hova mi.
Nem kapkodni kell, hogy ez is kicsit, az is kicsit.
Be kell fejezzem ezt sqlite-val és utána máshogy.
Ezt írtam az elején is, hogy mindenhol máshogy van ugyanaz, mire 1 hét után elmondtátok, mert az sqlite, meg a mysql...stb
Ez nekem borzasztó zavaró, fogalmam sincs mi melyik.Az hogyha meg felhasználónevet felveszek, kiolvasok, módosítom...stb azzal semmit se tanulok.
Az hamis siker. Az összetett feladaton való bukkanók megoldása visz előre a tanulásban.
Nem mindenki magol. Én nem tudok magolni, meg kell értenem és utána tudom használni. -
válasz
lanszelot #21764 üzenetére
Tehát az a szerver kell ahol a php fut.
Hát nyilván, mi más.
De van nekem felhasználónevem? Vagy 4 éve raktam fel, nem emlékszem, ha adtam.meg. Covid kezdetekor kezdtem tanulni.
Te SQLite-ot használsz, nem MySQL-t. Neked nem kell SQL-es felhasználónév.
így 4szer is újra írtam az egészet
Hát, én írtam a múltkor, hogy túl nagy fába vágtad a fejszédet, ahhoz képest, hogy se át nem látod az egészet, se nem érted, se gyakorlatod nincs benne...
Ez a fetch izét egyáltalán nem értem, ez nem fog nekem menni.
Pedig semmi extra nincs benne, annyit csinál, hogy a megadott adatokat, a megadott formátumban elküldi a megadott cél (URL) felé.
-
biker
nagyúr
válasz
lanszelot #21764 üzenetére
senki nem mondta, CSAK ÍGY CSINÁLD
senki nem mondta, ÍRD ÚJRA
nem vagy hajlandó megérteni a dolgokat, és nem vagy képes alkalmazni a tanácsokat
Továbbra sem fogadod el, hogy meg kell tanulnod, hogyan működik a webkiszolgálás, de webalkalmazást akarsz programozni, azzal a mentalitással, hogy
Lanszelot: hogyan fessem le a falat zöldre?
fórumozó: itt egy videó, így kell falat festeni
Lanszelot: de itt fehérrel festenek, én ZÖLDRE AKAROM FESTENI! Most hogy lesz nekem zöld ha fehér festék van benne?Na kb ezen a színvonalon nyomod. MIÉRT????
-
lanszelot
addikt
válasz
urandom0 #21763 üzenetére
Tehát az a szerver kell ahol a php fut.
De van nekem felhasználónevem? Vagy 4 éve raktam fel, nem emlékszem, ha adtam.meg. Covid kezdetekor kezdtem tanulni.Viszont se form, se json, se mysql.
Json-el kezdtem, azzal csináltam meg először, azt mondtátok az nem jó , ezért újra kezdtem.
Majd azt mondtátok az se jó, így újra kezdtem.
Majd form-al csináltam azt mondtátok az se jó, A form-ost is megcsináltam cooki-val, de olvastam, hogy localstorage -val kellett volna.
így 4szer is újra írtam az egészet. Html és js-el.
Most már ez se jó, mégis a form kell.Teljesen össze vagyok zavarodva. 5ször már nem írom újra.
Vagy a form-ost vagy a html+js-t valahogy meg mókolom.Ez a fetch izét egyáltalán nem értem, ez nem fog nekem menni.
-
-
lanszelot
addikt
Hello,
Újra írtam az egészet, ahogy mondtátok.
JS objectben ott vannak az adatok.
Hogy adom át php-nak, hogy berakjam sqlite-ba?
Mindet egyesével cooki-val? -
válasz
lanszelot #21756 üzenetére
Vannak bajok. Tehát neked azért nem jó, hogy a submit lefrissíti az oldalt, mert törli az összes többi form-odat. Ahelyett, hogy normálisan, ahogyan kell, egybe küldenéd az egészet. De az egyesével küldéshez meg nem érted az API-kat...
Rohadtul túlbonyolítod a kérdést és ez is azt mutatja, hogy sem a főzéshez, sem a programozáshoz nem értesz. Gondold át alaposan, lépésről lépésre, hogy mit és miért. Majd meglátod, hogy fogsz kapni egy kb max 3 táblás adatbázist.
Kezdem úgy érezni, hogy szándékosan akarod idegesíteni a Webfejlesztő topikok lakóit...
-
lanszelot
addikt
Mint írtam nem szakácsoknak, hanem átlag embereknek valót készítek.
Kérdezz meg 4 háziasszonyt hogy kell habverővel tejszinhabot felverni. Mind azt mondja majd, hogy sose sikerül.
Sok háziasszony a dobos torta tetejét se tudja megcsinálni.
Vagy csokoládéval bevonni egy tortát.
Pedig nagyon egyszerű mind.
Katyvasz leírás van rengeteg a neten (nosalty és többiek)Jelenleg nem tudom hogy fogom megoldani.
Félre tettem, pihenek, míg nem jön valami ötletem, hogy tudnám megoldani.
A tanárom július közepén már rá fog érni, lehet bevárom veleKöszönöm szépen a segítséget mindenkinek
-
biker
nagyúr
válasz
lanszelot #21754 üzenetére
én tudok főzni, és programozni is, ezért nem értem a problémát
Eleve mi van ha nem sütemény, hanem szuvidált oldalas? és 6 lépésből áll?
Eleve nem értem, hogy konyhatechnológiai kérdéseket miért kell recpetbe tenni? pl vágd zsüliennre akkor nem kell leírni azt hogy kell. A habverést sem kell elmondani, ehhez lehet egy technikák cikket írni.Fogsz egy nagy formot, új recept
(ID generálva beíráskor a db-be)
recept neve
kategória ID (segédtábla kategóriákkal kategória neve, pl sütemény, hús, egytálétel, stb)
Lépésenkénti elkészítések
általános leíráskb ennyi kell a DB-be, a formban a lépésenkénti részhez kell egy kis JS/Jquery trükk, amivel user friendly módon kiraksz egy lépés hozzáadása gombot, ami feldob pár mezőt,
lépés neve (pl piskóta, krém, öntet, akármi)
lépések összetevői
lépések leírása
ezekből akármennyit fel tudsz venni, és elmented így valahogy egy adatbázis mezőbe
lépés1:piskóta;összetevők1:{név1:mennyiség1;név2:mennyiség2;név3:mennyiség3};leírás1:elkészítésmódja|||és a feldolgozás kiolvasáskor explode ||| jelnél, a maradékot tömbként feldolgozod és kiíratod.
kb hasonló a wordpress attributumok és variációk kérdése
-
lanszelot
addikt
Egy recept 3-9 táblából áll.
Gondolj a pudingra és a dobos tortára.
Mi közös bennük...semmi.
Tehát nem tudom ugyanúgy elmenteni.
Egy recept nem annyi, hogy név, cím, munkahely.
Pl pudingnak nincs tésztája, se kréme, stb.(az egy öntet, de magában is desszert)
Míg a dobos tortának öntete nincs.Viszont minden más megvan benne. Tészta, töltelék, díszítő. Ezeknek mind külön kell a hozzávaló.
És ez még csak a hozzávaló.
Ott van még az előkészítés, elkészítés, díszítés.
Ezeket is mind külön kell venni.
Mert ha annyit írok, hogy rakd hideg tálba a tejszínt, és verd félkemény habbá. És ott fogsz állni, hogy nem verődik fel, akkor csak az előkészítés maradt ki, hogy fél órára rakd a fagyasztóba a fém edényt amiben felvered a habot.
Ezért kell külön írni, hogy elsőnek mindig azt olvassuk el, mi az előkészítés, hogy amíg a tésztát készítem a tál bent a fagyóban pislog
Stb.
A neten nincs ilyen receptes, mert aki készíti az oldalt nem tud sütni. Egy perces sütemény... és azzal kezdi fél órát tegyük a hűtőbe a..... Akkor mi egy perces?Tehát egy recept nem úgy néz ki mint amikor a szomszédasszony papírra kaparja a pogácsáját, mert de finom volt.
Emiatt nem lehet 1 submit.
Létre kell hoznom a receptet, majd ami van benne csak azt hozzá adni.
Ez mind mind kész van, jól működik. Csak felhasználó baráttá próbálom tenni, amihez újra kellene írnom az egészet, ismét. -
lanszelot
addikt
Először is köszönöm szépen a válaszokat mindenkinek
"NEM! egy submit gombbal elküldöd a recept összes adatát, normális esetben"
Nem így működik. Sok submit gomb van, és nem az összes adatot küldi el adatbázisba, hanem darabjait egyesével.
Tehát 2 és 8 között változik mennyi alkalommal küldi 1 recept adatait.
No, ezek között a darabok között nem kellene frissítenie.Igen, el tudom tárolni js multi object-be , és azt elküldeni, de ekkor újra kell írni az egészet.
-
bhonti
aktív tag
Egyébként is aki nem tud úszni ne másszon fára, mert elüti a villamos
-
válasz
lanszelot #21742 üzenetére
Azt se tudtam hogy a php elküldi a formot valahova.
Azt hittem berakja az adatbázisban.Én is csak megerősíteni tudom, hogy nem a PHP küldi el, hanem a böngésző. De én ilyen apróságok miatt nem szoktam szólni,
Ajax-hoz nem kell Fetch. Van ajax vagy fetch (xmljttp -t nem tudom).
Szintén csak megerősíteni tudom azt, hogy az AJAX egy technika, hogy mivel valósítod meg, az egy másik kérdés. Megvalósíthatod XMLHTTPRequesttel vagy fetch() függvénnyel (de ha nagyon akarja az ember, WebSockettel is megoldható).
jQuery-t ismered, nem? Abban is van $.ajax(), $.post(), $.get() és hasonlók függvények, az is AJAX.Ezek szerint töröljem az összes php-t és js-el oldjam meg az egészet?
Tehát kezdjem ismét újra az egészet?Igazából a tanulást kéne előről kezdeni, mert még mindig azt mondom, az alapprobléma az, hogy egyszerűen nem látod át, hogy minek mi a szerepe. Próbáltam már korábban leírni itt, nem tudom, mennyire ment át, de igazából azt kéne átnézned, hogy hogyan működik ez az egész webes kommunikáció. Nagyjából itt kellene elkezdened: Client-Server Overview
Van benne egy ábra, azt is nézegesd meg alaposan.Készítettem én is neked egy ábrát, mert a cikkben lévőben nincs benne az adatbázis. Nem tökéletes, de a lényeg talán leolvasható: [kép]
-
biker
nagyúr
válasz
lanszelot #21746 üzenetére
""Ez nekem magas", azaz fogalmam sincs hogy mit jelent amit leírt"
és akkor miért nem egy wordpresst raksz fel ami 5perc egy nyolcadikosnak, és már rég lenne receptoldalad?
"Azt se tudtam hogy a php elküldi a formot valahova."
mert nem küldi a php sehova!
"Azt hittem berakja az adatbázisban."ha azt kéred berakja adatbázisba, de mást is csinálhatsz vele
"Nem jelszó.
A recept adatai. De az adatokat nem egyszerre viszi be az sql adatbázisba hanem sok submit gombbal készül el egy recept."NEM! egy submit gombbal elküldöd a recept összes adatát, normális esetben
"Ezt megint sufni tuningolnom kell.
JS ben ajax/fetch sem értem. Tudom használni, de nem értem."
nem, nyugodtan elhiheted, nem érted, és használni sem tudod
"Php elküldi - tehát ezt sem értem."
Lásd fent, nem küldi sehova
"Mielőtt jönne, hogy mert meg kellett volna tanulni... Ajax/fetch magán tanárt fizettem 4 éve, de nem tudtam megérteni.
Api-hoz tudom használni és itt kifújt."Kár volt fizetni neki ezek szerint.
PHP: a szerveren fut, fogad bemeneten kérést, és a kimeneten választ ad
HTML: kizárólag a kliens gépen statikus tartalom megjelenítése
JS: nem kötelező, de segít szebbé tenni a megjelenést, mert a statikus html-ből adatot tud kiolvasni a háttérben, ezt feldolgozásra el tudja küldeni async a php-nek, ami a választ elküldi a js-nek, ami felülírja a html element tartalmát, és megjelenik a frissített tartalom.vagyis ha te úgy akarsz receptet frissíteni, hogy ne töltsön újra az oldal a submit miatt, akkor
1: statikus html ami megjeleníti a recept területet
2: egy form a html-ben ami elküldi az adatokat
3: egy php ami fogadja az űrlap adatait, és beírja a db-be
4: egy php ami kiolvassa egy adott id-jű recept adatait a db-ből
5: egy js/jqeury blokk ami a html form element adatait beolvassa, és submitra elküldi a 3. php-nek
6: egy js/jquery blokk ami figyeli a 4. php elem válaszát
7. egy js/jquery blokk ami felülírja a recept tartlma megejelnítés elementek tartalmát a frissített tartalommal.De értelmesebb egy admin form, amin megírod a receptet, és egy display html ami megjeleníti, és kihagytad a js-eket.
-
biker
nagyúr
válasz
lanszelot #21746 üzenetére
Ember, végre fogd már fel, mi hol fut!
PHP: szerver
HTML, JS, Jquery: kliensergo:
- humanoid veri a kéjbárdot a kliens gépen, megnyitja az oldalad
kliens > apache szerver > php lefut > html generál > apache válasz kimegy > kliens megjeleníti- humanoid elküld receptet
kliens gépen form submit (gomb, js, akármi) > apache szerver > php feldolgozó motor > db szerver megkapja > sikeres válasz a php-nek > ha kész minden válasz generálása html kódra > apache szerver elküldi a kliensnek > megjelenik a kliensnélössze vissza beszél mi dolgoz fel mit, és nem érted, mit hol kell megoldani. mintha az asszony szerelne autót úgy, hogy ha azt mondom csőkulcs akkor felakad a szeme, és a kalapácsra néz
-
pelyib
tag
válasz
lanszelot #21744 üzenetére
Hat pedig JS nelkul ujra fog tolteni az oldal.
AJAX onmagaban nem mondja meg, h mit hasznalj.
"Ajax is not a technology, but rather a programming concept."
Az Ajax (Asynchronous JavaScript and XML) interaktív webalkalmazások létrehozására szolgáló webfejlesztési technika. Segítségével a weblap kis mennyiségű adatot cserél a szerverrel a háttérben, így a lapot nem kell újratölteni minden egyes alkalommal, amikor a felhasználó módosít valamit. Ez növeli a honlap interaktivitását, sebességét és használhatóságát.
[link]
erdekes lehet ez is: [link]
angol wikin pl mindkettovel van pelda: [link]urandom0 szepen leirta, hogy mikent mukodik egy ilyen megoldas itt: [link]
meg annyit tennek hozza, h ezt nezd meg es olvasgass utana: on_submit: [link] -
lanszelot
addikt
válasz
pelyib #21743 üzenetére
Mivel php, így nem teszem off -ba: /bár js is, és sql is, de a php oldal újratöltéséről van szó/
Nagyon szépen köszönöm a választ.
"Ember -[eger / bill segitsegevel]-> Bongeszo -> JS -[HTTP keresek]-> webszerver -> PHP -> db"
- nekem JS nélkül van. Html + php + sql. Php post vagy get és submit berakja adatbázisba, kész.
Mivel nincs JS , így nem is tudom hova kellene, és mit kellene csinálnia.Ajax-hoz nem kell Fetch. Van ajax vagy fetch (xmljttp -t nem tudom).
Legalábbis én így tanultam. -
pelyib
tag
válasz
lanszelot #21742 üzenetére
Ember -[eger / bill segitsegevel]-> Bongeszo -> JS -[HTTP keresek]-> webszerver -> PHP -> db
Ebben az egesz folyamatban altalaban 2 db szamitogep vesz reszt(nagyon leegyszerusitve), az ugynevezett kliens (bongeszo + JS) es a szerver (webszerver, PHP, DB), most tekintsunk el attol az esettol amikor a ketto komponens ugyan azon a gepen fut.Most hogy tisztaba raktunk az alapokat.
"php elküldi a formot valahova." a php NEM kuld semmit ilyenkor, a bongeszo vagy a JS teszi ezt a kliens oldalon, ezt a kerest a webszerver fogadja es adja tovabb a PHPnak.
"JS ben ajax/fetch sem értem." => ketfelekeppen tudsz adatot beszerezni a szervertol, linkek megnyitasaval (amikor a cimsorba beirsz valamit, vagy egy linkre klikkelsz es a bongeszo teszi ezt meg neked) vagy JS segitsegel. A JS el tud inditani egy kerest a "hatterben" anelkul hogy elnavigalna az aktualis oldalrol, ezt hivjak AJAX-nak, ehhez kell hasznalni a Fetch-t vagy azXMLHttpRequest-t. Es mivel JSrol van szo igy a szervertol kapott valaszt fel is tudja dolgozni es a meglevo oldalt a bongeszoben tudja manipulalni, avagy a valaszt beilleszteni.
-
lanszelot
addikt
válasz
urandom0 #21741 üzenetére
Köszönöm szépen a választ.
Ez nekem magas.
Azt se tudtam hogy a php elküldi a formot valahova.
Azt hittem berakja az adatbázisban.
Nem jelszó.
A recept adatai. De az adatokat nem egyszerre viszi be az sql adatbázisba hanem sok submit gombbal készül el egy recept.Ezt megint sufni tuningolnom kell.
JS ben ajax/fetch sem értem. Tudom használni, de nem értem.
Php elküldi - tehát ezt sem értem.Mielőtt jönne, hogy mert meg kellett volna tanulni... Ajax/fetch magán tanárt fizettem 4 éve, de nem tudtam megérteni.
Api-hoz tudom használni és itt kifújt. -
válasz
lanszelot #21740 üzenetére
Amikor a formban a submit gombra kattintanak, akkor ne küldje el az formot, hanem fusson le egy Javascript, ami összegyűjti a formban megadott adatokat, és elküldi a szervernek (egy PHP fájlnak), majd miután visszakapta a választ, feldolgozza. Mondjuk, ha egy login formról van szó, és hibás a megadott jelszó, akkor a visszakapott válaszban valahogy jelezni kell, hogy rossz a jelszó, a Javascriptnek pedig a feldolgozás során ezt ki kell íratnia a felhasználónak.
-
-
-
lanszelot
addikt
Hello,
Hogyan tudok submit form -ot úgy, hogy ne töltse újra az oldalt? (jquery nélkül) -
-
lanszelot
addikt
válasz
lanszelot #21732 üzenetére
Ma reggel elindítottam a gépet és most működik.
Tegnap órákat csesztem el rá, hogy mi a gond és igazából semmi.Mivel tegnap nem indítottam újra a gépet, ma pedig semmit se csináltam, gondolom rendszer hiba volt.
Chrome bugolhatott be?
Vagy ez mi volt?
Még sose történt ilyen. -
lanszelot
addikt
Hello,
Szerintem itt a php csinál valamit, ami miatt nem jó értéket ad vissza.- JS pakolja be egy táblázatba az értékeket /number/.
Az értékek benne vannak.
Majd form input/number -el adok egy számot amivel meg kellene szoroznom a táblázatban levő értéket/ Van egy class adva ezeknek a td elemeknek
querySelectorAll -al kikérem a class-t, kapok egy tömböt.
Consol log-al megnézve, ott a tömb, tömbböt lenyitva innerHTML és InnerText alatt ott az érték.
Egy dologgal van baj:
Ha a tömb -höz hozzá írom, hogy ".innerHTML" vagy ".innerText" az érték : undefinied.Miért?
let tomb = document.querySelectorAll(".osztalyKikeres");
for (let index = 0; index < tomb.length; index++) {
tomb[index].innerHTML;//undefinied -et ad vissza
tomb[index].innerText;//undefinied -et ad vissza
console.log(tomb[index]);//ebben ott van az érték innerHTML és innerText -nél is
} -
lanszelot
addikt
válasz
urandom0 #21730 üzenetére
Nagyon szépen köszönöm a választ
Működik
De pár dolog után utána kell néznem miért és hogyan.
Lesz mit tanulni
sqlite_master-ra keresve találtam egy sqlite tutoriat [link]
Amiben pl az sqlite rendszer táblák is benne vaannak, és más sqlite specifikus dolgok.
SQL -ben még pl nem olvastam még a vacuum -ról -
válasz
lanszelot #21729 üzenetére
Az SQLite adatbázisban egy tábla létezésének ellenőrzéséhez használhatod a sqlite_master táblát, amely az adatbázis sémáját tartalmazza. A sqlite_master tábla tartalmazza az összes tábla, nézet, index és trigger információit. Az alábbiakban bemutatom, hogyan tudod PHP-ban leellenőrizni, hogy egy bizonyos tábla létezik-e.
1. Nyisd meg az adatbázist egy PDO objektum segítségével.
2. Futtass egy SQL lekérdezést a sqlite_master táblán.
3. Ellenőrizd, hogy a lekérdezés visszaad-e bármilyen eredményt.Íme egy példakód:
<?php
try {
// Kapcsolódás az adatbázishoz
$pdo = new PDO("sqlite:receptekdb.sqlite");
// A tábla neve, amit ellenőrizni szeretnél
$tableName = 'table_name';
// SQL lekérdezés a sqlite_master táblán
$stmt = $pdo->prepare("SELECT name FROM sqlite_master WHERE type='table' AND name=:table");
$stmt->bindParam(':table', $tableName);
$stmt->execute();
// Ellenőrzés, hogy van-e eredmény
if ($stmt->fetch()) {
echo "A(z) '$tableName' tábla létezik.";
} else {
echo "A(z) '$tableName' tábla nem létezik.";
}
} catch (PDOException $e) {
// Hibakezelés
echo "Hiba: " . $e->getMessage();
}
?>Ebben a kódban a következő dolgok történnek:
1. Létrehozol egy új PDO objektumot, hogy kapcsolódj az SQLite adatbázishoz.
2. A sqlite_master táblából lekérdezed, hogy létezik-e a keresett tábla.
3. A lekérdezés eredménye alapján eldöntöd, hogy a tábla létezik-e vagy sem.ChatGPT volt, nem én...
-
lanszelot
addikt
Hello,
(sqlite) php -ban hogy tudom leellenőrizni, hogy egy bizonyos tábla létezik e?$pdo = new PDO("sqlite:receptekdb.sqlite");
ki van kérve az adatbázis, de ezután fogalmam sincs -
-
lanszelot
addikt
válasz
urandom0 #21722 üzenetére
Pontosan azért csináltam így mert string kellett
Minden esetben string ként szeretném használni.
Ezt főleg a html-be kiratáshoz használnámidTomb -ben az összes id van. Azért lett az a neve
Most épp az utolsóra van szükségem belőle.
id alapján sohase fogok semmit lemérni.
Az a táblákat kapcsolja össze a névvel. Ennyire kell csak az id.Első adatbázisom, biztos rengeteg mindent lehet egyszerűbben, de most még ez is fejtörést okoz.
Függvényt se tudok még használni, nem tudom hogy kell sql-el. -
Én lekérdezném a MAX() id-t.
-
-
biker
nagyúr
válasz
lanszelot #21721 üzenetére
Teljesen jó! Mármint tökéletes, hogy mindig a lehető legkevesebb információt küldd át, így biztosan senki nem fogja tudni, hogy mi van a $idTomb -ben? biztosan tömbb-e mert akkor lehet megszámolni az elemeit, és azt sem fogjuk érteni, miért számolod meg az elemeit, ha ettől függetlenül feldolgozod tömbként?
Az hogy amúgy se jó, más kérdés. -
válasz
lanszelot #21721 üzenetére
Öööö, szerintem ez így nem jó. Az implode a tömb elemeiből egy stringet képez. Ha pl. van egy ilyen tömböd, hogy [1, 2, 3, 4, 5], az implode ebből ezt csinálja: "12345".
Biztos, hogy erre van szükséged?
Kerüld a kevert nyelvű változónevek használatát! Ha lehet, maradj az angolnál, de ha mégis magyar nyelvű válltozókat szeretnék, akkor legyen minden magyar, tehát ne $tombLength hanem $tombHossz.
-
-
válasz
lanszelot #21719 üzenetére
SELECT- el szeretném kikérni, csak nem sikerül.
Azt a php oldalt szoktam olvasni, de egy árva szavacskát se értek onnan.Én most nem tudom elmagyarázni, de ezt a példát ha megnézegeted, szerintem érteni fogod:
$db = new SQLite3('auth.sqlite');
$sql = "SELECT user_id, username, opt_status FROM tbl_user";
$result = $db->query($sql);
$row = array();
$i = 0;
while($res = $result->fetchArray(SQLITE3_ASSOC)){
if(!isset($res['user_id'])) continue;
$row[$i]['user_id'] = $res['user_id'];
$row[$i]['username'] = $res['username'];
$row[$i]['opt_status'] = $res['opt_status'];
$i++;
}
print_r($row);Sqlite: azt írtátok az 1 file és ezért könnyű biztonsági mentést csinálni.
Ez mondjuk igaz.
2 teljesen készt már eldobtam.
Akkor ez lesz a 3ik...Ha egyszer megírtad SQLite-hoz, onnantól nem nehéz átírni MySQL-hez. Nem kell eldobnod az egészet.
Akár a Copilot is átírja neked 2 perc alatt, ha szépen kéred...Fogalmam sincs támogatja e. Azt hittem ez alapból benne van a php-ban. Mert erről volt szó.
Igen, igen, csak ugye engedélyezni kell az .ini fájlban, és ha alapból nincs engedélyezve, akkor te azt nem tudod megcsinálni az ingyenes tárhelyen.
-
lanszelot
addikt
válasz
urandom0 #21718 üzenetére
Igen, bekerül minden. Bevitellel nincs gond.
dbbrowserral szoktam nézni.SELECT- el szeretném kikérni, csak nem sikerül.
Azt a php oldalt szoktam olvasni, de egy árva szavacskát se értek onnan.Sqlite: azt írtátok az 1 file és ezért könnyű biztonsági mentést csinálni.
Nem értek hozzá. E miatt választottam csak.Szép ha át kell váltanom, mert a beviteli teljesen kész.
Kikérés van még.
2 teljesen készt már eldobtam.
Akkor ez lesz a 3ik...
Fogalmam sincs támogatja e. Azt hittem ez alapból benne van a php-ban. Mert erről volt szó. -
válasz
lanszelot #21717 üzenetére
3. Első körben azt kéne megnézni, hogy bekerül-e egyáltalán az adatbázisba az adat. Nincs valami programod, DB Browser vagy valami, amivel meg tudod nyitni az SQLite fájlodat?
Egy SELECT * FROM receptek típusú lekérdezésnek is vissza kell adnia az összes adatot, ami a táblában van.
A hiba egyébként szerintem ott lesz, hogy nem fetcheled ki az adatokat a visszakapott változóból.
Mert pl. ez, amit korábban írtál, nem működik:
$receptekData->query("SELECT * FROM 'receptek'");
$id = $receptekData->lastInsertRowID();
echo ($id);Azért nem működik, mert a
lastInsertRowID()
a legutolsó INSERT-tel beszúrt adat Id-ját adja vissza (azt is csak addig, amíg él az adatbáziskapcsolat).
De ha SELECT-et használsz, akkor neked fetchelned kell a visszakapott adatokat, pl. a fetchArray() metódussal: https://www.php.net/manual/en/sqlite3result.fetcharray.phpOlyan mintha php alatt senki se kezelne sql-t.
Pedig nagyon sok PHP-s SQL tutorial van. De egyébként én MySQL-t ajánlottam neked, csak valaki áttérített SQLite-ra, de azt megnézted, hogy azon a tárhelyen, amin futtatni fogod az appod, lehet-e egyáltalán SQLite-ot használni? Mert a MySQL szinte mindenhol támogatott, SQLite-ban viszont egyáltalán nem vagyok biztos.
-
lanszelot
addikt
válasz
urandom0 #21716 üzenetére
Először is köszönöm szépen a segítséget mindenkinek.
1- csak 1 id és 1 név kerül be. Sose lehet 2.
Nincs sohase több hozzáadás2 - igen, jogos, csak a 2ik if-et jóval később írtam, így nem figyeltem, hogy folytathatom is
3 - az a baj, hogy semmit se tudok kikérni.
Nem működik amiket találok, vagy ahogy magamtól próbálom
Nevet szeretném kikérni, és az alapján az id-t, de nem tudom hogy kell. Az utolsó id-t se tudom hogy kell kikérni .
Semmit se találok a kikérésről ami működne is.
lastInsertRowid() ezt is másoltam, nem elírtam. Honnan tudhattam, hogy hibás...
Olyan mintha php alatt senki se kezelne sql-t.4 nekem ez se jött le, hogy az példa. Azt hittem a max értékek.
-
válasz
lanszelot #21710 üzenetére
1. Én ezeket a sorokat előre tenném, ugyanígy try..catch blokkba, csak egy másikba:
//file create or open if exist
$receptekData = new SQLite3("receptekdb.sqlite", SQLITE3_OPEN_CREATE | SQLITE3_OPEN_READWRITE);
//error handling
$receptekData->enableExceptions(true);
$receptekData->query(
"CREATE TABLE IF NOT EXISTS 'receptek' (
id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
nev VARCHAR(100) NOT NULL
)"
);Mert ezek ugye kapcsolódnak az adatbázishoz, beállítják a kivételkezelést, és elkészítik a táblát, igazából ezeknek szerintem logikailag nincs közük ahhoz, amit te a feltételben vizsgálsz. Az egy másik történet.
Arról is nem is beszélve, hogy ha később szeretnél írni még egy INSERTET vagy bármit, akkor a $receptekData változódat, ami az SQLite kapcsolatot tárolja, nem fogod tudni elérni.2.
isset($_POST["submitNev"])
!empty($_POST["nev"])
A két feltételt én egybekötném ÉS-sel.
3. A lastInsertRowid-t én nem használnám. Egyetlen egyszer próbáltam használni PDO-nál MYSQL adatbázisnál (PDO::lastInsertId), akkor sem jött össze.
De ha használod, akkor olvasd el ezen az oldalon az első néhány commentet, ott azt írják, hogy ha tranzakciókat használsz (te pedig azokat használsz), akkor a COMMIT elé kell tenni a lastInsertRowid-t. Tehát próbáld meg így:$receptekData->exec('BEGIN');
$receptekData->query("INSERT INTO 'receptek' (nev) VALUES ('$nev')");
$id = $receptekData->lastInsertRowid(); //ennek az értéke nulla, pedig nem annyi
$receptekData->exec('COMMIT');"3.1.1 ott írják az sqlite oldalán a táblázatban."
Az csak egy example, egy példa
Az SQL és az SQLite saját SQL implementációja közti megfeleltetésekről.
De ott is írják, hogy "Note that numeric arguments in parentheses that following the type name (ex: "VARCHAR(255)") are ignored by SQLite - SQLite does not impose any length restrictions (other than the large global SQLITE_MAX_LENGTH limit) on the length of strings, BLOBs or numeric values."----------
Ha túl hosszú a kódod, szedd szét logikailag különálló fájlokra.
-
lanszelot
addikt
válasz
urandom0 #21709 üzenetére
<?php
$id = null;
if (isset($_POST["submitNev"])) {
if (!empty($_POST["nev"])) {
try {
$nev = $_POST["nev"];
//file create or open if exist
$receptekData = new SQLite3("receptekdb.sqlite", SQLITE3_OPEN_CREATE | SQLITE3_OPEN_READWRITE);
//error handling
$receptekData->enableExceptions(true);
//create table if not exist
$receptekData->query(
"CREATE TABLE IF NOT EXISTS 'receptek' (
id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
nev VARCHAR(100) NOT NULL
)"
);
$receptekData->exec('BEGIN');
$receptekData->query("INSERT INTO 'receptek' (nev) VALUES ('$nev')");
$receptekData->exec('COMMIT');
$id = $receptekData->lastInsertRowid(); //ennek az értéke nulla, pedig nem annyi
$receptekData->close();
} catch (Exception $e) {
echo $e->getMessage();
}
} else {
echo "Kötelező kitölteni";
};
}
echo ($id); //enek az értéke NULL- [link] 3.1.1 ott írják az sqlite oldalán a táblázatban.
-
válasz
lanszelot #21707 üzenetére
Hosszú kódot fel tudsz tenni mondjuk Pastebin-re, és annak a linkjét be tudod ide rakni. Ha nem is kell feltétlenül az egész, legalább a hibás függvényt mutasd meg.
Ugyanis null az id érték mindenhol, nem az amit az if-en belül kap.
Tehát nem jön ki az érték.Az ilyen leírások alapján nem nagyon értjük, mint szeretnél pontosan, legalábbis én nem.
-
válasz
lanszelot #21706 üzenetére
Hol írják a VARCHAR-t 255-nek? Korábban belinkeltem neked az SQLite doksiját: https://www.sqlite.org/limits.html
Nem nézted meg... pedig ott van benne:Maximum length of a string or BLOB
The maximum number of bytes in a string or BLOB in SQLite is defined by the preprocessor macro SQLITE_MAX_LENGTH. The default value of this macro is 1 billion (1 thousand million or 1,000,000,000). -
lanszelot
addikt
válasz
urandom0 #21705 üzenetére
Huhh, a teljes kód jelenleg félig sincs kész, de 500 soros.
Nagyon hosszú lenne.
Nem gond, mert működik, majd utána olvasgatok, hogy mi a különbség.Más:
Hogyan lehet tárolni a sok karakteres leírásokat?
5-10 ezer karakter kellene, ahhoz képest a 255 nagyon kevés.Vagy erre van valami módszer darabolni és össze fűzetni kiolvasásokr?
Ummm, a leírásokban varchar max 255 szerepel.
Most bedobtam egy hasraütés számot, és 65535 -ig engedte.
Akkor miért írják 255 -nek? -
-
válasz
lanszelot #21702 üzenetére
Annak, hogy
empty($_POST['toltelek_mertekegyseg'])
, igaznak kell lennie abban az esetben, ha value="".Tehát ha írsz valami ilyesmit:
if (empty($_POST['toltelek_mertekegyseg'])) {
echo 'ez igaz';
}Akkor ki kell írja, hogy ez igaz. Itt van a PHP igazságtáblázat, ebben látszik, hogy az üres string ("") empty-vel vizsgálva igazat ad vissza, tehát empty("") == true.
2. Mutasd a kódod, mit írtál pontosan!
-
válasz
lanszelot #21699 üzenetére
2.
If-nél és try-nél is van scope.
try {
$id = $receptekData->lastInsertRowid();
// $id elérhető itt
} catch (Exception $e) {
// $id itt nem elérhető
}
// $id itt nem elérhetőDefiniáld az $id-t a try előtt:
$id = null; // Változó előzetes deklarálása
try {
$id = $receptekData->lastInsertRowid();
} catch (Exception $e) {
// Hibakezelés
}
// $id itt már elérhető lesz
Új hozzászólás Aktív témák
Hirdetés
- Kingston FURY Beast DDR5 16GB 5600MT/s DDR5 CL36 DIMM INGYEN FOXPOST
- Kingston FURY Beast DDR5 16GB 1x16GB 6000MT/s DDR5 CL36 DIMM INGYEN FOXPOST
- DDR5 Hibás ramok eladók ha egyben viszed INGYEN FOXPOST+Olcsóbb
- Kingston FURY Beast DDR5 RGB 32GB (2x16GB) 6000MT/s DDR5 CL36 INGYEN FOXPOST
- Corsair Vengeance RGB Pro 32GB (1x32GB) DDR4 3600 (PC4-28800) C18 INGYEN FOXPOST
- iRobot Roomba i7+ eladó minden tartozékával plusz kiegészítőkkel eladó!
- 8. Gen Lenovo notebook//i5-8250u//8GB DDR4//UHD Graphics 620//256GB M.2 SSD//Win 11//FullHD//
- Gyári AMD Wraith Stealth Ryzen AM4 CPU hűtőventillátor cooler hűtő
- 8. Gen Lenovo notebook//i5-8250u//8GB DDR4//UHD Graphics 620//256GB M.2 SSD//Win 11//FullHD//
- Noctua NH-C14S
- BESZÁMÍTÁS! MSI B365M i5 8600 16GB DDR4 512GB SSD RX 5700XT 8GB CM MASTERBOX Q300L Zalman 600W
- A Panasonic Toughbook CF-54 i5-5300u i5-6300u TN, IPS touch Budapest, MPL Foxpost
- ÁRGARANCIA!Épített KomPhone Ryzen 9 5900X 16/32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- Azonnali A320 B350 X370 B450 X470 A520 B550 X570 chipset alaplap felvásárlás személyes/csomagküldés
- Bomba ár! HP Elitebook 850 G6 - i5-8GEN I 8GB I 256GB SSD I 15,6" FULLHD I Cam I W11 I Gari!
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest