- D1Rect: Nagy "hülyétkapokazapróktól" topik
- sziku69: Fűzzük össze a szavakat :)
- Elektromos rásegítésű kerékpárok
- #95904256: Socket370 / 3DMark2001
- Luck Dragon: Asszociációs játék. :)
- eBay-es kütyük kis pénzért
- Parci: Milyen mosógépet vegyek?
- Fire/SOUL/CD: INGYENES Clone és Backup-Restore alkalmazások tesztje [2024]
- btz: Internet fejlesztés országosan!
- Tomasz72: Ventilátor upgrade
Új hozzászólás Aktív témák
-
válasz
sztanozs #20399 üzenetére
Azért szenvedek, mert a tartalmi részeket ezzel szerkesztem és van adminisztratív dolgunk is (pl. levél írása) ahol ez van berakva.
Egyébként CKEditor 4.8
Azt szeretném, ha nem is kellene ezzel foglalkozni. Tehát, módosításkor egy szó végére kattintok, beszúrok plusz egy szóközt és gépelem a szöveget (nem marad dupla szóköz), ilyenkor a szövegszerkesztő ne szúrja be a nem törhető szóközt.
Azért gáz, mert sokszor szétesik a tartalom, ha ilyen szóköz marad benne, viszont mivel nem statikus oldalakat szerkesztek, nincs arra idő, hogy másolgassam a kész anyagot. Ráadásul nem is kódolva nézem, hanem mint szövegszerkesztő használom. Kolléganőim szintén, akik meg végképp nem tudják mi az a forráskód...
-
sztanozs
veterán
válasz
TigerCat #20398 üzenetére
miért szenvedsz vele? (nbsp - non-breakable space, MS Wordben is tudsz ilyet, asszem Shift+Ctrl+Space)
Milyen szövegszerkesztő modult használsz (vagy melyik framework beépített szövegszerkesztője ez)?Amúgy ez nem PHP probléma, hanem javascript (felhasználói oldalon fut)...
-
Sziasztok!
Először is bocsánat a láma kérdésért, de nem foglalkozom programozással, inkább felhasználói gondom van.
Weboldalon a beépített szövegszerkesztőben állandóan a kóddal szenvedek. Ha belejavítok a szövegbe, vagy kiegészítem, nagy eséllyel ez is belekerül sajnos.
Mit lehetne tenni, hogy ne kelljen átnéznem a forráskódot emiatt? Esetleg milyen szövegszerkesztőt javasoltok, amit be tudok rakatni az oldalba és ez a dolog nem jelentkezik?
Köszi!
-
-
disy68
aktív tag
A programkód meg a megjelenített adat az más dolog. A programkódnak van egy fix szintaxisa. Php alatt a single és double quoute nem ugyanazt jelenti (ahogy sok más programnyelvnél sem).
A single quote között lévő szöveget a php értelmező 'as is' kezeli, míg a double quote közötti szöveget interpolálja, azaz, ha tartalmaz változót escape-elt karaktert, akkor azt előbb feloldja és annak az eredménye lesz a tényleges szöveg.
pl.$something = 'kiskutya';
$text = 'this is {$something}';
echo $text --> this is {$something}
vs.
$something = 'kiskutya';
$text = "this is {$something}";
echo $text --> this is kiskutya
Szövegben pedig bármi lehet, amit az adott karakterkódolás megenged. Itt van néhány unicode idézőjel lehetőség.
-
-
coco2
őstag
Amikor a kimeneti stinget adod, akár bináris karakter sorozatot kiküldhetsz. Utf-8 stringből azt küldesz ki, amit csak akarsz. Írhatsz alulra kerülő idézőjelet, ha az a kedvenced. Workaround gyanánt az a lehetőséged biztosan adott.
Hogy css automatán átformázza-e, arra a részre nem reagálnék - én magam sosem találkoztam azzal a problémával.
-
Na, ez speciel egy olyan dolog volt, amire nem is gondoltam, tehát respect
Viszont a kérdésem továbbra is adott. Hiszen, attól, hogy PHP-t írsz, a betöltött oldalad egy már lefutott kód lesz, ami HTML formában jelenik meg. A kérdésem inkább vonatkozott arra, hogy CSS-ben tudok-e olyan paramétert beállítani, amitől alulra kerül az idézőjel?
-
Sziasztok!
PHP-ban nem egyszerű az idézőjelek használata, főleg, ha tele van
include
-okkal$example = "";
kitöltéssel. Én személy szerint leginkább aposztrofot használok helyette, azzal nem akad össze.Viszont! Akad olyan felület (Pl: Libre Office), ahol a megjelenített idézőjelek kezdő tagja - mint ahogyan írjuk papíron is - alulra kerül, nem pedig felülre. Ez valahogyan kivitelezhető PHP-ban?
-
coco2
őstag
Van valakinek a keze alatt apache szerver "normál" üzemben haproxy tls terminátor mögött? Rewrite rule-okat keresgélek rá, hogyan lesz a kívülről érkező "https:"-ből "http:" mire az apache-hoz érkezik.
-
disy68
aktív tag
válasz
RedHarlow #20386 üzenetére
Szerintem téged a prepared statement-ek érdekelnek. Manapság az összes ismert adatbáziskezelő támogatja.
Előnyei lehetnek, hogy az adatbázis kiértékeli előre a lekérdezést, amihez paramétereket kötve lehet futtatni. A kiértékelt lekérdezést tudják cache-elni a driverek per kapcsolat és a további lekérdezéseket nem kell újra kiértékelni csak paraméterezni és futtatni, ami növeli a sebességet. További előnye, hogy véd a tipikus sql injection támadások ellen is.
A további részleteket az adott adatbáziskezelő dokumentációiban illetve az használt nyelvhez elérhető driver dokumentációjában lehet megtalálni.
-
RedHarlow
aktív tag
Sziasztok,
SQL-ben lévő változó értékét, hogy tudom php-ben módosítani? Arról van szó, hogy ha jól tudom az oracle ha megjegyzi az adott query-t legközelebb gyorsan le fog futni de mivel nekem szükséges lenne a hónapokat állíthatóra tenni így mindig újként érzékelné, azonban ha jól gondolom egy változó lenne benne a dátum akkor mindig az alap terv szerint futna le, ezt a változót viszont módosítanom kellene valahogy php-vel? Tudtok ebben segíteni, hogy ez hogy is néz ki? Van e egyáltalán ilyen? Esetleg egy link is elég, ahol erről bővebben olvashatok.
Előre is köszönöm a segítséget. -
biker
nagyúr
SOHA
NEM
FUTTATUNK
LEKÉRDEZÉST
SZŰRETLEN
ADATOKKALennyi...
-
pigmeus
tag
válasz
pigmeus #20314 üzenetére
végül a keresést funkciót is elég egyszerűen sikerült megoldani....
$sql = new Sql();
$search = $_POST["search"];
$result = $sql->searchProducts($search);
if(!empty($result)){
foreach ($result as $row) {
$id = $row["id"];
$termeknev = $row["nev"];
$termekar = $row["ar"];
$termekkep = $row["kep"];
$cikkszam = $row["cikkszam"];
$keszlet = $row["keszlet"];
echo "--------------------------
function searchProducts($search){
$dbCon = parent::connect();
$stmt = $dbCon->prepare("SELECT * FROM termekek WHERE nev LIKE '%$search%' ");
$stmt->execute();
$result = $stmt->fetchAll();
return $result;
} -
pigmeus
tag
Egy olyan problémám lenne, hogy készítettem egy sort funkciót, de valamiért a már korábban feltöltött adatokat nem sortol-ja helyesen. Bár most ahogy nézem az új felviteleket jól mutatja.
Esetleg volt valakinek hasonló gondja? Hogy érdemes ezt felépíteni?
<?php
if (isset($_GET['katid'])) {
$katid = $_GET['katid'];
$result = $sql->getCategoryById($katid);
} elseif (isset($_GET['sort'])) {
$sort = $_GET['sort'];
switch ($sort) {
case'price_asc':
$result = $sql->getProductsAsc();
break;
case'price_desc':
$result = $sql->getProductsDesc();
break;
}
} else {
$result = $sql->getProducts();
}
foreach ($result as $row) {
$id = $row["id"];
$termeknev = $row["nev"];
$termekar = $row["ar"];
$termekkep = $row["kep"];
echo "
---------------------------------------------------------
public function getProductsAsc(){
$dbCon = parent::connect();
$stmt = $dbCon->prepare("SELECT * FROM termekek ORDER BY ar ASC");
$stmt->execute();
$termekek = $stmt->fetchAll();
return $termekek;
}
public function getProductsDesc(){
$dbCon = parent::connect();
$stmt = $dbCon->prepare("SELECT * FROM termekek ORDER BY ar DESC");
$stmt->execute();
$termekek = $stmt->fetchAll();
return $termekek;
} -
Win 10 van gyárilag a Laptopon, ahhoz nem szoktam hozzányúlni. A benne lévő 2. számú vinyón van a Linux, leginkább azt babrálom, csak játszani kapcsolom be a Win-t. Viszont tegnap este valamit g*cizett a Linux, ezért csak-csak kipróbáltam ezt a XAMPP-ot Win10 alól. Végülis működik, annyira itt már nem bonyolult a Localhost, mint volt pár évvel ezelőtt, mikor próbálkoztam vele.
Szóval, szerintem maradhat. Csak azt nem tudom, hogy ha nekem csak a htdocs mappája kell, mert abból csinál Localhost-ot és azon belül van a saját mappám, vajon minden mást, ami számomra ott felesleges, kidobhatok a kukába? -
-
coco2
őstag
Mostanában építettem dev szervert, szóval képben vagyok az apache-ról. Az ssl-el én is megszenvedtem kicsit. Normálisan csak cert bottal szed le ssl-t, a cert botot meg utólag el kell távolítani, mert egy privát package repot is behúz az install források közé, ahonnét nem túl bizalomgerjesztő dolgok jönnek utána. Szóval ja, kicsit macera, ha az ember le nem dokumentálja alaposan első alkalommal, hogy utána biztos észben tudja tartani. Éppen ránéztem a jegyzeteimre, kb 100 sornyi csak az apache rész az ssl leírása nélkül, de a PPA tisztítással (az ssl certbot használata rendesen dokumentálva van netes blogban). A magam részéről végigszenvedtem, és ledokumentáltam mindent. És én nem 15 éve vagyok linuxos, hanem jó közelítéssel 15 évig nem sokat voltam linuxon (leszámítva az elektronikai fejlesztéseket és a user driverek írását). De ezek a reflexek valahogy a 15 évet is túlélték. Hogy te mibe tudtál beleakadni, azt perpillanat elképzelni se nagyon tudom.
De ha kényelmes cuccot akarsz, tényleg inkább egy win-t rakj fel, és rakd be alá a wampot. Ha offline lesz a gép, akkor nem tudja net felől támadás érni, és úgy semmi baja nincs a win 7-nek sem. Vagy ha driver problémákba akadtál, üsse kavics, rakj fel win 10 home-ot. Ha nem tud lehúzni semmi update-et, mert nincs neten a gép, akkor nem fog tönkremenni a saját ostobaságától. Teljesen offline talán még a win 10 home is stabil tud maradni (nem tudom, nem próbáltam, de valószínűleg működőképes marad).
-
coco2
őstag
válasz
instantwater #20368 üzenetére
Te valami fene mód szeretsz partizánkodni az NginX-re, de én akkor sem fogadom el. Ha éppen érdekel, az okát is elárulom.
Játszottam oroszokkal neten. WoW. Onnét ismerem őket, meg a mentalitásukat. 1 év játék után már volt 2 karimon is legendary cucc. Egyszer csak lépnék be, nem stimmel a jelszó. Próbálom resetelni, nem stimmel az email. Írok adminnak, vissza se válaszolt. Ez volt 2016-ban a wowcircle wotlk x100 szerverén. Csináltam új accot, mentem vissza kicsi karival kérdezősködni, mi a roseb? Na oroszéknál az a szokás, hogy ad 1. Xenofóbok, ad 2. az erkölcsi érzékük még a mínusz 5ezret is alulról veri. Az én jelszómat konkrétan eladták pénzért. Valamelyik admin volt. Gyaníthatóan jót röhögtek rajta. Meg hogy hü**e külföldiek eridjetek a pi**ába. Olyanok ők, amikor "lazák". És oké, hogy csak játék, meg ingyenes, és senkinek semmit nem ígértek, de hát mégis miféle dolog az? Így vagy úgy de pénzt csinálnak mindenkiből mert ha nem akkor nyasgem?
Az NginX-et egy orosz fejleszti. Annyi backdoor lehet benne, mint egy hangyabolyon sem. Bármit fejlesztesz üzleti célra, ha megnő a cuccod, vagy megveszed a fizetős NginX-et, ami kb aranyárban van, vagy szervezett aukciókon fognak hátsó ajtót eladni az alkalmazásodhoz a legtöbbet licitálónak.
Ha éppen szeretsz ge*i feelingelni, akkor értem én, hogy reklámozod, mert bár nem túl szociális dolog, de hát látott már ez a világ kevésbé erkölcsös szórakozást is. Viszont legalább azért teszed? Vagy pusztán naivitásból? Mert ezen az egy kérdésen tényleg vakarom a buksit.
-
coco2
őstag
válasz
pelyib #20367 üzenetére
Ez itt a megjelenés dátuma szerint csak 16 éves
Egyébként meg mindegy, hány éves. Az oop php-t kezdetben szokni kell annak, aki html-be beinjektált php-t látott csak életében. Mert azok meg még régebbi példák. Hozzá kell szokni, hogy valakinek legyen önbizalma félrerakni a mankókat, és normálisan építsen alkalmazás szerkezetet. És tudod mit? Pont ahhoz a régebbi könyvek a jobbak, nem az újak.
-
-
válasz
instantwater #20370 üzenetére
Köszönöm, szerintem innen megleszek vele. Ha nem, úgyis jelentkezek még
-
-
válasz
instantwater #20366 üzenetére
Értem. Nem akarok listázást, csak futtatni akarom a kódjaimat gépen, mielőtt feltenném a netre.
Lényegében egy ehhez hasonlót keresek, csak PHP kompatibiliset és Net függetlent. Az számomra mindegy, hogy a megjelenítő programban dolgozok-e, vagy sem, én Visual Studio Code-hoz vagyok szokva, ha pötyögni kell -
-
pelyib
tag
Esetleg ezt: PHP The right way
"php 24 ora alatt" szerintem tobbet art mint hasznal, 20 eves konyv.
-
-
válasz
instantwater #20363 üzenetére
Offline alatt azt értem, hogy ne akarjon netre mászni. Jelenleg a MediaCenter Tárhely Commander-ét használom, de az is rémálom, mert ha változtatsz egy CSS fájlon, az percekbe is beletelik, mire hajlandó megjelenni. Ezért kell olyan, ami a PC-n fut és nem pedig neten. Hogy azonnali legyen a változás.
-
-
-
coco2
őstag
Php alatt kimegy:
-mysqli_connect() OK,
-mysqli_set_charset() OK,
-mysqli_query() return boolean false-mysqli_errno() == 0
-mysqli_error() == ""Létezik valahonnét extra hibaüzenetet beszerezni? Ha nem stimmel valahol valami, csak illene róla visszajelzést kapnom
-
coco2
őstag
Ha Windows-hoz vagy szokva, a Linuxra önmagában a rémálom. Mindegy mi, szöszölni kell mindennel.
Kicsi teljesítményre Windows alatt van egyszerű cucc. Mint például ez. Install, next, next, next, és készen vagy. A config-ot persze beállítod. Nagy teljesítményre nem lesz alkalmas.
Nagy teljesítményre Linux alatt van licence díj mentes cucc, viszont a rendszergazdát fizetni fogod - vagy te edződsz hozzá a kihíváshoz. Én az Apache-ot javasolnám.
-
válasz
instantwater #20359 üzenetére
Köszönöm szépen, utána nézek.
Eddig javasolták nekem az Apache Server-t, de az egy rémálom... -
-
Sziasztok!
Programajánlást szeretnék kérni Offline PHP szerverhez, Windows-ra vagy Linuxra. Aki tud ilyet, megbízhatót és hibátlan működésűt, az kérem jelezze.
Köszönöm
-
Taci
addikt
válasz
instantwater #20355 üzenetére
Nem, dehogy.
Úgy értettem, hogy keretbe foglalják a tartalmat (a feed-et).
-
-
Taci
addikt
válasz
instantwater #20353 üzenetére
Nem, ez egy teljesen saját, 0-ról kezdve, üres lapról (plusz egy HTML template-ről). Egyelőre csak egyetlen egy oldal, két oldalon és felül fix "kerettel" (opciók, menük, kereső stb.), középen pedig egy "feed", ahova folyamatosan tölti be (görgetéssel) a bejegyzéseket.
Igazából nem értek semmihez sem, de programozni szeretek, és ebben a "projektben" is kellett rengeteget HTML-lel, CSS-sel, PHP-vel és JS-tel foglalatoskodnom, amit amúgy élvezek is.
A korábban ajánlott Moments.js helyett is inkább megírtam magamnak az időbélyegző formázó kódját - addig is gyakorolok. Úgyhogy megpróbálom ezt is. Köszönöm! -
Igen, célszerű az adatot JSONban leküldeni a kliensnek, és kliens oldalon React/Vue vagy valami hasonlóval generálni a HTMLt.
Szerencsére ahogy értelmezem ez nem egy örökölt projekt ahol van sokezer sor HTML generáló kód backenden.
De minden azon múlik hány különböző oldalt kell generálnod, és mennyire értesz ezekhez a frontend frameworkokhöz.
Ha csak egy oldalt kell generálni, és csak PHPhoz értesz, akkor lehet jobban jársz egy Twig/Blade megoldással mint ezért szenvedni egy frontend frameworkkel, habár nem túlságosan nehezek. -
Taci
addikt
válasz
instantwater #20351 üzenetére
Hmm, most hogy így mondod, az is bőven jó lenne akkor, ha a szerver csak a bejegyzésekhez kapcsolódó adatokat küldené át (aktuális bejegyzés képének linkje, bejegyzés szövege, bejegyzés időpontja stb.) (és ezeket az adatokat sokkal egyszerűbben is lehetne átadni asszociatív tömbbel), aztán ezt a kliens rakná össze egy JS-tel lokálban generált HTML kóddal? Teljesen felesleges ugyanazt a fix html kódot utaztatni szerver és kliens között, az mindig ugyanaz, nem változik, csak az a pár bejegyzésenként módosuló változó.
Ez esetben pedig akkor vagy a JS-be kell "beleégetni" a html kódot, vagy itt is lehet külső fájlból, gondolom. Na ezeknek mind utána nézek most, hogyan lehet, hogy a jobb. Köszi a rávilágítást, erre nem is gondoltam még eddig!(És ha most is rosszul, kérnék egy kijavítást.
)
-
-
Taci
addikt
Nem örököltem meg semmit.
Volt egy ötletem (weboldalra), elkezdtem hát nulláról tanulni, mit-hogyan kell megcsinálni, így jutottam ide. Szóval igazából amiket írtok, az nekem teljesen ismeretlen, úgy olvasok utána mindennek.
Ez a betöltött fájl amúgy eredetileg php volt (az is még eredetileg a "fő php" kód része, de gondoltam, "szebb" külön szedve, ezért jött a required), viszont minden sort
echo '
-val kezdtem (és';
-vel zártam) aztán később olvastam, hogy az úgy nem "szép", szóval maradt a html kód, és ahova adatbázisból kellett érték, oda került csak bele a html kódok közé a php kód (<?php
és?>
közé). Aztán mivel így már igazából html kód lett, átneveztem .php-ről .html-re.
Itt a leírásod alapján akkor nem jó a file_get_contents(), hiszen van benne szerver oldali (php) szkript.Na de próbálok utánaolvasni mindennek, amit írtál, és megnézni, ezt én hogyan tudom megoldani "nálam".
Köszönöm.
-
coco2
őstag
amiben vannak PHP kódrészletek
Na ezt nem így.
A betöltött file az vagy tisztán html, vagy tisztán php class, ami legyártja a html stringet. Html-t betölteni, amiben vannak php részletek, az egy kicsit php3-as világ, és ideje lenne leszokni róla. Php 7+ idők vannak. Ha valami 10+ éves legacy project-et örököltél meg, akkor most jött el az ideje az újraírásnak, amit bizony megnyertél. Gratulálok
Ha tisztán html a lap (szerver oldali script értelemszerűen nem lehet benne), file_get_contents()-el behúzod, kódolod base64_encode()-al, és ott a text stringed, ami 7 bites kapcsolaton is háborítatlanul megérkezik.
Ha tisztán php kódod van, azzal rakod össze a stringet, és nem file_get_contents()-el húzod be, a többi ugyan az.
JS oldalon van atob().
-
Taci
addikt
Akár egész weblapot is leküldhetsz. Azzal az a trükk, hogy fogod az egész weblap stringet, és base64 encode-olod.
Ebben kérnék most segítséget.Adott egy PHP kód, amiben megtörténik a lekérdezés az adatbázisból. Ez a PHP kód require-rel behúz egy külső HTML fájlt (
require 'feed_item.html';
) , amiben vannak PHP kódrészletek, oda tölti be a lekérdezésből származó adatokat. Aztán ez az egész megy (jelenleg) a kliensnek megjelenítésére.Hogyan tudom ezt a lerkédezésből származó kóddal feltöltött, külső fájlból behúzott HTML kódot asszociatív tömbbe rakni?
Maga a tömb:
$website_data = array();
$number_of_query_items = $result_count->num_rows;
$website_data['numberOfQueryItems'] = $number_of_query_items;
//$website_data['content'] = ide jönne az adatbázisból feltöltött html kód
$website_data_json = json_encode($website_data);
Köszönöm!
-
coco2
őstag
válasz
instantwater #20346 üzenetére
Nem szeretem azt a szintaktikát, amit azok nyomnak.
-
-
coco2
őstag
válasz
instantwater #20344 üzenetére
SPA/API-t bütykölök. A lap annyira igénytelen, hogy a legegyszerűbb framework is az ágyúval verébre esete.
-
Ha szeretsz sajtreszelővel .........
Pontosan az elmicsodálástól véd egy megfelelően használt composer.lock és package-lock.json.
A megfelelő alatt azt értem, hogy paranccsal installálsz új packaget, nem kézzel szerkeszted a jsont, és mindig az install módot használod az update helyett és akkor a lockfileból dolgozik, és nem lesz elmicsodálva.
-
Igen, erre az axiosra gondoltam.
Ha beledobsz még valami bundlert is a képletbe, mondjuk webpack, (de azt hiszem az helyett is van már valami más ajáblott) akkor még szebb lehet a kód. Then és catch helyett könnyebben kezelhető async/await is haszálható.Ajánlom figyelmedbe a JavaScript topikot, ott többet tudnak segíteni JS témában.
A w3wchools helyett inkább a Mozilla Developer Network és a php.net ajánlott.
-
coco2
őstag
válasz
instantwater #20339 üzenetére
Mínusz egy sdk a tech stack-ből, amit ha elmicsodálnak, független vagyok tőle.
-
Taci
addikt
@coco2, pelyib, instantwater: Köszönöm szépen a tanácsokat!
Van minek utána néznem... Igazából 0-ról kezdtem már egyből ezzel az ötlettel, amit próbálok megvalósítani, és a w3schools oldaláról kezdtem tanulni. Ha valami probléma jött fel, elsőnek ott kerestem választ, aztán Stackoverflow, aztán Google, aztán itt.
De elég sok mindent át kell írnom akkor ezek szerint.
Ez a Moment.js nagyon hasznosnak tűnik, ugyanezt programoztam le PHP-ben, csak ott azzal bajlódtam a végén, hogy folyamatosan frissítse az adott elemen az időt (ahogy írtam is lejjebb). De ezzel egyszerűbb lesz sokkal, úgy látom.Az axios alatt gondolom, ezt értitek: https://github.com/axios/axios Még csak soha nem is hallottam róla (ami nem meglepő, kb. 2 hónapja írtam először HTML kódot is...
). Remélem, hamar rájövök, hogyan tudom a mostani kódot átírni úgy, hogy ezzel működjön.
Ha jól értem, akkor ehelyett:var numberOfQueryItems = 0;
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
if (this.readyState==4 && this.status==200) {
document.getElementById("output").innerHTML=this.responseText;
}
}
xmlhttp.open("GET","frontend.php?q=" + valtozo,true);
xmlhttp.send();
kell valami ilyesmire átírnom:
const axios = require('axios');
// Make a request for a user with a given ID
axios.get('/user?ID=12345')
.then(function (response) {
// handle success
console.log(response);
})
.catch(function (error) {
// handle error
console.log(error);
})
.then(function () {
// always executed
});
Aztán akkor még át kell írnom azt is, hogy a szerver asszociatív tömbben küldje át a megjelenítendő weblaprész adatait, plusz az egyéb változókat, amire szükség van.
https://www.w3schools.com/php/func_json_encode.asp
https://www.w3schools.com/php/func_json_decode.asp
Mondjuk még nem igazán látom át, a mostani kódból hogyan kell a kívánt eredményt létrehozni, de remélem, rájövök. (Ha esetleg mégsem, kérdezek majd. Bár nem szeretek, csak ha nagyon muszáj.)Nem egy pár órás munka (nekem), de remélem, boldogulni fogok.
Köszönöm a tanácsokat még egyszer!
-
-
coco2
őstag
válasz
instantwater #20337 üzenetére
Nyers xmlhttp-t nem használ már senki kb 15 éve.
Khm.. én éppen használni készülök vadi új projecthez
Nagyon ciki?
-
-
pelyib
tag
Ahogy coco2 irja valtsal at JSON valaszra szerver oldalon. PHP ne generaljon HTML-t csak adja vissza a nyers adatot, JS meg ugy jeleniti meg ahogy akarja.
Eltelt ido kiirasahoz meg inkabb hasznalj egy JS lib-t, pl: https://momentjs.com/ "Relative Time" (tud magyarul is).
-
coco2
őstag
Xhr-el tipikusan nem html-t küldünk, hanem json-t. Van json_encode() kukucs rá php.net site-on. Csinálsz egy asszociatív tömböt php alatt, annak lehetnek mindenféle változói, azokba belerakod az értékeket. Akár egész weblapot is leküldhetsz. Azzal az a trükk, hogy fogod az egész weblap stringet, és base64 encode-olod. Máris nem kell vacakolni nyamvadt escape-eléssel. Hátulütőként hosszabb lesz a string, de ha nem bandwidth-heavy az alkalmazás, bőven elfér. Mellé mindenféle változót is bele rakhatsz a json-ba. Kliens oldalon szétpakolod az értékeket, kikódolod a base64-et, helyre rakod a html-t is. És minden happy.
-
Taci
addikt
Azt mondjátok meg, kérlek, hogyan lehet PHP-ből adatot átadni JS-nek?
Adott egy JS, amiben egy XMLHttpRequest-tel adatot küld a szervernek, és válaszként (this.responseText) megkapja a megjelenítendő HTML kódot.
Ugyanebben a PHP fájlban generálódik a tegnap tanácsolt módon a lekérdezett adat sorainak mennyisége is.
$number_of_query_items = $result_count->num_rows;
Ezzel az adattal kellene az említett JS-ben számolni, átadni a JS-ben szereplő változó értékének:var numberOfQueryItems;
Viszont nem tudom, hogyan kell átvinnem PHP-ből JS-be. Az XMLHttpRequest miatt átmegy sok adat, de nem tudom, hogy abból kellene-e valahogy kihalásznom ennek a változónak az értékét, vagy arra egy külön XMLHttpRequest-et indítani?
Nagyon nem találom a helyes választ rá, és ez megakasztott.
PHP-ben a változó, amit át kellene adni JS-nek:
$number_of_query_items = $result_count->num_rows;
JS-ben a PHP kóddal kommunikáló rész (leegyszerűsítve):
var numberOfQueryItems = 0;
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
if (this.readyState==4 && this.status==200) {
document.getElementById("output").innerHTML=this.responseText;
}
}
xmlhttp.open("GET","frontend.php?q=" + valtozo,true);
xmlhttp.send();
Ezen a kódon keresztül kellene? Vagy más módja van ennek?
Az kellene, hogy a PHP kódban szereplő
$number_of_query_items
értékét megkapja a JSvar numberOfQueryItems
változója.Hogyan tudom ezt elérni?
Köszönöm!
-
Taci
addikt
document.querySelectorAll
lesz valószínűleg a barátom.
https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_document_queryselectorall_class -
Weareus
addikt
Szuper, rá is lesek holnap v. még ma este. Ha valami nem megy, még kérdezek.
-
Taci
addikt
Sikerült megoldani, köszönöm!
Viszont lesz még egy kérdésem ezzel kapcsolatban, de azt egy külön kommentben tenném majd fel, mert egy picit hosszabb.
Itt viszont még megkérdezném ezt:
Van több elem a lapon (0-tól végtelenig), és mindegyik bejegyzésnek van egy időpontja, amivel számolnom kell. Szeretném mindegyiknél pontosan kijelezni, hogy mennyi ideje lett bejegyezve. Ez a számolás már nagyon szépen megvan PHP-ben végig vezetve. Viszont fix időponttal számol, amikor betöltődik az oldal, azt veszi "most"-nak, azzal számol, azt jelzi ki.
Viszont szeretném az aktuális időhöz igazítani (elég a kliens ideje, nem kell time server).
Így arra gondoltam, hogy miután kijelzi az időpontot a PHP kóddal, utána simán csak futtatok egy JS szkriptet, és másodpercenként emelem az időpontot 1 mp-cel. És így úgy-ahogy meg is vagyok, az ebben lévő pontatlanság bőven megfelel a célnak. (De időközben rájöttem, hogy az egész formázós PHP kódot kell hogy futtassam külön újra és újra...)Találtam is egy egyszerű példát ehhez, amivel tudok dolgozni:
https://www.w3schools.com/js/tryit.asp?filename=tryjs_setinterval2Szépen is működik, csak előjött egyből az a gond, hogy csak az első elemnél csinálja meg ezt a frissítést (és a saját kódomban csak a következő 4 elem betöltése után indul el, első betöltésre nem - de ez majd kifilózom logokkal, hogy miért) , az összes többinél már nem.
Tehát ha a példakódban pl. még pár sorba beszúrom hogy<p id="demo"></p>
, akkor is csak az elsőnél történik meg a frissítés, ott fut le a szkript.
Pedig azt szeretném, hogy több helyen is lefusson, bárhol, bármikor.Rátaláltam az infóra, hogy HTML-ben az ID-knak egyedinek kell lenniük, így a fenti példakódnál csak az első "demo" ID-t használja, utána már nem valid. A getElementById így nem jó. Esetleg valami más getElementBy?
Hogyan tudom ezt megcsinálni, hogy az összes bejegyzésnél fusson a szkript, ugyanaz a szkript, de persze mindegyiknél a saját adatokkal?Köszönöm!
-
coco2
őstag
válasz
Weareus #20328 üzenetére
Kicsi betű konverzió strtolower(). Amivel problémád lehet, azok az ékezetes betűk. Lehet, hogy azt nem mindig korrekten fogja csinálni.
Space-eket kivágni nem említetted külön pontban, de van rá str_replace(). Jellemzően lecseréled a space-eket üres stringre, ahogy ott példát is találsz "ll" -> "" cserére a lapon.
A többször előforduló kifejezések mennyiségtől függően lehetségesen cpu igényes művelet lesz php-ban, de a kód maga egyszerű. Létrehozol egy asszociatív tömböt, és beadod a stringeket kulcsnak. Rájuk raksz mondjuk egy boolean értéket, bármi. Ha vannak is dupla stringet, önmagukat fogják felülírni, hibaüzenet nem lesz belőle. Csak ciklusban pakolsz befele mindent. Ha végeztél, legyűjtöd a tömb kulcsait, van rá array_keys().
Az abc sorbarendezéssel megint csak lesz egy olyan bajod, mint a kicsi betű konverzióval. Az ékezetes betűket nem fogod tudni egyszerű megoldással sorolni be. Például hogy egy "e" után jöjjön az "é", és utána az "f". Helyette ascii kód szerint az "é" messze a "z" után fog kerülni. Ha a magyar abc szerinti rendezés fontos, építened kellene egy új karakter táblát minden előforduló karakter kóddal, és magadnak csinálni a rendezéshez a vizsgálatot. Az ilyesmit C-ben lenne jobb, nem php-ban. Pláne, mint hogy írod, mennyiségről lenne szó. De ahogy tetszik. Ha megteszi ékezetek nélkül is, van rá mezei sort(). Tömb elemeit szedi sorrendbe.
Kellemes szórakozást.
-
Weareus
addikt
Azt elfelejtettem írni, hogy a wordpad nevű alkalmazást használom. Ez eléggé fapados, viszont cserébe megfelelő sebességgel kezel ekkora állományt.
-
Weareus
addikt
Üdv.
Nem kifejezetten programozós kérdés, de idevágó és élő szövegszerkesztős topikot nem találtam.
Meg ugye lehet, hogy amit szeretnék, azt valami makróval v. mivel lehetne megoldani.
Vannak szólistáim txt-ben.
Lexikonok címszavai (rejtvényhez)
1. Lehetséges ezeket txt-ben sorba rendezni? (abc)
2. Az összes nagy betűt le kellene cserélni kis betűre.
3. A kétszer, ill. többször előforduló azonos kifejezéseket törölni kellene valahogy úgy, hogy csak egyszer maradjon meg. (Ne legyen felesleges ismétlődés)Pl.
Kiss Géza
Kiss Géza
Kiss István
Apponyi Alberthelyett ilyen legyen:
apponyialbert
kissgéza
kissistvánTudom, hogy copy-paste-val wordbe rakva pl a sorba rendezés és a kisbetű-nagybetű cserebere megoldható, de sajnos a szólista méretéből adódóan a gépem képtelen ekkora állományt megfelelően wordbe beilleszteni, megjeleníteni és kezelni.
(Open wordom van, bár ez mindegy). -
Taci
addikt
válasz
instantwater #20326 üzenetére
Köszönöm a gyors és hasznos választ!
Kialszom magam, és holnap munka után újra nekiülök, átnézek minden lehetőséget.
-
Küldd le a lekérdezés maximum számosságát (SELECT COUNT(id) FROM table ...) is a kliensnek, így az tudni fogja mikor ért a végére.
Vagy a kliens csak egy oldalszámot küldjön, és te kiszámolod a limitet és offsetet szerveroldalon, és még leküldöd azt is, hogy van e tovább.
Vagy egyszerűen csak küldj le egy üres tömböt, ha a végére ért, így tudni fogja, hogy ne kérjen többet.
Esetleg a stackoverflowon is nézz körül ötletekért infinite scroll és pagonation témában.
-
Taci
addikt
Lenne ismét egy kérdésem, ami a tapasztalatlanságomból ered.
Nyilván mind a pagination-nek és az infinite scroll-nak is át kell adnom, hogy mennyi elemmel fog dolgozni, hogy feleslegesen már ne próbáljon meg sorokat betölteni, ha egyszer elfogytak.
Jelenleg a php kódban csak annyi van, hogy
if ($result->num_rows > 0) {
// a tartalom megjelenítése
} else {
echo "Elfogytak az elemek."; // random szöveg csak magamnak
}
A JS függvény pedig újra és újra visszatér, hogy (jelenleg négyesével) betöltse az új sorokat. Egy idő után viszont elfogynak, viszont a JS függvény ilyenkor is kapcsolatot létesít, megtörténik az SQL lekérdezés is - szóval ez már csak forráspazarlás. (Még ha szemmel ez nem is látszódik, ha remarkolom az "Elfogytak az elemek" echo-t.)
Így hát arra gondoltam, hogy ha már a JS pont ezt a PHP kódot hívja meg, amiben az SQL lekérdezés is van, így át tudom adni neki, hogy a lekérdezésben mennyi sor szerepel, így a JS-ben be tudom állítani, hogy ha a végére ért, akkor ne kérdezzen többször.
Na igen ám, viszont a lekérdezésbe ugye belekerült a LIMIT is (jelenleg "LIMIT 4"), így a sorok számára mindig 4-et ad vissza (kivéve, amikor már nincs annyi benne vagy teljesen elfogytak belőle).
$sql = "SELECT * FROM table ORDER BY order_by DESC LIMIT x OFFSET y";
(csak a példa kedvéért így írva most, mert amúgy prepare-rel van)Szóval ezt hogyan lehet szépen és hatékonyan megoldani?
"Tudja" ez a lekérdezés, hogy eredetileg milyen sorokat tartalmazott, mielőtt alkalmazta volna a LIMIT-et és a többit?
Ki lehet belőle szedni valahogy csak aSELECT * FROM table
értékét?Vagy mindenképp kell egy külön lekérdezés?
Már erre esetre is megvan a tervem, csak hátha van erre valami egyszerűbb, jobban bevált módszer. Mert ha máshogy nem, akkor megcsinálom a külön lekérdezést, és csak akkor újra futtatom le újra (ezt a külön lekérdezést az eredeti, "szűretlen" méretről), ha a "table" értéke változik. A többi nem fog változni, a table viszont elég gyakran.Köszi!
-
Taci
addikt
válasz
sztanozs #20321 üzenetére
Ezt találtam eddig a legjobb példának, ami alapján remélhetőleg meg tudom csinálni a saját változatomat:
https://codepen.io/timseverien/pen/XXYaZe -
Taci
addikt
válasz
sztanozs #20319 üzenetére
kell egy prepare persze még bele
Ahh, annyit szenvedtem vele, hogy végig hibaüzenetet dobott (Call to a member function bind_param() on bool), mert nem tetszik neki a lekérdezés. De nem tudtam rájönni, mi a baja, mert adatbázisban futtatva (és a "?" paramétereket átírva persze) tökéletesen futott.
Aztán így 2 óra szenvedés után végül arra jutottam, hogy teljesen lecsupaszítom és visszakövetem a kódot, és végül rájöttem, hogy táblát nem lehet paraméterezni, azon halt el végig...
"SELECT * FROM ? ORDER BY ? DESC LIMIT ? OFFSET ?"
Ott FROM utáni paraméternél csúszott el. De így végre megvan.De így összerakva már működik az infinity scroll-szerű megoldásom is. Így már ezt el tudom tenni, hogy oké, van egy működőképes változatom (erre a kérdéskörre), így nézhetem a pagination-t, és ha azzal nem menne (valamiért), akkor erre vissza tudok állni.
Milliószor akartam írni, segítséget kérni (ebben a prepare-es elakadásban is), de örülök, hogy végül nem tettem, és magamtól találtam rá a megoldásra, így sokkal jobb tapasztalat.
Köszönöm az iránymutatásotokat!
-
Taci
addikt
válasz
pelyib #20318 üzenetére
Igen, néztem, de sajnos nem járható út. Kb. úgy képzeld el az oldalt, mint a Facebook-feed-et, egymás alatt "ömlesztve" a tartalom (nyilván szűrve és rendezve). Ezt sajnos nem tudom oldalakba szedni.
@sztanozs:
Köszönöm, már nézem is. Most hirtelen legjobb leírásnak példákkal ezt az oldalt találtam:
https://www.sqltutorial.org/sql-limit/
Ha elakadnék, és nem bánjátok, még kérdeznék.Köszönöm!
Illetve máris kérdeznék:
"csak kell egy prepare persze még bele"
Ez a rész pontosan mi és mire kell? Ez lenne az?
https://www.w3schools.com/php/php_mysql_prepared_statements.asp -
sztanozs
veterán
Belerakod, hogy honnan mennyit szedjen és ezt át is adod:
SQL query végére becsűröd, hogy:
LIMIT $offset, $len
és csaak annyit kérsz le és onnan, ahonnan kell, csak kell egy prepare persze még bele...Persze lehet menni session irányba, de a HTTP alaptézise, hogy minden lekérdezés független, tehát a szerver és kliens között nem szükségszerűen van "shared data".
-
pelyib
tag
Pagination, erre keress.
Legegyszerubb ha client kezeli hogy mit szeretne megmutatni. Tudod, hanyadik oldalt kered, ott a limit (hany elem kell) is, ezeket query parameter-ben (GET) elkuldod (altalaban limit es offset neven).
Server oldalon meg ertelemszeruen beilleszted oket a querybe. -
Taci
addikt
Sziasztok!
Adott egy adatbázis, aminek a tartalmát eredetileg csak 1 db JS-függvénnyel elérve írattam ki (PHP használatával).
Ott bőven elég volt awhile($row = $result->fetch_assoc())
, mert ugye egyesével kiszedett minden sort belőle addig, amíg el nem fogyott. Tökéletesen megfelelt a célnak.Viszont kénytelen voltam módosítani úgy, hogy az első (eredeti) JS-függvény már csak az első pár sort írja ki (jelenleg 4-et), aztán a második (új) JS-függvény feladata pedig az lenne, hogy ahol az első függvény abbahagyta (a példánál maradva ugye az 5. jönne), onnan folytassa a kiírást (szintén 4-esével).
(Infinity scroll-t akarok használni, és ahhoz az kell, hogy előbb legyen annyi elem a képernyőn, hogy lehessen scrollozni (túlnyuljon a kijelzőn - erre állítottam be 4-et, mert az bőven kitölti majdnem 2szer is), aztán jön a 2. szkript, ami pedig a scrollozás mértékében fűzi hozzá a további tartalmat.)Így kétszer is megvan hívva ugyanaz a PHP fájl/kód, ezért jelenleg természetesen előröl kezdi a számozást, tehát a 0. elemtől, kiírja az első 4-et az első függvény miatt, aztán jön az infinity scrollozós szkript, és az is az első 4 elemet írja ki. Aztán scrollozok tovább, és újra az első 4-et.
Nem tudom, hogyan lehetne megoldani, hogy ahol az 1. függvény abbahagyta, onnan folytass a 2. Semmi tapasztalatom nincs ebben.
Keresgéltem, amit találtam, és talán ezt megoldaná az a PHP Session, viszont még a példakódban a példaoldalon sem működik (pedig egy nagyon jó és megbízható oldal, de ez már korábban sem működött nálam), így nem is implementáltam.
Gondoltam rá, hogy esetleg cookie-t kellene használni, de egyrészt sosem használtam még (ez nem gond, megtanulom), másrészt biztosan van egy egyszerűbb megoldás is erre.Remélem, nem túl bonyolultam írtam le, és főleg azt, hogy tudtok segíteni.
Biztos nagyon egyszerű a dolog, csak én nem látom már azt sem, ami a szemem előtt van.Köszönöm!
Még talán az
Include
-ra nézek rá. -
sztanozs
veterán
válasz
RedHarlow #20315 üzenetére
Vagy adatbázis-oldalon csinálsz egy join-t, vagy kód oldalon ellenőrzöd, hogy az adott sor létrejön-e.
Adott hónapra SQL-lel:
set @year = 2021, @month = 1;
SELECT
a.Date,
IFNULL(b.osszeg, 0),
IFNULL(b.darabszam, 0)
FROM (
SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(CONCAT(@year,'-',@month,'-',n)),'%Y-%m-%d') AS Date
FROM (
SELECT (((b4.0 << 1 | b3.0) << 1 | b2.0) << 1 | b1.0) << 1 | b0.0 AS n
FROM
(SELECT 0 UNION ALL SELECT 1) AS b0,
(SELECT 0 UNION ALL SELECT 1) AS b1,
(SELECT 0 UNION ALL SELECT 1) AS b2,
(SELECT 0 UNION ALL SELECT 1) AS b3,
(SELECT 0 UNION ALL SELECT 1) AS b4 ) t
WHERE n > 0 and n <= DAY(LAST_DAY(CONCAT(@year,'-',@month,'-',1)))) AS a
LEFT JOIN (
-- a te lekérdezésed itt kezdődik
SELECT
datum,
osszeg,
darabszam
FROM valami_tabla
-- a te lekérdezésed itt végződik
) b
ON a.Date = b.datum
ORDER BY a.Date -
RedHarlow
aktív tag
Köszönöm!
Még egy kérdésem lenne, szeretnék kilistázni adatokat teljes hónapra, azonban az egyik db táblámban csak akkor jön létre sor ha van tényleges adat. A weboldalon azonban szeretném ha ezen tábla esetében is látszódna minden napra adat. Tudtok erre valami egyszerű megoldást? Ti hogy oldanátok meg? Én is gondolkoztam megoldásokon de szerintem nagyon túlbonyolítom az egész már fejben.
tehát a db így néz ki mondjuk:
Jan 1 2500 FT 14 db
Jan 3 5000 FT 1 db
Jan 4 2500 FT 1 dbés azt szeretném, hogy így nézzen ki a tábla az oldalamon:
Jan 1 2500 FT 14 db
Jan 2 0 Ft 0db
Jan 3 5000 FT 1 db
Jan 4 2500 FT 1 db -
pigmeus
tag
érzem én, hogy ez már fájdalmas lesz, meg nem olyan egyszerű, ahogy ezt előadták.
Ha rossz helyen kopogtatok szóljatok nyugodtan. Persze jobb lenne az alapokat még jobban megérteni, de most ez van, aztán az is lehet, hogy ez kb full egyszerű, csak én vesztem el valahol
Javascript, ebben az esetben annyiból kell, hogy eltárolja a keresett szót POST-al és majd a result-tal megjelenítem az eredményt. Ezután pedig órán úgy csináltuk, hogy egy másik .php oldalon a search-re lefut a keresés, találat esetén echo-val megjeleníti vagy kiírja, hogy nincs találat az adatbázisban.
És ezt a keresés funkciót kell átírni ~"OOP"-ra. Ami az én értelmezésem szerint ez a pár sor lenne:
$search = mysqli_real_escape_string($con, $_POST["search"]);
$sql = "SELECT * FROM termekek WHERE nev LIKE '%".$search."%'";
$result = mysqli_query($con, $sql) or die('Error querying database.'); //
if(mysqli_num_rows($result) > 0){
while($row = mysqli_fetch_array($result)){
$id = $row["id"];
Amit előadtak "php OOP"-ként, jelenleg így néz ki pár példa alapján pár sorban, hogy kb mit várnak vissza:
<?php
public function show_termek($id){
$dbCon = parent::connect();
$res=$dbCon->prepare("SELECT id,nev,ar,cikkszam FROM termekek WHERE id=?");
$res->bindParam(1,$id);
$res->execute();
$termek =$res->fetchAll();
return $termek; }Fenti sort pedig így hívom meg és jelenítem meg az adatbázist:
<?php
if(isset($_GET['termekid'])){
$termekid = $_GET['termekid'];
$termek = $sql->show_termek('$termekid');
foreach($termek as $kuls =>$ertek){
echo" ".$ertek[0]." "} -
-
RedHarlow
aktív tag
Sziasztok, egy a DB-ben számként elmentett adatnál a megjelenítésénél mivel tudom elérni, hogy pénz formátumban jelenjen meg?
'.$row['PRICE'].' Ft
Tehát, ez helyett:
17649973 FtEzt szeretném:
17 649 973 Ft -
Csupán annyi a bajom vele, hogy a parameter binding sokkal kevésbé macerás mint escapelt stringeket összefűzögetni.
[link]Az EMULATE_PREPARES pedig nem véletlenül nincs bekapcsolva alapból.
Az numeric értékeket stringként küldi el az adatbázisnak, így az összes numeric index megy a kukába. -
coco2
őstag
válasz
instantwater #20309 üzenetére
A célzást mindössze az alapok megértésének a fontosságára, és a fogalmazási stílusra irányítottam. Nem javasoltam neki olyat, hogy dobja sutba az oop-t. Egyébként én a mysqli::real_escape_string() helyett jobb szeretem a mysqli_real_escape_string()-et. És azt is be lehet rakni oop keretekbe
A mysqli_-vel nem tudom, mi bajod. A mysql_ ment ki a divatból a 7-es php-val, nem a mysqli_. A mysqli_ köszöni szépen, remekül megvan. És itt egy performance teszt a hitviták rövidrezárására.
A stresszesebb cégeknél gyaníthatóan a felelősségbiztosítási pénzre megy a játék. De ha nem tud arra rálátásod lenni sehogyan, akkor persze nincs mit tenned vele.
-
-
-
coco2
őstag
válasz
pigmeus #20306 üzenetére
Ezt a mákos tésztát szét kellene válogatni. A javascript-nek van külön topic-ja. A php-s oldalra az tartozik, amikor a php scrit elindul szerver oldalon. A webezés szépségei ugye. Külön a html, külön a javascript, külön a php.
Az "OOP-val megoldani" dologról biztos nem könnyű fiatalon leszokni, amikor valaki suliban összetalálkozik élete első beadandójával, és még misztikus fellegekben kergeti a fogalmakat. Próbáld megérteni, hogy az OOP pusztán egy keret szervezési ajánlás, és a hozzá tartozó szintaktikák, ahogyan a kód egészét formázod. Azon túl semmi más. A script attól függetlenül működik (vagy nem működik), hogy követed-e annak az ajánlásnak az utasításait. A tanárod talán nem fogadja el máshogyan a beadandót, de maga a számítógép rá se tojik arra a körülményre, és a scriptedet a számítógép futtatja, nem az előítéletes szaktanárod.
A mysqli::real_escape_string -re példát a php.net website-on találsz. Jegyezd fel magadnak azt a php.net website-ot, mert nagyon sűrűn fogsz ott doksikat olvasgatni.
Ez a sor:
while($row = mysqli_fetch_array($result)){
egy változóba rakja be az adatokat. És ott vannak.Megjelenítéshez pld:
echo $id."<br>";
vagyvar_dump($row);
-
pigmeus
tag
Sziasztok, akkor próbálkozok itt is hátha
PHP-t kezdtem el tanulni, de az OOP részét sajnos nem igazán vágom és egy feladatot kéne átfordítanom. Sajnos full kezdő vagyok.
Keresés funkció átírásában kérnék segítséget, meg a többiben is majd.
Ez a lekérdezés fut le
<script>
$(function(){
$(".search_text").keyup(function(){
var text = $(this).val();
if(text != ""){
$.ajax({
url: "fetch.php",
type: "post",
dataType: "text",
data: {search:text},
success: function(data){
$(".result").html(data);
} })
}
else{
$(".result").html('');
} }) })</script>majd a fetch.php az alábbi fut le, ahol eltárolom majd megjelenítem az adatokat.
$search = mysqli_real_escape_string($con, $_POST["search"]);
$sql = "SELECT * FROM termekek WHERE nev LIKE '%".$search."%'";
$result = mysqli_query($con, $sql) or die('Error querying database.'); //
if(mysqli_num_rows($result) > 0){
while($row = mysqli_fetch_array($result)){
$id = $row["id"];
Itt abban akadtam el, hogy érdemes e a mysqli_real_escape_string-et erőltetni, illetve hogyan tudom OOP segítségével eltárolni majd megjeleníteni az adatokat. -
-
coco2
őstag
válasz
instantwater #20303 üzenetére
B2B üzletek még mindig felelősségbiztosítással futnak? Vagy azt már hátra hagyta a világ?
-
-
coco2
őstag
válasz
instantwater #20301 üzenetére
Attól függően, hogy mekkora az a cég, szó lehet különféle dolgokról. Példa. Hallottam már sütödéről, amelyik direkt tartja alacsonyan a profitot, mert ha valaha megnő, nyakára mászik a tolvaj banda a polgármesteri hivatalból, és elveszik tőle. És az még csak egy viszonylag kicsi cég egyszerű ok-okozati összefüggésekkel.
A kubernetesről egyébként nem tudom, mennyire vakítja a népeket. Én ránéztem doksikra, és rendszerszintű konténereket kezel. Ha nekem adat alapú a felépítésem, kb semmire kell. Akár hátrébb vagyok vele, mint előrébb. De aki brossúra dumákat olvas naphosszat, biztos máshogy látja.
-
Minden hónapban felvesznek valami mid és junior közti fejlesztőt, és mindemellett senkit nem rugnak ki.
Egyszerűen nem értem, hogy hogy a fenébe van bevétele a cégnek, ha egyfolytában valami elromlik, és kézi rásegítéssel kell átrugdalni a rendszert a hétvégéken.
A túlórát le lehet csúszni, ritkább esetekben kifizetik előzetes megegyezés alapján.
A foreign key ismeretlen fogalom, de bekapcsolni sem lehet, mert annyira alacsony minőségű az adat, hogy a foreign táblában van rengeteg olyan rekord amihez a forrástáblában nincs adat, így FK kilőve.
Indexek voltak 1-1 oszlopon, de jellemzően 3-4 oszlopos WHERE feltételek vannak a lekérdezésekben.
Csináltam 3-4 oszlopos indexet, erre kiderült, hogy az adatbázis mező az varchar, de a rendszer integerként küldi az értéket a queryben. Ekkor az adatbázisnak castolni kell többmillió rekordot integerre, hogy le tudja futtatni a lekérdezést.
Castolással 30 mp, castolás kényszerítése nélkül helyesen stringként használva a mezőt a queryben lefut ugyanaz 300 ms alatt.Van egy olyan agyrém, hogy minden kliensnek (cégek) van egy külön táblája
, amiben minden van. Az ügyfelektől kezdve a rendelésekig minden.
És van kb 200 (!!!) ilyen tábla.
Skálázhatósági mennyország.De a főnök már Kubernetesről álmodik
.
Mondanom sem kell, bevallja magáról, hogy nem tech szakember, nem ért hozzá, csak ömlik belőle a megvalósíthatatlan ötletek sorozata.Mondtam neki, hogy minimum 6-12 hónap amit kér, de van egy nagydumás kolléga aki eladja a főnöknek a szép álmokat. Mindent megigér péntekre és hónap végére. Minden héten péntekre és minden hónap végére, amiből soha nincs semmi kézzelfogható vagy használható eredmény.
És amikor mondom, hogy egy kamugép az ürge, még engem néz hülyének a főnök.Tuti bestseller lenne az a könyv, ha megírnám
Új hozzászólás Aktív témák
Hirdetés
- Ubiquiti hálózati eszközök
- Egyre csak fejlődik az AI, emberek tízezreit rúgja majd ki a BT
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Xbox tulajok OFF topicja
- Mielőbb díjat rakatnának a görögök az olcsó csomagokra az EU-ban
- Futás, futópályák
- exHWSW - Értünk mindenhez IS
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- RAM topik
- További aktív témák...
- ALIENWARE Area-51 R6 Threadripper Edition 1920X
- Epson Expression 12000 XL Nagyformátumú A3 szkenner
- Azonnali készpénzes Microsoft XBOX Series S és Series X felvásárlás személyesen/csomagküldéssel
- Bomba ár! Lenovo ThinkPad P43s - i7-8G I 8GB I 256GB SSD I Nvidia I 14" FHD I Cam I W10 I Garancia!
- Több mint 70.000 eladott szoftverlicenc
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest