- Elkészült a PCI Express 7.0-s szabvány
- Milyen alaplapot vegyek?
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Ventilátorok - Ház, CPU (borda, radiátor), VGA
- Azonnali processzoros kérdések órája
- Azonnali alaplapos kérdések órája
- OLED TV topic
- Épített vízhűtés (nem kompakt) topic
- 3D nyomtatás
- Milyen házat vegyek?
Aktív témák
-
Nunder
őstag
Szevasztok.
Olyan problémám van hogy adott egy adóbevallás adatbázis. php + mySQL kombó, és olyat tűztünk ki célul, hogy a kész rendszer visszaigazolást küld az adminnak az oldalon történt eseményekről. Ráadásul időzítve. Tehát bejelentkezik a júzer ezt a rendszer eltárolja, majd a nap végén előre meghatározott időpontban levelet küld a rendszer hogy ki, mikor jelentkezett be és ki. Az egészről még annyit, hogy az oldal megvan, a php rész is kész. Van egy olyan tábla amiben a userek adatai vannak tárolva és ehhez kéne valamit hozzácsapni ohgy működjön a visszaigazolós dolog. Erre kérnék ötleteket ha van természetesen.
-
tkazmer
addikt
egy táblának egy attribútumából lehet egy lekéréshez több rekordot is rendelni?
Arról lenne szó, hogy van egy project, azon belül egy users tábla. Minden felhasználó ebben van benne. Van még egy groups tábla is, ez a felhasználói csoportokat tartja nyilván, minden user benne van egy csoportban.
Ami a problémámat szüli: tegyük fel, hogy van az alkalmazott és van neki egy főnöke. Mind a ketten a users táblában vannak, kettejük között annyi a különbség, hogy másik csoportban vannak. Továbbá van egy tábla, amelyik tárolja, hogy melyik alkalmazott melyik főnökhöz tartozik. Lehetne olyan lekérést alkotni, amelyik gyakorlatilag listázza (így, sorrendben) az alkalmazottat, mellé a főnökét + persze még egyéb infókat (esetleg különböző táblákból)? -
emre33
addikt
Alábbi lekérdezés order by részét indexel nem lehet gyorsítani?
Explain: "Using filesor"Ha csak egy érték szerint rendezek, akkor használja az index-et.
Viszont sok sor esetén elég sokáig tart
EXPLAIN SELECT *
FROM be_szam
ORDER BY szallito ASC , sap_date DESC
LIMIT 0 , 15Kösszi
-
cucka
addikt
Szerintem ezt oldd meg két lekérdezéssel - az egyikkel csak annyit kérdezel le, hogy hány sor van, a másikkal meg a listázáshoz szükséges adatokat szeded ki.
A sorok számát általában nagyon gyorsan megmondja a mysql, tehát nem ettől lesz lassú a weboldalad.
Amúgy biztos meg lehet egyben is csinálni, de sanszos, hogy gyorsabban lefut a két külön lekérdezés, plusz minél egyszerűbb a kód, annál jobb -
emre33
addikt
limit-es eredmény limit nélküli eredmény nagyságát is tudnom kell (lapozáshoz)
Egy select lekérdezésel oldanám meg. Tlaán ez a leglogikusabb.
Viszont ha én több mezőt szeretnék lekérdezni (második select), akkor az első selectben is annyi sor kell lekéreznem.
Nincs erre valami megoldás? Mert igy a SELECT count( id ),count( id ) sok értelme nincs
(
SELECT count( vonalkod )
FROM `be_szam`
WHERE `vonalkod` LIKE '1%'
)
UNION (
SELECT vonalkod, szallito
FROM `be_szam`
WHERE `vonalkod` LIKE '1%'
ORDER BY szallito ASC
LIMIT 0 , 30
) -
cucka
addikt
válasz
.:GoliBali:. #1486 üzenetére
[link]
Hirtelen ezt találtam, a példa kód minősége mondjuk erős közepes, de kiindulásnak jó lesz. -
cucka
addikt
A fordfairlane által írt kód alapján indulj el.
Kicsit átfogalmazom. Van egy regisztrációs folyamatod, amit mondjuk képzelj el úgy, mint egy windows-os varázslót. Első állapotában ott a regisztrációs űrlap, második állapota a regisztrációs folyamat vége. Ha az űrlapot hibásan töltöd ki, a varázsló nem ugrik át a második állapotra.Sematikusan így néz ki a reg.php
//post-olt adatok ellenőrzése, amennyiben már nem regisztrált a tag
$eredmeny = (empty($_SESSION['regisztracio_sikeres']) ? adatok_ellenorzese($_POST) : true;
if ($eredmeny===true){
// az adatok jók, tehát berakod a regisztráló tag adatait az adatbázisba
adatok_mentese();
//elmentjuk a session-ben, hogy már sikerült az adatbázis
$_SESSION['regisztracio_sikeres']=1;
//kiirjuk a "kikuldtuk a szöveget" html-t
require('regisztracio_vege_sablon.php');
} else {
//kiirjuk a regisztracios urlapot.
require('regisztracio_urlap_sablon.php');
}A regisztrációs űrlap a korábbi adatellenőrzés, a $_POST vagy a session alapján találja ki, hova milyen hibaüzenetet kell írni (ha kell egyáltalán). Sablon alatt itt azt kell érteni, hogy ott csak html kód, illetve a html kód megjelenítéséhez szükséges php részek vannak, maga az adatfeldolgozás nem.
A kódot igyekeztem érdekesre venni, a ?: és az === operátornak, az empty függvénynek, az include és a require közötti különbségnek nézz utána. -
fordfairlane
veterán
válasz
fordfairlane #1482 üzenetére
Csak sikerült elrontanom. A kommenteket kiszedtem, hogy rövidebb legyen.
<?
if($_SERVER["REQUEST_METHOD"] == "POST") {
if(!$_POST["nev"]) {
$error["nev"] = "A név üres";
} else {
$res = mysql_query('SELECT COUNT(*) FROM felhasznalok WHERE nev="'.mysql_escape_string($_POST["nev"]).'"');
if($res && mysql_num_rows($res)) {
list($no) = mysql_fetch_row($res);
if($no) $error["nev"] = "Ez a felhasználónév már foglalt!";
}
}
if(!$error) {
$query = 'INSERT INTO felhasznalok SET ';
$query .= 'nev="'.mysql_escape_string($_POST["nev"].'"';
mysql_query($query);
header("Location:".$_SERVER["SCRIPT_NAME"]."?ok=1");
exit;
}
}
if($_GET["ok"]) {
include("fejlec.php");
?><p>Minden oké</p><?
include("lablec.php");
exit;
}
else {
include("fejlec.php");
?>
<form method="post">
<input type="text" name="nev" value="<?=htmlspecialchars($_POST["nev"])?>" /> <?=$error["nev"]?><br />
<input type="submit" value="Regisztráció" />
</form>
<?
include("lablec.php");
?>A fájl elejéről hiányzik az adatbázishoz kapcsolódás(mysql_connect), azt lehet az első if($_SERVER[]...) után is, mert csak abban a blokkban vannak adatbázis műveletek.
-
Oks, köszi!
Egy résznél sztem nem jól írtam le a dolgokat.
reg.php
Ebben van a Form, és ez post-ol. Azért PHP, mert a hibaüzikat feltételhez kell kötni.ment.php
Ez csekkolja az adatokat, includolja vissza a reg.php-t, ha baj van, eltárolja az adatokat ideiglenes státusszal, ha nincs hiba, generál egy számot, amit beír a megerősítő linkbe, eltárolja az adatbázisban, elküldi az email-t, visszajelez, hogy elment a megerősítő email, stb.megerost.php
Ez megnézi, hogy jó-e a link, és ha igen, ok-ra változtatja a sor státuszát az adatbázisban.Ezen a felépítésen célszerű változtatnom?
Kösssz!(#1482) fordfairlane: köszi szépen, áttanulmányozom!
-
fordfairlane
veterán
Mutatok egy egymezős skeleton modellt, én így csinálnám:
<?
if($_SERVER["REQUEST_METHOD"] == "POST") {
if(!$_POST["nev"]) {
$error["nev"] = "A név üres";
} else {
$res = mysql_query('SELECT COUNT(*) FROM felhasznalok WHERE nev="'.mysql_escape_string($_POST["nev"]).'"');
if($res && mysql_num_rows($res)) {
list($no) = mysql_fetch_row($res);
if($no) $error["nev"] = "Ez a felhasználónév már foglalt!";
}
}
// további ellenőrzések
if(!$error) {
$query = 'INSERT INTO felhasznalok SET ';
$query .= 'nev="'.mysql_escape_string($_POST["nev"].'"';
// további mezők queryhez fűzése
mysql_query($query);
header("Location:".$_SERVER["SCRIPT_NAME"]."?ok=1");
exit;
// ez az átirányítás azért kell, hogyha az oké üzenetre refresht nyom,
// ne kapjon hibaüzenetet, miszerint ez a felhasználónév már foglalt.
// felhasználók lassú reagálású oldalnál hajlamosak refreshelni
}
} elseif($_GET["ok"]) {
include("fejlec.php");
?><p>Minden oké</p><?
include("lablec.php");
} else {
include("fejlec.php");
?>
<form method="post">
<input type="text" name="nev" value="<?=htmlspecialchars($_POST["nev"])?>" /> <?=$error["nev"]?><br />
<input type="submit" value="Regisztráció" />
</form>
<?
include("lablec.php");
}
?>Remélem nem maradt ki semmi, nem próbáltam ki. 19 mezőnél persze nem biztos, hogy célszerű így ömlesztve, de a vezérlési szerkezetet ebben a formában szoktam csinálni. Így egy oldalban benne van:
1. form kirakása, hiba esetén a mező tartalma megmarad, és a mező mellett megjelenik a hibaüzenet.
2. Ha minden oké, kirakja az oké szöveget, meg ami kell.
3. refresh esetén nem produkál mást, mint első betöltődésnél, ez a sikeres submit után okozhat problémát, a felhasználó megzavarodhat a nem várt üzenetektől.Fejlécet és láblécet külön fájlból szedi be, ez ízlés szerint változtatható (include("fejlec.php") és include("lablec.php"));
-
cucka
addikt
Azért ugyanoda, hogy pl. a reg.php újratöltésekor (F5) ne regeljen mégegyet, és ne is fárassza a felhasználót azzal a szöveggel, hogy már foglalt a név, inkább legyen üres a sok mező
Session-ben eltárolod, ha sikerült a regisztráció. A fárasztó üzenetek csak akkor jelennek meg, ha a session-ben nincs meg a kérdéses érték.Ott tartok, hogy megy a reg, POST-al átadom a cuccot a ment.php-nak, és ha valami gebasz van, akkor a ment.php beinclude-olja a form-ot tartalmazó php fájlt (ami őt meghívta) és egy globális változó segítségével visszaadom neki, hogy mely hibaüzeneteket kell kiírnia.
A reg.php adatait lehetőleg a reg.php-val ellenőrizd. Ha az ellenőrzés sikerült, akkor include-al a "sasold a mailed" oldalt rántod be, különben a regisztrációs űrlapot.Amiben viszont most elakadtam, hogy hogy tudom az ellenőrzés után visszaírni a mezők adatait a helyükre
Mezők kiírásánál megnézed, ott van-e a POST-ban a korábbi érték, ha igen, akkor beírod az értéket az űrlap elem megfelelő részébe. Ha bonyolult a navigáció (pl. több oldal megtekintése után is visszakeveredhetsz az űrlapos oldalra, és akkor is ott kell legyen az utolsó állapot), akkor pedig az elpost-olt adatokat rakd le a session-be, az űrlapod pedig mazsolázza ki onnan a rá vonatkozó adatokat.Lehetőleg úgy akarom megoldani, hogy fürge legyen az oldal, és ne terhelje a szervert a kelleténél jobban.
Ezen egyelőre ne görcsölj szerintem, a fentiek alap műveletek, szerver terhelésük konvergál a nullához.Ja, és alap jótanács - a session-t lehet bátran használni, sok dolgot könnyebb vele megoldani, mint mindenféle trükközéssel.
-
válasz
fordfairlane #1477 üzenetére
Oks, a jelenlegi feladat esetében hallgatok Rád. Az AJAX ráér később is.
Azért akartam ajaxot, mert úgy akartam megoldalni a dolgot, hogy amikor rányom a júzer a Submit gombra, és ugyanoda töltődik vissza az elfogadást jelző szöveg, vagy a hibaüzi a form-al együtt. Azért ugyanoda, hogy pl. a reg.php újratöltésekor (F5) ne regeljen mégegyet, és ne is fárassza a felhasználót azzal a szöveggel, hogy már foglalt a név, inkább legyen üres a sok mező. Vagyis a böngésző gombjainak tetszőleges kombinációjával ne lehessen se hibás, se félreérthető állapotot létrehozni. Lehet, hogy hülyeség...
Már lepattantam róla.
Ott tartok, hogy megy a reg, POST-al átadom a cuccot a ment.php-nak, és ha valami gebasz van, akkor a ment.php beinclude-olja a form-ot tartalmazó php fájlt (ami őt meghívta) és egy globális változó segítségével visszaadom neki, hogy mely hibaüzeneteket kell kiírnia.
Ha nincs gebasz, akkor nem include-ol, hanem elküldi a megerősítő email-t a megadott címre, és kiírja, hogy minden oké, sasolj mail-t.Amiben viszont most elakadtam, hogy hogy tudom az ellenőrzés után visszaírni a mezők adatait a helyükre. A 19db mezőt is globálissal adjam vissza neki? Lehetőleg úgy akarom megoldani, hogy fürge legyen az oldal, és ne terhelje a szervert a kelleténél jobban.
Köszi!
-
cucka
addikt
válasz
.:GoliBali:. #1476 üzenetére
Session-el lehet megoldani, a session-ről szóló netes tutorial-ok és a php-val foglalkozó könyvek szinte kivétel nélkül beléptető rendszert hoznak fel példának, szóval sok sikert
Természetesen ha van kérdésed, arra biztos fog válaszolni valaki, de nem hiszem, hogy bárkinek lenne türelme n+1.-szer is leírni ugyanazt a 3-4 oldalnyi magyarázatot arról, hogy hogyan kell nulláról megcsinálni. -
cucka
addikt
válasz
fordfairlane #1477 üzenetére
Egyetértek, teljes form feldolgozás és validálás ajax-al (főleg 19 elemű formra) tömény szívás, tehát egyszerű példa alapján kevés háttértudással elég necces belevágni.
-
fordfairlane
veterán
Ezek szerint ajax+post nem is működhet egyszerre?
Működhet, de az nem világos, hogy miért az ajaxot akarod használni a felhasználónév ellenőrzésére? Nem mondom, hogy olyan bonyolult lenne, de nem is egyszerű dolog, különösen neked nem, hiszen most kezdtél el foglalkozni a PHP-vel. Ahhoz, hogy bánni tudj az ilyen összetettebb dolgokkal, sok tapasztalat kell, jobban át kell látnod, hogyan zajlik a böngésző - szerver interakció, és nem csak szerve-, hanem kliensoldali programozásra is szükséged lesz.
Szerintem első körben a form - submit után hajtsd végre a felhasználónév foglaltságának ellenőrzését, és ha foglalt, jelenítsd meg a formot a begépelt adatokkal, és a hiba üzenettel. Erre amúgy is szükséged lesz, hiszen lehet más probléma is a felvitt adatokkal, pl. nem töltött ki kötelezően kitöltendő mezőket stb... Ez egy klasszikus form - validálás feladat, ha kell, segítek a részletekben, de a haladó technikát (AJAX) inkább csak akkor ajánlom, ha már ezek az alapvető dolgok rutinszerűen mennek.
-
.:GoliBali:.
aktív tag
Üdv.
Hirtelen nem találtam megoldást a fórumban szal leirom a problémám.Egy felhasználóneves jelszavas beléptető rendszert akarok csinálni, de olyat aminél több felhasználóvan és mindegyiknek saját jelszava.(mysql dbs-ben tárolva mindez)
Azt szeretném megcsinálni, hogy ha az oldalon belép, akkor belépve is maradjon, amíg ki nem lép.(hasonlóan, mint itt a PH!, csak jóval egyszeűbb megoldásban) Asszem ezt valahogy cookie-kal lehet megoldani, de nem tudom hogyan.
Jah és mindez azért kellene, mert egyes oldalakat/funkciókat csak akkor tudna a felhaszn. használni, ha be van jelentkezve(pl hozzászolni egy forumtémához, zárt oldalt megnézni, file-t feltölteni, saját adatlaját modosítani).
Magyar/angol oldal link-e is jól jönne. De mégjobb lenne valami forráskód, hogy hogy is műxik ez az egész.
Előre is köszi
-
Ok, értem, ezeknek a 90%-át tudtam. Azt viszont nem, hogy a Form elküldésekor mindenképp újratöltődik a lap.
Ezek szerint ajax+post nem is működhet egyszerre?A kiinduló probléma az, hogy egy regisztrációt szeretnék megvalósítani, ami már működik is. HTML Form -> Post -> PHP -> MySQL
Jelenleg nem ellenőrzi a beírt adatokat.
Azt szerettem volna megoldani, hogy a HTML Form meghívja a PHP-t, (post-al átadja az adatokat), mindenzt az oldal újratöltése nélkül.Az adatok helyességét mindenképpen PHP-val szeretném ellenőrizni, mert a felhasználó név foglaltságának ellenőrzéséhez kell a PHP.
-
cucka
addikt
A form-okkal nem értem, mit akarsz kezdeni. HTML-ben a formok úgy működnek, hogy küldéskor a form action-jében megadott url-je töltődik be. GET típusú űrlap esetén az url-hez hozzá lesznek csapva az űrlap változói, POST típusú űrlap esetén a HTTP üzenet POST részében lesznek megtalálhatók. Tehát jól látod, bármely HTML űrlap elküldése mindenképp oldal újratöltést fog eredményezni.
Az ajax általánosan úgy működik, hogy az oldal "megtekintése közben" egy url-re elküld valami adatot (ez mondjuk a php program, ami ellenőrzi, hogy helyesen töltötték-e ki az űrlapot). A php program visszaküld valami szöveget (ez tulajdonképpen a php program standard kimenete), amivel a javascript kódod csinál valamit (pl. az eredménytől függően kiírja, hogy jól töltötted-e ki az űrlapot vagy sem). Az ajax lényege, hogy ehhez nem kell újratölteni az oldalt, mert nem küldesz el semmilyen html űrlapot sehova.
Ha nagyon nem megy, később írok egy kis rövid ajax gyorstalpalót, amúgy is akartam valami közhasznút írni a logout-ra
-
Igen, szenvedek is az értelmezésével.
A Dreamweaver viszont szépen kiszinezi, és elkezdtem tagolni... De a linkedből már most többet értek.Úgy értettem, hogy ha sima Form-ot használok, akkor így használom:
<form action="akármi.php" method="post">
Az első linkemen írtak alapján az ajax miatt úgy kell meghívni a php kódot, hogy:
...a href="content/akármi.php" class="loadinto-contentwrapper"...
Tudtommal a Form action részébe nem írhatom a php file mögé, hogy "class=..."
Erre adott megoldást a második link. Leírt egy megoldást, amikor Form-ot használva lehet href-el ebből adódóan class-al ajax-al meghívni a php-t.
Egy a baj vele, hogy nem post-al műxik.Remélem, nem írtam nagy hülyeségeket!
Első körben nekem már az is elég lenne, ha meg tudnám oldalni, hogy az oldal újratöltése nélkül a form 19db változóján át tudjam adni a php-nak.
-
cucka
addikt
Ezt meg lehet tenni úgy, hogy a második linken csinálják, vagyis, hogy mögé lehessen írni, hogy class=akármi...
Ezt nem értem, írhatsz elé-utána amit akarsz, de ha lefut a kérdéses esemény, akkor elküldi a form-ot, mint ha egy input type=submit-al küldted volna.Amúgy jobban megnéztem az első linkedet, hát azt sem ajánlom tutorialnak, a javascript kódjában nulla komment van, ráadásul a sima szabványos httprequest létrehozás helyett valami előre megírt, direkt olvashatatlanra alakított cuccot használ.
Most komolyan, így mi értelme a tutorialnak, ha a példa kódod direkt úgy van megcsinálva, hogy ne lehessen megérteni? Amúgy a hozzászólások is tök jók azon az oldalon, az emberek 98%-ának fingja nincs, hogyan működik a kód, de a legérdekesebb, hogy nem is nagyon érdekli őket. -
cucka
addikt
Az első megoldás ajax-os, abból lehet tanulni, csak ugye nem űrlapokkal dolgozik.
A másodikat kicsit erős tutorial-nak vagy cikknek nevezni. Annyit csinál, hogy amikor ráklikkelsz a linkre, a szövegdobozba írt szöveg alapján átirányít a search.php-ra.
Más szóval erről a negyed sornyi beágyazott javascript kódról szól a cikk, és amúgy semmi ajax nincs benne. (Ráadásul jó szarul is csinálja, mert elég lenne meghívni a form submit metódusát küldésre, és akkor menne POST-al is meg akárhány űrlapelemmel)Esetleg nézd meg ezt: [link]. A W3Schools-on is van javascript és ajax tutorial, azzal is lehet kezdeni.
-
Sziasztok!
Egy form adatait szeretném oldal újratöltés nélkül PHP-val feldolgozni.
Erre találtam is két tutorialt. [link] és [link]
A baj ezekkel az, hogy úgy oldják meg a változók php-nek történő átadását, hogy bekerül a címsorba. Ezt én nem szeretném.
Lehet valahogy post-olni a Form Submit gombját megkerülve?
Egyéb megoldás is jó. Lényeg, hogy ne töltse újra az oldalt, és ne legyen változó a címsorban.Köszi!
ui.: (#1464) alitak: Köszi, átírom.
-
cucka
addikt
válasz
fordfairlane #1465 üzenetére
Ha az egyik helyről eléred a másik adatbázist is, akkor korrekt.
Ha viszont nem éred el, esetleg univerzálisabb megoldást szeretnél, na akkor jön a sz*pás. Csináltam ilyen programot, megvalósítható, csak egyáltalán nem triviális (pl. odafigyelni a tranzakciókra, lekezelni a hibákat/megszakadt vonalat, stb.) -
Lény
csendes tag
Sziasztok!
A problémám a következő:
Két adatbázis, egy szerveren, és arra lenne szükségen, hogy az egyik táblájuk mindig azonos legyen. Tehát, ha művelet történik az egyikben, azt beírja a másikba is. Vagy szinkronizálja a kettőt.A felszínen: Két honlap, ha az egyikre regisztrál vki, akkor a másikra is... (mint itt)
Milyen megoldásokra van lehetőség?
Köszönöm előre is a valaszokat! -
Hali!
Nem tudom, hogy ide való-e a kérdés, de hátha.
Számolni akarom, hogy egy tábla bizonyos elemét hányszor kérdezték le.
Meg is csináltam így:$nezett = $egy_sor['nezettseg']+1;
$eredmeny = mysql_query("UPDATE fotabla SET nezettseg = $nezett WHERE sorszam = $id2 ")Ezzel az a baj, hogy oldal frissítéskor folyamtosan nő a $nezett változó. Így lehet csalni. Ezt el szeretném kerülni.
Mi erre a legegyszerűbb megoldás? Ip ellenőrzés? session? Melyiket hogy?
Ja, és ha esetleg szerverkímélőbb megoldás is vana fentinél, akkor se kíméljetek!Köszi!
-
Medcomp
tag
válasz
fordfairlane #1453 üzenetére
Köszönöm a segítségedet, sikerült!
-
fordfairlane
veterán
válasz
Medcomp #1452 üzenetére
Az adattáblák módosítását az adatbáziskezelővel kell csinálni, ez független dolog a PHP-tól. Ha mysql-t használsz, akkor erre több lehetőség is van, vagy használod a mysql konzolt vagy valami adatbáziskezelő frontendet. Sqlyog, phpmyadmin stb, stb... Mivel nem írtál semmi konkrét dolgot, ezért nehéz konkrétan válaszolni is, hogy neked ebben a helyzetben pontosan hol és mit kell átírnod. Nem tudni például, hogy miféle program az, amibe bele kell nyúlni. Egy összetett programban, amit valaki más készített, ha megváltoztatsz egy programrészt, nem várt problémákat szülhet.
Mysql konzolban adattábla módosítására az ALTER TABLE sql paranccsal lehetséges. Az pedig , hogy a PHP-ban hol az a lekérdezés, ami listáz, azt csak te tudod megkeresni.
Vagy esetleg tudnál valami linket adni, ahol utánnanézhetnék?
mysql help, php help, php tutorialok, stb, stb...
-
Medcomp
tag
válasz
fordfairlane #1451 üzenetére
Ezt ki tudnád fejteni kicsit bővebben? Nem tudom, hogy ezt az adattábla módosítást hol és hogyan kéne csinálni.
Vagy esetleg tudnál valami linket adni, ahol utánnanézhetnék?
-
Medcomp
tag
Sziasztok!
Elég kezdő vagyok PHP-ben, úgyhogy ha hülyeséget kérdezek, akkor bocsánat előre is. Egy oldalt készítgetek, amiben lenne egy oldal, ahová termékek nevét és adatait olvasná be az adatbázisból a PHP. Eddig nincs is semmi gond, működik az adminból feltöltés is.
Viszont arra nem jöttem rá, hogy olyat hogy lehet csinálni, hogy adminból lehessen állítani, hogy bizonyos sorok megjelenjenek, vagy ne. Gondolom külön mező kell az adatbázisban, és valahoyg a lekérdezésnél kéne vizsgálni a mező tartalmát, és ha egyik érték jön, akkor kiírja, ha másik, akkor áturorja, és nézi a következő sort.
Google-ben keresgélek már ez után egy fél napja, de nem találtam semmit.
-
válasz
fordfairlane #1448 üzenetére
Igazad van megint!
Kijavítottam '$sz'-re, és műxik!
Köszönöm!
-
fordfairlane
veterán
Ez a sor szerintem mindenképp hibás:
$eredmeny = mysql_query( "SELECT * FROM fotabla WHERE felhnev = $sz ");
Kell valami $sz köré, ha a felhnev oszlop szöveg (varchar, text) típusú:
$eredmeny = mysql_query( "SELECT * FROM fotabla WHERE felhnev = '$sz' ");
vagy
$eredmeny = mysql_query( 'SELECT * FROM fotabla WHERE felhnev = "'.$sz.'"');
Az más téma, hogy van-e olyan felhnev érték, amire a query találatot ad. Nálad nem az a gond, hogy nincs találat, hanem hogy hibás a query.
-
válasz
fordfairlane #1446 üzenetére
Igazad van.
Az $sz változó nem üres, viszont valamiért nem talál rá a mysql_query az adott mezőre, és nem tér vissza normális adattal...
Más sort kiválasztva működik.
De ez számomra érthetetlen, mert az admin felületen látom, hogy a felhnev oszlopban ott a megfelelő érték.Karakterkódolással lehet baj? ANSI-ban van a PHP, mert ha UTF-8-ra állítom, akkor a html elejére odaírja ezt: ďťż. És az ékezetek is olvashatatlanok lesznek.
Bár ha ezzel lenne baj, akkor a másik érték sem működne, vagy számokra más vonatkozik? -
fordfairlane
veterán
Az előtte levő lekérdezés valami oknál fogva nem ad ereményt, így $eredmeny változó nem mysql result set típusú lesz. Lehet, hogy $sz változó üres, így a query string nem lesz helyes szintaktikailag. Illetve most nézem, bizonyára felhasználónév lesz benne. Akkor ez így nem jó, a queryben idézőjelek közé kell kerüljön a string.
-
Sziasztok!
Valami érthetetlen történik nálam.
Ez a kód:
$eredmeny = mysql_query( "SELECT * FROM fotabla WHERE felhnev = $sz ");
$sorok = mysql_num_rows($eredmeny);
if ($sorok > 0)
{
...
}
else print $sorok;Erre ezt írja ki, hogy: "Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /.../xy.php on line 10"
A 10. sor ez:
$sorok = mysql_num_rows($eredmeny);
A kódot a php.net-ről néztem...
A táblában van olyan sor, amire vissza kéne térnie normális étékkel.
Hol baltázom el? Köszi!
-
cucka
addikt
Például itt egy Netpincér rendelés igazolás fejlécének spam-el kapcsolatos része. Ingyenes levelezőkkel nem tudom, mi a helyzet, olyannal nem teszteltem.
X-ELTE-VirusStatus: clean
X-ELTE-SpamScore: -0.4
X-ELTE-SpamLevel:
X-ELTE-SpamCheck: no
X-ELTE-SpamVersion: ELTE 2.0
X-ELTE-SpamCheck-Details: score=-0.4 required=5.9 tests=BAYES_00,SUBJECT_NEEDS_ENCODING,SUBJ_ILLEGAL_CHARS autolearn=no SpamAssassin version=3.2.5
1.1 SUBJ_ILLEGAL_CHARS Subject: has too many raw illegal characters
-1.5 BAYES_00 BODY: Bayesian spam probability is 0 to 1%
[score: 0.0000]
0.0 SUBJECT_NEEDS_ENCODING SUBJECT_NEEDS_ENCODINGAmúgy nyilván szerverbeállítás kérdése, hogy berakja-e ezeket a fejlécbe. Ha nagyon nem megy, küldd át a teszt levelet az adatlapomon látható címre és megmondom, mi a probléma a levéllel.
Mod: közben eszembe jutott, hogy jó lenne mutatni valami olyat, ami több ponton vérzik el a spamszűrőnél, szóval itt van egy valódi spam, amit hajszál híján megfogott a spamAssasin:
X-ELTE-VirusStatus: clean
X-ELTE-SpamScore: 5.7
X-ELTE-SpamLevel: sssss
X-ELTE-SpamCheck: no
X-ELTE-SpamVersion: ELTE 2.0
X-ELTE-SpamCheck-Details: score=5.7 required=5.9 tests=BAYES_50,HTML_MESSAGE,RCVD_IN_PBL,RCVD_IN_SORBS_DUL,RDNS_DYNAMIC,URI_HEX autolearn=no SpamAssassin version=3.2.5
0.4 URI_HEX URI: URI hostname has long hexadecimal sequence
0.8 HTML_MESSAGE BODY: HTML included in message
1.0 BAYES_50 BODY: Bayesian spam probability is 40 to 60%
[score: 0.5197]
2.5 RCVD_IN_SORBS_DUL RBL: SORBS: sent directly from dynamic IP address
[87.16.175.134 listed in dnsbl.sorbs.net]
0.9 RCVD_IN_PBL RBL: Received via a relay in Spamhaus PBL
[87.16.175.134 listed in zen.spamhaus.org]
0.1 RDNS_DYNAMIC Delivered to trusted network by host with
dynamic-looking rDNS -
A gmail, aim, yahoo nem írt bele semmit (legalábbis a "show details"-re kattintva semi sem látszik), a hotmail meg sem mutatja a fejlécet.
Mivel lehet megnézni a teljes fejlécet, ami tartalmazza a pontokat?mod: kipróbáltam, hogy leszedem pop3-al, de ahhoz át kellett raknom az inbox-ba a "not spam" opcióval. Azóta nem jelöli meg SPAM-ként a gmail.
Másnál bezzeg meg fogja jelölni.
Semmit nem látok rajta Thunderbird-el sem a részletes infónál.Legalábbis, pontozásnak, vagy SPAM-el kapcsolatos jelölésnek nyoma sincs.
-
Háj!
Miért rakja SPAM könyvtárba több levelező rendszer is a PHP mail fv.-nyel küldött levelet?
$to = (isset($_GET['to']) && !empty($_GET['to'])) ? ltrim($_GET['to'], './') : 'error';
$subject = $_POST['targy'];
$message = $_POST['szoveg'];
$felado = $_POST['felado'];
$headers = 'From: '.$felado;
mail($to, $subject, $message, $headers);Köszi!
-
Sziasztok!
Csináltam regisztrációt a weboldalamra.
Az adatok megadására szolgáló form a html része, és POST-al adja át az adatokat a PHP fájlnak, ami az adatbázisba mentést végzi.
A probléma ott van, hogy ha a submit gomb után újratölti a júzer az oldalat, akkor kétszer, vagy még többször bekerül az adatbázisba a regisztráció.
Ezt hogy szokás lekezelni?
Azt már megoldottam, hogy kiírja, hogy bocsesz, de már van ilyen néven regisztrált tag, de rögtön a regisztráció után ez elég fura, ha véletlenül frissíti az oldalt...
Az egész felépítését szeretném valahogy megoldani, hogy a frissítés ne számítson újbóli regisztrációnak, csak még nincs jó ötletem.
Olyasmire gondoltam, hogy törölje a post-ot az adatok adatbázisba írása után, és ha üres, akkor dobja csak vissza az üres reglapot, vagy ilyesmi...Nem vagyok nagy spíler, ezért kérdezlek meg Titeket is.
Köszi!
-
vakondka
őstag
Lenne egy elég bonyolult (legalábbis nekem) lekérdezésem, ami már működik, de nem pontosan úgy ahogyan én szeretném...
SELECT p.products_id, p.products_model, p.products_tax_class_id, p.products_quantity, p.products_image, pd.products_name, pd.products_description, pc.categories_id, man.manufacturers_name, IF( s.status, s.specials_new_products_price, NULL ) AS specials_new_products_price, IF( s.status, s.specials_new_products_price, p.products_price ) AS final_price
FROM products p
LEFT JOIN specials s ON p.products_id = s.products_id, products_description pd, products_to_categories pc, manufacturers man
WHERE p.products_id = pd.products_id
AND p.products_id = pc.products_id
AND p.products_status =1
AND pd.language_id = 4
AND p.manufacturers_id = man.manufacturers_id
ORDER BY pc.categories_id, pd.products_nameAz egyetlen gondom, hogy kellene bele valahogyan még egy LEFT JOIN, hogy azokat a termékeket is kiírja, amelyiknek nincs gyártója, vagyis a products táblában p.manufacturers_id mezőben nincs adat.
-
Ja, értem.
Ha kész lesz, és működni fog már az oldal, és nem az lesz a gondom, hogy ezt meg azt hogy oldjam meg, akkor visszamenőleg végignyálazom az egészet, és megszépítem.
Ebből is tanulok. Persze az ezután következőknél igyekszem odafigyelni az ilyesmire, már ha tudni fogom, hogy adott esetben mit kell lekezelni. Pár ilyen dolog már megy, de tuti van olyan helyzet, amiről eszembe sem jutna, hogy van lekezelni való.
A végén majd ráküldök egy szakembert, hogy véleményezze, hogy lehet-e rajta javítani, és gyorsítani. -
cucka
addikt
A "szépség" alatt nem az esztétikát értettem, hanem hogy nem kezelted le, hogy a mysql_num_rows egyaránt visszatérhet false-al és 0-val is. Ettől még működőképes a kódod, valószínűleg soha nem fogod észrevenni a weboldal tesztelése során, hogy valami gond van vele, de ettől még nem 100%-osan helyes a fentiek miatt.
-
cucka
addikt
Például
select count(*) as cnt from tabla where nev='Rezső'
Pont ugyanannyira szerverkimélő, mint a te megoldásod, ugyanakkor rákényszerít a lentinél szebb php kód írására
Konkrétan azzal a mysql_num_rows-al van a baj:
Egyrészt így nem fog működni, mert meg kell adni neki a mysql_query által visszaadott resource-t. (jelen esetben a $eredmeny-t)
Másrészt ez a függvény egyaránt visszatérhet 0-val (nincsenek sorok) vagy false-al (hiba történt). Ha így rakod be a feltételbe, akkor mindkét esetben false-ra fog kiértékelődni, tehát a hibás esetet nem kezelted le. A felhasználói oldalon meg annyit látsz majd belőle, hogy bármit írsz be, el fogja fogadni, mint érvényes felhasználónév. -
Heló!
Egy táblában tárolom a leendő ügyfelek regisztrációs adatait, és jelenleg az automatikusan növekvő sorszám alapján azonosítom az illetőket.
Viszont rájöttem, hogy hülye vagyok, és nem ellenőriztem le a regisztrációkor, hogy a felhasználói név létezik-e már...
Van erre valami egyszerű módszer, vagy manuálisan nézzem meg a táblát, valahogy így:$eredmeny = mysql_query( "SELECT * FROM tábla WHERE nev = 'Rezső' ");
if (mysql_num_rows) { print (" A felhasználói név már foglalt, kérem válasszon másikat!"); }
else { include ('reg.php'); }?
Létezik ennél szerver-kímélőbb vagy akármilyen szempontból jobb/egyszerűbb megoldás?
Köszi!
-
cucka
addikt
Concat függvény.
select * from tabla where concat(mezo1,mezo2,mezo3) like '%szoveg%'
Nem a legjobb megoldás, nagy adatmennyiség esetén elég lassú lesz, de kis forgalmú oldalakhoz megteszi ez is. Ha ennél több kell, lehet trükközni, pl. létrehozni egy mezőt, amiben ott van az adott rekord összes szöveges adata és abban a mezőben keresni - ekkor a rekord beszúrásánál/frissítésénél ezt a mezőt is frissíted, cserébe megspórolod a concat-ot. Ezen kívül lehet cache-elni a kereséseket külön táblában, stb. Erre nincs igazából szabály, kreatívnak kell lenni.
-
Na, mégis:
Hogy tudok úgy keresni egy táblában, hogy nem csak egy mezőben, hanem az összes mezőben nézze meg?
OR-ral elálasztva pakoljam egymás mögé az összes mezőt?
Valami kelyettesítő szó, vagy karakter létezik? *-gal nem műxik.
Guglizok, de még nem találtam megoldást.Köcce!
-
Tárgytalan...
-
válasz
Louloudaki #1419 üzenetére
Köszi!
-
Sziasztok!
Állati kezdő vagyok a témában, és már az alapoknál elakadtam.
A feladat az, hogy a beviteli mezők tartalmát egy létező adatbázis létező, de még üres táblájába írjam.
Ha nem töltöm ki a mezőket, akkor ezt kapom vissza:
"You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' , , , , , , , , , , )' at line 2"
Ha kitöltöm, akkor ezt:
"Unknown column 'a' in 'field list'"
'a' betűt írtam az első mezőbe, de bármi másra ugyanazt írja ki, amit beírok.
Olyan, mintha a mező tartalmát akarná azonosítani az oszlop nevével...Ez a kód:
<?php
$cegnev = $_POST['cegnev'];
$cim = $_POST['cim'];
$tel = $_POST['tel'];
$fax = $_POST['fax'];
$email = $_POST['email'];
$web1 = $_POST['web1'];
$web2 = $_POST['web2'];
$minosites = $_POST['minosites'];
$markanev = $_POST['markanev'];
$leiras = $_POST['leiras'];
$termekek = $_POST['termekek'];
$ajanlat = $_POST['ajanlat'];
$kapcsolat = mysql_connect( *** );
if ( ! $kapcsolat ) die( "Nem lehet csatlakozni a MySQL kiszolgalohoz." );
mysql_select_db( " *** " ) or die ( "Nem lehet megnyitni az adatbázist." );
mysql_query( "INSERT INTO fotabla ( cegnev, cim, tel, fax, email, web1, web2, minosites, markanev, leiras, termekek, ajanlat )
VALUES ( $cegnev, $cim, $tel, $fax, $email, $web1, $web2, $minosites, $markanev, $leiras, $termekek, $ajanlat )")
or die ( mysql_error() );
mysql_close( $kapcsolat );
?>Biztos, valami nagyon alap hiba van, de nem jövök rá.
-
Geree
senior tag
Sziasztok! Help pls! Megpróbálom érthetően leírni a problémámat:
van egy táblázat ami kilistáz egy táblát és ebben minden sor végére szeretnék tenni egy Update gombot, ami megadott mezőket frissít. A táblázatban a form igy néz ki:
<form method="POST" action="<?php echo $PHP_SELF;?>">
<input type=hidden name=user_id value=<?php echo "$_POST[user_id]"; ?>>
<input type=hidden name=szin value=<?php echo "$_POST[szin]"; ?>>
<input type=hidden name=targy value=<?php echo "$sor[targy_id]"; ?>>
<input type="submit" name="update" value="CSERE">és az oldal elején van egy if :
if(isset($_POST['update'])) {
mysql_query("UPDATE ab_targyak SET user_id = '$_POST[user_id]', targy_eladva = '1' WHERE ab_targyak.targy_id = $_POST[targy] LIMIT 1 ;");a probléma, hogy mindig az utolsó targy_id kerül elküldésre (_POST) bármelyik gombot is nyomom meg... Talán érthető, nem értem miért nem műxik....
-
válasz
fordfairlane #1413 üzenetére
Kár, azért köszi!
Még nézelődöm, mert nekem márpedig olyan kell.
Végső esetben írok egyet, bár az nekem még elég nagy feladat. -
fordfairlane
veterán
Ezzel mindent lehet, új táblát létrehozni, meglévőt átvariálni, tartalmat szerkeszteni, keresni benne stb... de minimális relációs adatbázis ismeret, pl. MS Access nem árt hozzá. Kifejezetten Excel stílusú grides szerkesztőt nem ismerek. Én a SQLyogot használom [link], de ez nem webes, hanem telepíthető Win32 alkalmazás, és ez sem olyan, mint egy Excel.
-
válasz
fordfairlane #1411 üzenetére
Ilyen van a tárhelyen, de ezzel lehet szerkeszteni a táblák tartalmát is?
A weblap tulajdonosának kellene, aki nem ért hozzá, viszont az excel megy neki. -
fordfairlane
veterán
Ilyenre gondoltál? Phpmyadmin
-
Sziasztok!
Létezik olyan weben futó progi, amivel lehet egy MySQL adatbázist szerkeszteni? Olyasmire gondoltam, mintha Excel-ben látnám a táblát. Mindezt online.
Nem lenne baj, ha tudna olyat is, hogy oszloponként csak bizonyos lehetőségek közül lehetne választani, de ez már csak extra.Köszi!
-
3dr0fyc.
csendes tag
Van egy oldalam...amibe egy kicsit el akatam az szerkesztésben...Oldalam na és szoval vna egy kétt dolog amib kéne egy kiss segitség...pl.: a login hogy ha vlaki bejelntkezik akkor olyan helyre dobja amilyen joga van hozá..pl.:admin:mindent szabad..ha vlaki tudna segiteni...az irjon nekem ide:grecz6@dualchat.hu vagy msn:greczblazs@hotmail.com
Elöre is köszönöm! -
Napster01
tag
válasz
Neil Watts #1407 üzenetére
Az említett Joomla, Drupal tartalomkezelők és társai mivel php-ra épülnek használják az adatbázist, ha működik a wamp rendesen, akkor ha bemásolod a tartalomkezelő fájljait a webrootba, a benne levő telepítő fájl segítségével (php-fusion esetén setup.php, dupal esetén install.php) böngészőből be tudod állítani a mysql adatbázis adatokat(usernév, jelszó, adatbázis név..stb.), és ha megfelelő a beállítás, akkor hozzáadja az adatbázishoz a szükséges táblákat, és működni fog az oldalad. Viszont azt hozzá kell tenni, ha valóban saját gépről akarsz webszervert futtatni, akkor az a neted és a géped egyaránt használni fogja.... Én inkább maradnék az ingyenes tárhelyszolgáltatóknál, talán próbálj ki néhány külföldi szolgáltatót, hátha az jobban bejön
-
Sziasztok!
Ilyen téren még nagyon kezdő vagyok úgyhogy...
A kérdésem a következő:
Azt hogy tudnám megcsinálni Windows rendszeren, hogy normálisan menjen a saját gépemről a Joomla/Drupal? (Nagyon sz*rok az ingyenes tárhelyek
) Felraktam a WAMP-ot, és létrehoztam egy MYSQL adatbázist. Ez idáig OK, de mire szolgálnak benne a táblák és a sorok? És a soroknak milyen nevet, típust adjak? Mi ez a VARCHAR, INIT, stb? Még sosem csináltam, ilyet, úgyhogy egy kis segítség kéne!
Remélem teljesen érthető volt amit írtam!
Üdv. Core2
-
fordfairlane
veterán
-
válasz
fordfairlane #1402 üzenetére
Wow, így már műxik.
Köszi!Az a vicc, hogy egy .pdf doksiból olvastam...
Másik kérdés, hogy lehet-e egy meglévő, adattal feltöltött táblához új mezőt hozzáadni? És hogy?
Vagyis meg kell-e terveznem véglegesen tábla felépítését, vagy később is tudom bővíteni?
Ha netán annyi mezőt csinálok, hogy tuti később is elég legyen, akkor nem fogok szívni vele a továbbiakban? Vagy esetleg lehet ettől lassabb az oldal?Köszi!
-
fordfairlane
veterán
CREATE TABLE customer
(First_Name char(50),
Last_Name char(50),
Address char(50),
City char(50),
Country char(25),
Birth_Date date);Ez egy mysql query, nem php parancs, ennek megfelelően kell kezelni:
mysql_query("CREATE TABLE customer
(First_Name char(50),
Last_Name char(50),
Address char(50),
City char(50),
Country char(25),
Birth_Date date);"); -
Sziasztok!
Egy nagyon alap kérdésem lenne.
Egy sima táblát akarok létrehozni, de ezt írj aki:Parse error: syntax error, unexpected T_STRING in *útvonal*/uj/proba.php on line ...
A megjelölt sor a "Create Table" kezdetű.
A forrás:
<?php
$kapcsolat = mysql_connect( "localhost", "felhasználó", "jelszó" );
if ( ! $kapcsolat ) die( "Nem lehet csatlakozni a MySQL kiszolgalohoz." );
mysql_select_db( "adatbázis" ) or die ( "Nem lehet megnyitni az adatbázist." );
CREATE TABLE customer
(First_Name char(50),
Last_Name char(50),
Address char(50),
City char(50),
Country char(25),
Birth_Date date);
mysql_close( $kapcsolat );
?>Nem jövök rá, hogy mi a baja. Ha kiveszem a vastag részt, akkor nincs hibaüzenet.
Köszi!
Aktív témák
Hirdetés
- Elkészült a PCI Express 7.0-s szabvány
- Egyre csak fejlődik az AI, emberek tízezreit rúgja majd ki a BT
- Kínai és egyéb olcsó órák topikja
- Milyen alaplapot vegyek?
- Miért vezet mindenki úgy, mint egy állat?
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Ventilátorok - Ház, CPU (borda, radiátor), VGA
- Tőzsde és gazdaság
- ASUS routerek
- Mobil flották
- További aktív témák...
- Bomba ár! Lenovo ThinkPad T15 G1 - i5-10GEN I 16GB I 256GB SSD I 15,6" FHD Touch I Cam I W11 I Gari!
- ÁRGARANCIA! Épített KomPhone Intel i9 14900KF 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- Azonnali készpénzes AMD Ryzen 1xxx 2xxx 3xxx 5xxx processzor felvásárlás személyesen / csomagküldés
- Samsung Galaxy A32 4G 128GB, Kártyafüggetlen, 1 Év Garanciával
- LG 48C2 - 48" OLED EVO - 4K 120Hz 1ms - NVIDIA G-Sync - FreeSync Premium - HDMI 2.1 - A9 Gen5 CPU
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: CAMERA-PRO Hungary Kft
Város: Budapest