Aktív témák
-
FlashPlayer
tag
válasz
Sk8erPeter #2099 üzenetére
Igazából én ilyen tutoriált kerestem, és ha beírod google-ba, hogy php and mysql, akkor nem igazán dobja ki a hivatalos oldalt, néha figyelmetlen az ember
De ezen felül jogos amit mondotok, viszont veletek is megesik gondolom, hogy a szemetek előtt van a megoldás.M1, azért köszönöm a választ!!
-
Sk8erPeter
nagyúr
válasz
FlashPlayer #2098 üzenetére
Hát ez vicces, ha az ember elkezd érdemben foglalkozni a PHP-val, lehetetlen, hogy ne botoljon bele a HIVATALOS oldalba...
Bocs, de ez arra enged következtetni, hogy azelőtt kérdeztél, mielőtt megpróbáltál volna kicsikét normálisan utánanézni. -
FlashPlayer
tag
válasz
Peter Kiss #2097 üzenetére
jogos! Már minden oldalt néztem, de ezt nem
köszi.
-
Peter Kiss
őstag
válasz
FlashPlayer #2096 üzenetére
Van egy php.net nevű oldal, azt meg kellene lesni.
-
FlashPlayer
tag
Sziasztok!
Nagyon merész leszek, és remélem nem baj, de lenne egy elég láma kérdésem.
Most kezdtem el MySQL-t meg PHP-t használni, eddig csak html-t meg css-t tanultam.
Egy olyan "blogot" szeretnék írni, hogy MySQL-be, létrehoztam egy táblát, ( id, title,author,text,date,) És adtam is neki rekordokat, 1 bejegyzést.
Viszont most ezt valahogyan meg kellene jeleníteni a honlapon, addig eljutottam, hogy megvan a "kapcsolat.php" (mysql-re csatlakozik) a PHP-file-ba beírtam, hogy include kapcsolat.php.
<?
include('kapcsolat.php');
if ($_GET[id] == "")
{
blog_show();
}
?>És így itt elakadtam, hogyan kell behívni egy ilyen bejegyzést?
-
Mid2100
csendes tag
válasz
Sk8erPeter #2094 üzenetére
Sziasztok!
Project munkára (jobb esetben munkákra) keresnék olyan php programozót, aki mellékállásban el tudna vállalni egy online ügyfélnyilvántartó rendszer létrehozását. Amennyiben valakit érdekel, keressetek itt a prohardveren, vagy telefonon: 06-30-6020-001 -
Sk8erPeter
nagyúr
Másik topicban már megvolt a hirdetés, elég lesz egy helyen.....
-
1NT1M3
csendes tag
Üdv!
Komplett működő online szöveges mmorpg játék indításához keresek társat illetve segítséget.
Az oldalt már működtettem , amit eladtam, és ennek a motorját átalakítottam lopott idő című film mintájára.
A játék az én működtetésem alatt jövedelmező volt rengeteg sms és átutalásos támogatás érkezett 2 hónap alatt, de anyagi gondok miatt tovább adtam.
Nem kell napi órákat előtte tölteni programozással, néha kell ránézni újítani 1-2 dolgot és mégis hozza a pénzt megfelelő reklámmal.Amennyiben érdekel, hogy társként tulajdonosként beszállsz várom leveled:
topsite00@gmail.com email címre
További szép napot! -
Sk8erPeter
nagyúr
válasz
wolandino #2091 üzenetére
Mivel nem konkretizáltad a dolgot, magunktól nehéz kitalálni, hogy ha egyszer a felhasználó töröl, akkor mindenhonnan törölnie kellene a dolgokat, vagy pl. az összekapcsoló táblában mondjuk csak be kéne rakni egy NULL-t az egyik mezőhöz, jelezvén, hogy pl. az adott elemnél hiányzik egy "párosítás", még a hozzákapcsolásnak csak az "egyik fele" van meg, és lehetne még pár lehetséges változatot kitalálni.
Nem egyértelmű tehát, hogy miket jelölhet törlésre... olyan eset is elképzelhető, hogy a bejegyzéseket egyszerűen csak az összekapcsoló táblából kellene törölni, tehát akkor egyedül az összekapcsoló táblában nyilvántartott id-k közül kellene választania a júzernek (nyilván a hozzátartozó felhasználóbarát adat segítségével, ne id-k közül válogasson). Akkor meg egyértelmű: szűkíted a törlést arra az id-re a kapcsoló táblából, amit a júzer kiválasztott, és megvagy. De mondom, nem specifikáltad a problémát. -
wolandino
tag
Sziasztok!
Van egy táblám amiben 3 id-t tárolok.
Az első megadja a másik kettő kapcsolatát, mivel az egyes id-k csak egy adott táblán belül egyediek, de két különböző tábla elemeinek lehet azonos id-je.Először a felhasználó lekérdezi az általa megadott id-hez tartozó sorokat, majd egy felületen töröl és hozzáad ezekhez.
Majd az összes változását egyben szeretném elmenteni.Egy jó algoritmus kellene, hogy hogyan töröljem azokat, amiket törlésre jelölt és hogyan szúrjam be az újakat a leghatékonyabban.
Köszönettel,
W. -
coco2
őstag
PhpMyAdmin alatt akarok beadni neki egy egészen egyszerű tárolt eljárást (a "test" adatbázis alá, wamp 2.2d csomag), és egy sima if-et nem hajlandó elfogadni.
Ha ezt adom be, simán elfogadja, és létre is hozza a tárolt eljárást:
delimiter $$
drop procedure if exists proba $$
create procedure proba(in my_input bigint) begin
declare my_var bigint;
select 1 into my_var;
select 2 into my_var;
end $$
delimiter ;Ennél viszont hibát jelez ki:
delimiter $$
drop procedure if exists proba $$
create procedure proba(in my_input bigint) begin
declare my_var bigint;
select 1 into my_var;
if (my_var=my_input) then select 2 into my_var;
end $$
delimiter ;#1064 - 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 5 -
wolandino
tag
Sziasztok!
MVC keretrendszert használom.
A feladat annyi, hogy van egy táblázatom aminek minden sorát lehet editálni és törölni egy-egy ikon segítségével.
Minden sorhoz így van egy delete és edit gomb.
A kérdés, hogy hogyan érem el, hogy a vezérlő a megfelelő sor adatait kapja meg, amikor megnyomom a megfelelő gombot.Lehet javascriptes megoldás is.
Köszönettel,
W. -
coco2
őstag
válasz
Sk8erPeter #2085 üzenetére
És majd várhatom, hogy beszólnak a trollok arra, hogyan szerkesztem a kód szöveget. Hát köszike, a nélkül még megvagyok
-
coco2
őstag
válasz
PazsitZ #2082 üzenetére
Windows hálózat alatt folyik a fejlesztés, windowsos az svn is meg minden. De a mysql szerver linux alatt fut (egy fizikailag távoli gépen), és jellemzően mysql-front-al kötök hozzá. Ha minden módosításnál folyton be kellene telnetelnem linux alá, elég rendesen pazarolná a figyelmemet. Folyamat két külön rendszeren dolgozni simán csak idegőrlő. Próbáld ki, és meglátod.
Amúgy scriptből összefűzni, azért az nem lenne semmi. Arra nem vállalkoztam. Fogtam inkább egy notepadot, meg a pöttynetet, és abban írtam meg. Mostanra pöpec.
-
coco2
őstag
válasz
Sk8erPeter #2080 üzenetére
Részemről helyrajzi és ahhoz képest kezelhetőségi dolgokat részesítek előnyben, így nem tudom azt javasolni, hogy bárki más is úgy döntsön, ahogyan én, de kérésedre leírom, én hogyan jártam.
A workbench azt mondta "ERROR", amikor elért az első source utasításig. A console a helyi gépen szeretné látni a scripteket, de win alól linux felé fejlesztve ez sem valami kényelmes. Találtam egy olyat, hogy "mysql-front", ami sokkal olajozottabbnak néz ki, mint a workbench, de ez is csak egyetlen szövegfile-t szeret. Jelenleg éppen keresgélek szöveges processzor alkalmazás után, ami tud include-olni, és ha nem találok, akkor írni fogok egyet pöttynet-ben, mert abban igazából nem bonyolult, és az legalább biztos testre szabott alkalmazás lesz az én igényeimnek.
-
-
coco2
őstag
válasz
Sk8erPeter #2076 üzenetére
Sk8erPeter:
Egy cefetül szanaszét terjengős adatbázisról van szó. Eddig tervezet alapján ~100 tábla (és ezek mind denormalizált sok oszlopos táblák), és ~400-nál több tárolt eljárás van, és még nincs vége a tervezési fázisnak sem. Mindezeket ha egyetlen szövegfile-ba raknám, szerintem a végére olyan fél mega lenne. Ergo hogy egyáltalán áttekinthető maradjon a már elvégzett munka, én arra gondoltam, hogy tematika alapján külön szövegfile-okba pakolok majd ki kommentezéssel együtt mindent. A szöveg file alatt sql scripteket értek (dml, ddl, pl/sql).
A saját szöveg processzor ötlete eddig eszembe sem jutott
Ha nincs rá semmi normális keretrendszer, valószínűleg ezt fogom tenni.
Lacces:
Megnézem a workbench-et, köszönöm a tippet.
PazsitZ:
Azt "source"-t mi fordítaná le olyan funkcióra, hogy buborék elv alapján include-ra kerüljenek a file-ok? Pld mysql frontend közölte velem, hogy bocsesz, de ilyen kulcsszó nem létezik. Esetleg van valami fejlettebb script konzolja a mysql-nek, ami értelmezni tudja?
-
-
Sk8erPeter
nagyúr
Ezek a "szanaszét külön fileokba pakolt script állományok" mind külön adatbázis-dumpfájlok MySQL-ben írva?
Vagy mi?
Nem igazán konkretizáltad.
Önmagában a fájlok összefűzésére lehetne írni egy batch-fájlt is, aztán ezt .gz-ben tömörítve fel lehetne küldeni a szerverre egyben, dehát ki tudja, a Te változatodhoz ez megfelel-e, számomra legalábbis nem derült ki a hsz.-edből. -
coco2
őstag
Hali,
Mysql keretrendszer kérdés.
Valami keretrendszert keresek mysql-hez, ami meg tudja csinálni, hogy szanaszét külön fileokba pakolt script állományokat egybefűzve dobna rá az sql serverre.
Sok táblám, és még több tárolt eljárásom van, amit csak úgy tudok rendben tartani, hogy az egyikbe be-include-olgatom az összes többit, és még csak nem is ugyanabban a mappában lesznek azok a fileok.
Mit szokás erre használni?
-
Lacces
őstag
Segítség kellene.
Régi sima Oracel SQL-es adatbázist akarok kompintani MySQL-be (gyakorolni és tanulni)
A szokásos szintaxis hibát írja rá, és nem tom, hogy mi az... (eddig 2 táblát felvittem és jó volt)
INSERT INTO `O_VERSENYZOK`(`AZON`, `NEV`, `SZUL_DAT`, `ORSZAG_AZON`, `EGYEN_CSAPAT`, `SZUL_HELY`) VALUES (847,'Arn Gréta', '1979.04.13',131,'e','Budapest');Az eredeti sql:
insert into o_versenyzok (AZON,NEV,SZUL_DAT,ORSZAG_AZON,
EGYEN_CSAPAT,SZUL_HELY) values (847,'Arn Gréta',to_date('1979.04.13','yyyy.mm.dd'),131,'e','Budapest');Tábla így nézz ki:
1 AZON int(5)
2 NEV varchar(50)
3 SZUL_DAT date More
4 ORSZAG_AZON int(5)
5 EGYEN_CSAPAT varchar(1)
6 SZUL_HELY varchar(50)Dátumnál to_date - sql függvény volt, de lehet rossz mysql megfelelő függvényt keresek neki és ezért dob hibát.
-
SektorFlop
aktív tag
válasz
Sk8erPeter #2071 üzenetére
köszi! és bocsi a lustaságomért, csak kérdezés után használtam ki a google által nyújtotta lehetőségeket...
-
Lacces
őstag
válasz
Sk8erPeter #2069 üzenetére
Lehet, kell valami véletlen kigenerált termékek a főoldalra. És ebből csak 5db.
Vagy oldalsávba. -
Sk8erPeter
nagyúr
válasz
SektorFlop #2068 üzenetére
SELECT `id` FROM `test_table`
ORDER BY RAND()Ezt felhasználva csináld meg, amit szeretnél. Nem fejtetted ki bővebben, mit értesz azalatt, hogy "5 db sort szeretnék lekérni id alapján véletlenszerűen."
-
SektorFlop
aktív tag
5 db sort szeretnék lekérni id alapján véletlenszerűen. Tudna valaki segíteni? volt egy öltetem de menet közbe kezdet bevillanni hogy ez közel sem jó.
-
PazsitZ
addikt
válasz
SektorFlop #2065 üzenetére
Miért nem ?
UPDATE `kosar` SET `kosar_db` = kosar_db+1 WHERE ... -
SektorFlop
aktív tag
valaki ha esetleg tudna segíteni... a darabszám adatbázisban 2-nél feljebb nem megy
$lekerdezes=mysql_query("SELECT * FROM kosar WHERE pizza_id='$id' and felhasznalo='$felhasznalo' and ar='$ar' and pizza_meret='$meret'");
if(mysql_num_rows($lekerdezes)==0){
$sql="INSERT INTO kosar (pizza_id, felhasznalo, ar, kosar_db, pizza_meret) VALUES ('$id', '$felhasznalo', '$ar', '1', $meret)";
}
else {
$db=mysql_num_rows($lekerdezes);
$darab=$db+1;
$sql="UPDATE `kosar` SET `kosar_db` = '$darab' WHERE `pizza_id` = '$id' and felhasznalo='$felhasznalo' and pizza_meret='$meret';";
} -
SektorFlop
aktív tag
tudom nem ide kellene, de már nem tudom hol kérdezni
valaki esetleg PhoneGap-el nem foglalkozik? vagy esetleg nem tudna segíteni benne?
-
cAby
tag
válasz
MR. Anderson #2058 üzenetére
Pedig beszúrásnak jónak kell lennie így, nekem működik rendesen.
Biztos, hogy sikeresen kapcsolódik az adatbázishoz?
Megnézted adatbázisban is, hogy nem vitte fel vagy csak ezzel a lekérdezéssel?
Változókra az értéket rendesen megkapja?Kiírátásnál nem kellene szóköz kiírás és változó közé is '.' ?
Tehát ehelyett: " " $sor['jelszo']
így: " " . $sor['jelszo']+ <br> helyett <br />
-
cAby
tag
válasz
SektorFlop #2060 üzenetére
Nem feltétlenül kell az oszlopok megnevezését megadni, csak ha több oszlopot tartalmaz a tábla, mint amennyi adatot be akar szúrni. Tehát az 'adatok' tábla nem csak a username, jelszo, email, mobil, varos oszlopot tartalmazza.
-
SektorFlop
aktív tag
válasz
MR. Anderson #2058 üzenetére
$parancs = "INSERT INTO adatok (username, jelszo, email, mobil, varos) VALUES ('$username' , '$jelszo' , '$email' , '$mobil' , '$varos')";
természetesen cseréld le ha nem azok a rekordok nevei!
-
Peter Kiss
őstag
válasz
MR. Anderson #2058 üzenetére
INSERT INTO-ba kellene az oszlopok megnevezése.
-
MR. Anderson
tag
Sziasztok!
nemrég kezdtem el komolyabban foglalkozni a webszerkesztéssel és lenne egy kérdésem: adott egy regisztrációs adatokat mysql táblába továbbító php. nem tudom mi a hiba mert nem megy át az sql-be semmi.
itt a kód:
<?php
$username=$_POST['username'];
$jelszo=$_POST['jelszo'];
$email=$_POST['email'];
$mobil=$_POST['mobil'];
$varos=$_POST['varos'];include("dbconnect2.php");
$parancs = "INSERT INTO adatok VALUES ('$username' , '$jelszo' , '$email' , '$mobil' , '$varos')";
mysql_query($parancs);$parancs = mysql_query("SELECT * FROM adatok");
while ($sor = mysql_fetch_array($parancs))
{
echo $sor['username'] . " " $sor['jelszo'] . " " $sor['email']. " " $sor['mobil'] . " " $sor['varos'] . " " ;
echo "<br>";
}mysql_close($kapcsolat);
?> -
cAby
tag
válasz
Brown ügynök #2055 üzenetére
Köszi a választ!
Hasonlóan próbálom megoldani, azt hittem van más lehetőség is.
De amit írtál is csak akkor jó, ha be van pipálva a kp. Ha nincs, akkor az egy újabb eset, újra vizsgálni kell. (Mert ugye, akkor a WHERE-t nem fűzi hozzá a $query-hez.)Tehát, ha van vagy 20 választható feltétel, akkor nagyon bele lehet bonyolódni. :S
A jQuery-t meg áttanulmányozom, köszönöm.
-
Brown ügynök
senior tag
Ha ilyen sok feltételt kell vizsgálni egy lekérdezéskor, akkor érdemes úgy megírni a programot, hogy az állítsa össze a lekérdezést. Például, ha az apartmanokat keressük, készpénzes, bankkártyás fizetéssel:
$query = " select apartman from szallas ";
if ($kp != '')
{
$query .= " where kp = 1 ";
}
if ($cc != '')
{
$query .= " and cc = 1 ";
}Az automatikus keresést pedig AJAX technológiával, javascript nyelven lehet megoldani. Legjobb egy javascript keretrendszerrel, pl.: jQuery
-
cAby
tag
Hali!
Kereső oldalt szeretnék csinálni, ami adatbázisból olvassa ki az adatokat.
pl, ezekkel lehet szűkíteni a találatokat (checkbox-ok):- apartman
- vendégház
- hotel
- diákszálló- reggeli
- félpanzió
- teljes elláttás- készpénz
- bankkártya
- átutalás
- Üd.csekk (btw, miért nem engedi elküldeni a fórum rendesen kiírva az Üd.csekk-et?)
....
és még további pár tulajdonságra, illetve a meglévő csoportokban is több szerepelhet.Ezeket feltételekkel végig vizsgálni baromi bonyolultnak tűnik nekem, ill. gyorsan be lehet zavarodni. Még csak a 3. keresési csoportot (kp, bankkártya...) csinálom, de már most belebonyolódtam.
Ilyen összetett keresésekre nincs valami jobb megoldás? Több száz variációt lekezelni nem egy könnyű feladat és valószínűleg nem is a leghatékonyabb.
Illetve azt hogyan lehetne megoldani, hogy ha bekattintok egy checkbox-ot, akkor automatikusan frissítse a találatokat, ne kelljen rányomni a 'Keresés' gombra? JavaScript van a dolog mögött ha jól sejtem, de nem találtam még meg a megoldást.
Remélem valaki tud vmit mondani ezekre.
Köszi,
Csabi -
asuspc96
senior tag
-
SektorFlop
aktív tag
válasz
Sk8erPeter #2033 üzenetére
igazából a hibákból és a kritikákból tanul az ember... gyakrabban kellene ide járnom és leszoktattok az egyéb hülyeségekről!
-
Louloudaki
aktív tag
válasz
DeltaPower #2050 üzenetére
ez volt a baj, pont kell a vessző helyett a számokba, köszi
-
DeltaPower
addikt
válasz
Louloudaki #2049 üzenetére
Lehet, hogy nem tizedesvesszővel, hanem tizedesponttal várja a számot, tehát 0,12 helyett 0.12 kell. A float és a double elméletileg jó törthöz, esetleg próbáld meg double (10,2) formátummal létrehozni a mezőt (10 jegy, ebből 2 tizedes, persze igény szerint).
-
Louloudaki
aktív tag
milyen mezőtípusban milyen hosszbeállítással tudok én tárolni olyan számokat, hogy 1230,43 0,12 stb úgy hogy ezeket aztán matematikai műveletekhez is tudjam használni normálisan? mert a double meg a float tuti nem jó, ha 0,12-t akarok beírni akkor Warning: #1265 Data truncated for column 'certFee' at row 1
online játék egyenlegeit akarom tárolni meg levonni a költségeket, usa dollárban, és lehet 0,01 dollcsi is a levonandó költség -
Lacces
őstag
válasz
Brown ügynök #2047 üzenetére
Okés
-
Lacces
őstag
válasz
Peter Kiss #2045 üzenetére
Lehet ez ilyen MySQL specifikus dolog lehet.
Sem sima SQL alapoknál sem MSSQL-nél nem találtam kapcsoló táblákra vonatkozó dolgot.
Lehet egy MySQL-s könyvet is át kell forgatnom
Én simán össze JOIN-olom az összeset ami kell. (3. normálformában lévő táblákat is)
Én egy picit feleslegesnek találom a kapcsoló táblát. Ado.net-nél sem tapasztaltam még ilyet. Nekem ez tényleg új.
-
Peter Kiss
őstag
MySQL-nél minden storage engine bír valamilyen extrával a többiekhez képest, manapság valóban az InnoDB-t ajánlják, ennek sokkal jobb a teljesítménye, ha írásról van szó, képes row lock-ra, illetve a tranzakciókat is támogatja, de pl. FULLTEXT index-et nem tud.
---
A harmadik táblát kapcsolótáblának szoktuk hívni, arra való, hogy N .. N kapcsolatokat írjunk le velük, például: Products tábla kapcsolatban áll a Properties táblával (terméktulajdonságok, pl.: garancia), emellett egy plusz érték is szerepel, és mindez belekerül egy ProductsToProperties táblába:
ProductID, PropertyID, Value
Kicsit tolni kellene még az adatbázisalapokat.
-
Frigo
őstag
-
Lacces
őstag
Sziasztok!
MySQL-nél miért van ilyen sok motor típus? (Engine)
Az INNO_DB miben jobb mint a többi?Illetve láttam egy példánál, hogy használ egy külön táblát, ahol ha 2 táblát akarok összekötni, akkor létrehoz egy harmadik külön táblát, ahol mindkét tábla id-je van, ez mire jó?
-
fazr
senior tag
válasz
Peter Kiss #2039 üzenetére
Miért és miben jobb a PDO a mysqli-től? (kérdezem ezt kezdőként)
Tegyük fel csak mysql-t akarok használni.
-
tildy
nagyúr
válasz
Brown ügynök #2038 üzenetére
max ha beugrokent kell 2 ora alatt kodot irnom, akkor mysqlezek, mqsqli-t nem szoktam hasznalni, PDO szokott lenni tobbnyire.
Athlon_64: aki most kezd phpzni, kezdje Zenddel. Egy jo szemleletet fog adni.
-
Peter Kiss
őstag
Azért azt ne felejtsük el, hogy nem lehet elvárni senkitől se, hogy egyből hegesszen magának ORM frameworkot saját MVC frameworkot, amit több százan használnak nagy megelégedéssel.
Emellett a jótanácsokat is csak óvatosan osztogassuk, például: mysqli-t se nagyon kellene használni, új ember használja a PDO-t. De azt is mondhatnám, hogy a real_escape cuccra verje magát valaki, hanem a prepared statement-ekre. Vagy használjon egyből tárolt eljárásokat. Vagy inkább dobja ki a kukába az egészet, és használjon ASP.NET MVC 4-et Entity Framework-kel.
-
tildy
nagyúr
válasz
SektorFlop #1996 üzenetére
Kapasbol hol kezeled le a cross-site scriptinget, es az SQL injectiont? SEHOL.
htmlspecialchars hasznalata , meg mysql_real_escape_string hasznalata. Azt mar nem is mondom, hogy magyar nyelvu valtozok, nem tiszta, szetbontott, atlathato kod, view elemek egybe....va az adatbaziskezelessel. A kod into pelda arra , hogy hogyan kezdi az ember, es ha professzionalisan akar dolgozni, akkor hogyan nem folytatja.Ne aggodj , en is ugyanigy kezdtem, csak ez mar a mult. Nagyon , nagyon a mult.
-
tildy
nagyúr
válasz
Sk8erPeter #2034 üzenetére
Igy van.
Szetszedni az adatokat tobb tablaba, es ugy osszekapcsolni.A masik (ez nem neked szol sko8): szokjatok le a magyar valotozonevekrol. De ez meg semmi, mert baromira nem eleg. Kezdjetek el setet es getet hasznalni, es rovid, par soros fuggvenyeket irni. Es meg valami: az ilyen kod nem reusable. NE, ne, es ne!
Gondolkodjatok MVC-ben szedjetek megfelelo elemekre a kodot!
-
cAby
tag
válasz
Sk8erPeter #2034 üzenetére
Szia!
Köszi a hozzászólást. Marha késő van, alig látok, holnap rendesen is megpróbálom elemzni, amit írtál, de nagyjából értem.Sehogy nem akar összejönni a dolog, most ilyet csináltam:
if ( $apartman != ' ' || $vendeghaz != ' ' )
{
if ( $reggeli != ' ' || $felpanzio != ' ' )
{
$sql = "SELECT * FROM szallasok WHERE tipus_kereses IN ('" . $apartman . "','" . $vendeghaz . "') AND ellatas_rovid_kereses IN ('" . $reggeli . "','" . $felpanzio . "')";
}
elseif ( $reggeli = ' ' && $felpanzio = ' ' )
{
$sql = "SELECT * FROM szallasok WHERE tipus_kereses IN ('" . $apartman . "','" . $vendeghaz . "')";
}
}így ha bekattintom az apartmant vagy vendégházat vagy mindkettőt + reggelit és/vagy félpanziót, akkor teljesen jól kiadja a dolgot. De ha csak apartmant és/vagy vendégházat jelölöm be, de nem jelölöm be reggelit se meg félpanziót se, akkor nem ad ki semmit.
Egyszerűen nem jövök rá, hogy miért és nagyon idegel, hogy több napja ezzel szenvedek.
Ha ez jó is lenne, akkor sem lenne jó szerintem, mivel csomó értéket lehetne beállítani és amíg mindent lekezelek if-fel.. háát.. megöregednék valszeg meg belebonyolódnék.
Tehát gondolom van erre valami jobb megoldás.
Ha dolgoztál ilyen területen, akkor gondolom neked van ötleted erre is.
Nagyon szépen megköszönném, ha tudnál segíteni, persze ha időd engedi.üdv,
Csabi -
Sk8erPeter
nagyúr
Az a baj, hogy már maga az adatbázis struktúrája rossz ebben a formában. Úgy kellene, hogy itt azonosítókat kapcsolsz össze, ami kiadja egy szállodaentitás tulajdonságait.
Az összes tulajdonsághoz tartozna egy azonosító (pl. magához az ellátás típusához is tartozik egy számszerű azonosító (pl. 666)), és a tulajdonságok konkrét értékeihez is tartozna azonosító (pl. a reggeli típusa 1, a félpanzió 2, a teljes ellátás 3, stb.), stringekkel ilyen esetben nem nagyon érdemes dolgozni, vagy legfeljebb egyetlen táblában legyen, amit összekapcsolsz az összes többivel, hogy megtudd, melyik tulajdonságról van szó - pl. nyilván a tulajdonságnak (ellátás) van egy neve is, ezt egy külön táblában jelezni kell; de van a tulajdonságokhoz tartozó értékeknek (reggeli, stb.) is neve, de ezek legyenek elkülönítve. Aztán INNER JOIN-olod őket...
Bocs, de most kissé késő van, ha holnap lesz energiám, ennél egy kicsit bővebben is kifejtem... Ez nagyjából ahhoz hasonlóan működik, mint egy társkereső, ott is vannak paraméterek, amik szerint keresget az ember mondjuk partnereket, nekem kellett hasonlóval dolgoznom már adatbázisszinten, na ott a fenti elképzelés szerint csináltam, elég összetett lett, de nagyon jól szűrhető, és elég konzekvens, de ami leginkább előnye, hogy könnyen bővíthető újabb paraméterekkel a meglévő struktúra megborítása nélkül.
Gondolom ez most így csak bonyolult fostengernek tűnik így elsőre, de annyira nem is az, majd megpróbálom jobban kifejteni, ha érdekel. -
Sk8erPeter
nagyúr
válasz
SektorFlop #2030 üzenetére
Na ne már....
Most komolyan azt javaslod, hogy minden adatot kérjen le adatbázisból, és majd utána szűrjön? Akkor gondolj bele, mi van, ha feltételezzük, hogy többmillió adata van, amik közül keresgélni kellene... akkor először az ÖSSZESET tök feleslegesen lekéri, és ezek után szűr? NEM, ilyet soha ne csinálj.A fórum-hozzászólásoknál meg különösen illene szűrni, ott ugyanis még dinamikusabban nőhet az adatbázis mérete. És erre nem lehet válasz az, hogy "ugyan már, az én oldalamon úgysincs olyan nagy forgalom", ez a hozzáállás nagyon rossz, mi van, ha valamilyen oknál fogva mégis az lesz? Vagy mi van, ha akarsz egy következő alkalmazást fejleszteni, majd azt is úgy készíted, mert jól működött az előzőnél?
Amit itt írtál, az ilyesmi jellegű változónak átadás:
$tipus = $sor['tipus'];
az idők során rá fogsz jönni, hogy egy nagyon rossz szokás.
Ilyen módon nem bejárhatóak a későbbiekben az érintett adataid ciklussal, nem tudod őket könnyedén, egyértelműen kezelni, nem tudsz köréjük egy wrapper osztályt írni, vagy nehézkesen, és egyéb problémák is felmerülhetnek ezzel kapcsolatban.
Érdemes inkább kigyűjteni tömbökbe vagy objektumokba ezeket az adatokat, amik egy helyre tartoznak.
pl.
$hotels = array();
while($row = ............){
$hotels[] = $row;
}egy leegyszerűsített példával élve. Ezután egyszerűen bejárhatók a hotelek adatai pl. egy foreach-csel.
-
cAby
tag
válasz
SektorFlop #2030 üzenetére
megpróbáltam, egyelőre még nem jó..
küzdök még vele holnap is, aztán ha nagyon nem megy, beteszem a forráskódot, hátha megtalálja benne valaki a hibát és segít -
cAby
tag
válasz
Peter Kiss #2028 üzenetére
A kereséshez szükséges adatok a táblából:
CREATE TABLE IF NOT EXISTS `szallasok` (
`azonosito` int(11) NOT NULL AUTO_INCREMENT,
`szallas_nev` varchar(30) CHARACTER SET utf8 DEFAULT NULL,
`helyseg` varchar(20) CHARACTER SET utf8 DEFAULT NULL,
`tipus` varchar(15) CHARACTER SET utf8 DEFAULT NULL,
`tipus_kereses` varchar(15) CHARACTER SET utf8 NOT NULL,
`ellatas_rovid` varchar(15) CHARACTER SET utf8 DEFAULT NULL,
`ellatas_rovid_kereses` varchar(15) CHARACTER SET utf8 DEFAULT NULL);@SektorFlop: Érdekes felvetés, hogy először kérjek le mindent és aztán szűrjek. Köszi a tippet, megnézem.
Bár gyanús, hogyha így nem jó, akkor úgy sem lesz az.
Most amúgy az a baj, hogy ha bekattintom h apartman + reggeli, akkor kidobja az apartmant, de reggelivel, félpanzióval és teljesellátással is. De nem értem, hogy miért.
-
SektorFlop
aktív tag
nekem is van ehez hasonló helyzet, kiolvasom az egész táblát és csak azt íratom ki ami megfelel egy bizonyos feltételnek, remélem jól értelmeztem a dolgot és tudok segíteni.
ahogy írtad kimented a változókba az értékeket:
$apartman, $vendeghaz, $hotel, $reggeli, $felpanzio, $teljesellatas
$szallasok= mysql_query("SELECT * FROM szallasok");
while($sor=mysql_fetch_array($szallasok)){
//kiolvasol minden adatatot az adatbázisból amire szükségedvan
pl ha van olyan rekord a szálások táblában hogy tipus, akkor:
$tipus=$sor['tipus'];//ha vendégházakat akarod kiíratni, akkor itt egy példa:
if($tipus==$vendeghaz){elvileg csak azokat a házakat fogja listázni aminek a tipusa megegyezik a $vendeghaz értékével.
}
}remélem tudtam segíteni és érthető amit írtam, de ha nem írd le táblád rekordjait meg hogy is nézz ki igazából, úgy többet tudok segíteni
-
SektorFlop
aktív tag
válasz
Sk8erPeter #2024 üzenetére
most hoztam be ezt a dolgot, de lehet tényleg semmi értelme, és hanyagolni kellene...
-
cAby
tag
Hali!
Segítségeteket szeretném kérni.
Egy keresőt szeretnék csinálni, pl. meg lehet adni a követekező adatokat:
szállás Típusa checkbox-szal: apartman, vendeghaz, hotel
Ellátás típusa checkbox-szal: reggeli, félpanzió, teljes ellátás
+ van egy submit gombTehát ha valaki bepipiálja az apartmant, kiadja az apartmanokat, ha valaki apartmant és reggelit, akkor kiadja az apartmanokat, ahol az ellátás reggeli.
A táblám (szallasok) erre vonatkozó részlete:
szállás név, típus, típus_keresés, ellatas, ellatas_keresés(típus pl: vendégház, típus_keresés pedig vendeghaz, tehat ékezetek nélkül, mert a checkbox-ot is úgy csináltam, hogy a value-ja ekezet nelkul legyen, pl. vendeghaz)
Ezt a következőképp kezelem le:
először kimentem a formról kapott adatokat ezeket a változóba:
$apartman, $vendeghaz, $hotel, $reggeli, $felpanzio, $teljesellatasEzek értéke a változó nevével azonos pl. $teljesellatas = 'teljesellatas'
Ezután jön az utasításom:
$sql = "SELECT * FROM szallasok WHERE tipus_kereses IN ('" . $apartman . "','" . $vendeghaz . "','" . $hotel . "') AND ellatas_rovid_kereses IN ('" . $reggeli . "','" . $felpanzio . "','" . $teljesellatas . "')";De ez valahogy nem akarja az igazságot.
Valszeg tök rosszol csinálom.Ami nehezíti majd, hogy kb 5 ilyen textbox-csoport lesz + település nevét lehet megadni és az kell, hogy ez mind külön külön is működjön, tehát ha csak nevet ad be valaki akkor adja ki azokat a nevűeket, de ha bepipál mást akkor azokat adja ki.
Minden ilyen variációt lekezelni elég hosszadalmas és bonyolult lenne.
Ilyen keresésre van valami más, egyszerűbb módszer?
Napok óta ezen töröm a fejem, de nem sikerül rájönnöm.
Köszönöm szépen annak, aki tud segíteni!
üdv,
Csabi -
Sk8erPeter
nagyúr
válasz
SektorFlop #2021 üzenetére
Tehát magyarul van egy forum_msgs táblád, és azonbelül a datum mező neve nem simán datum, hanem forum_msgs.datum?
Hát eléggé felesleges, hogy az adott nevű tábla mezőit kiegészíted a táblanév+mezőnévvel, és magunktól nehéz lett volna kitalálni, hogy ilyen rossz szokásokat alkalmazol, amíg le nem írod.
Én azt javasolnám, inkább erről szokj le, de persze egyéni döntés.
Nincs mit!(#2023) wolandino :
szívesen, de mire jutottál? -
wolandino
tag
válasz
bLaCkDoGoNe #2014 üzenetére
én is erre jutottam, köszönöm.
-
wolandino
tag
válasz
Sk8erPeter #2015 üzenetére
én is erre jutottam, köszönöm.
-
SektorFlop
aktív tag
válasz
SektorFlop #2020 üzenetére
bocsánat helyesbítek
*a mező neve "forum_msgs.datum"
de még1x köszönöm, sikerült is megcsinálni
-
SektorFlop
aktív tag
válasz
Sk8erPeter #2019 üzenetére
félre érted, ez pl. a rekordom neve "forum_msgs.datum", de köszi így sikerült rájönnöm a hibára
$forum_msgs= mysql_query("SELECT * FROM forum_msgs ORDER BY forum_msgs.forum_msgs.datum");
így kell kinéznie a lekérdezésemnek
, kicsit csúnya, csak szeretem pontosan tudni hogy mi melyik tábla dátuma pl.
-
Sk8erPeter
nagyúr
válasz
SektorFlop #2016 üzenetére
A lekérdezésed jó. (már amennyiben létezik a "datum" mező a forum_msgs táblában, de feltételezem, létezik)
A PHP-kódnál viszont nem kell oda a forum_msgs, tehát ehelyett:$hozzaszolt=$sor['forum_msgs.user'];
$datum=$sor['forum_msgs.datum'];
$uzenet=$sor['forum_msgs.msg'];
$nev=$sor['forum_msgs.topic'];próbáld ezt:
$hozzaszolt=$sor['user'];
$datum=$sor['datum'];
$uzenet=$sor['msg'];
$nev=$sor['topic']; -
rt06
veterán
válasz
SektorFlop #2016 üzenetére
ha fetch_array-t hasznalsz, akkor a $sor tombod elemeit sorszamozva ered el
ha mezonev alapjan szeretned, akkor hasznald a fetch_assoc fgv-t (bar azt hiszem, a tablaalias-t akkor sem teszi oda)szerk.: tevedtem, alapertelmezeskent a fetch_array is visszaadja a mezoneveket (is), mint tombindex
-
Peter Kiss
őstag
válasz
SektorFlop #2016 üzenetére
Csak a hibaüzenet maradt el.
-
SektorFlop
aktív tag
adatbázis probléműma ütköztem ha valaki esetleg tud segítsen.
$forum_msgs= mysql_query("SELECT * FROM forum_msgs"); -> így működik a kód, ezzel a probléma hogy nem úgy rendezi ahogy én szeretném.
de ha már átírom erre:
$forum_msgs= mysql_query("SELECT * FROM forum_msgs ORDER BY forum_msgs.datum"); akkor egyből hibát dob az utána következő részre:while($sor=mysql_fetch_array($forum_msgs)){
$hozzaszolt=$sor['forum_msgs.user'];
$datum=$sor['forum_msgs.datum'];
$uzenet=$sor['forum_msgs.msg'];
$nev=$sor['forum_msgs.topic'];*a hibaüzenet alapján arra következtettek hgoy rossz a mysql lekérdezésem, valaki kitudná nekem javítani? sajnos már minden lehetőséget kimerítettem ami eszembe jutott
-
Sk8erPeter
nagyúr
válasz
bLaCkDoGoNe #2014 üzenetére
Na igen. Ha így csinálná, akkor nem lenne kérdés, mi legyen a flag arra vonatkozóan, hogy munkanapról van-e szó, vagy sem. Szerintem is ez lenne a jó, erre el is felejtettem előbb válaszolni.
-
Sk8erPeter
nagyúr
válasz
wolandino #2009 üzenetére
1.) itt a százalék helyett miért nem valami jobban kalkulálható egységgel dolgozol? Például a meló mértéke lehetne inkább óra egységben megadva: adott hónapban X órát dolgozott. Persze ettől függetlenül lehetne pluszban egy mező, hogy ez most 100%-ot, vagy 432%-ot jelent, bár lehetne ezt is másképp megoldani, ez már egyéni döntés kérdése.
2.) hmm, itt most gyorsan átfutva nem jut eszembe hirtelen más, mint hogy minden naptári napot eltárolni - tulajdonképpen muszáj, hiszen minden napra más adat vonatkozik.
Mivel minden naptári naphoz tartozhat általános, mindenkire érvényes adat is, esélyes, hogy egy külön táblában kellene tárolni a naptári napokat,és ezek id-jaihoz kapcsolni az egyes dolgozók napokra lebontott adatait. Szerintem csak így tudsz minden adatot jól követhetően tárolni, hogy minden évre, napra, dolgozóra rá lehessen külön keresni, és viszonylag általános legyen a szerkezet. Még ha sok adat is lesz ezzel, több táblában, és dolgozónként hivatkozni kell a naptári napok id-jaira az év összes napján...
Nem kell minden évnek külön tábla, egy szerintem elég, ahol az összes naptári nap szerepel, aztán lehet, hogy van erre megfelelő ellenérv. De ilyen esetben mindenképp érdemes szerintem különbontani a dátum egyes adatait, tehát akár évet, hónapot, napot, bizonyos dátum szerinti kereséseknél tudtommal ez hatékonyabb is lehet, mert nem kell mindig dátumkonverziós függvényeken keresztülverni az egész dátumot.Most nem gondoltam végig minden lehetőséget, tehát remélem még valaki hozzátesz a gondolatmenethez.
Egyébként ez igazából szimpla SQL-kérdés, semmi köze a PHP-hoz, nyugodtan mehetett volna az SQL-kérdés topicba, ott talán többen is látják, azok is, akiket a PHP nem érdekel, de vágják az SQL-t (és követik a topicot). Tulajdonképpen nem tudom, melyik a látogatottabb topic.
-
Sk8erPeter
nagyúr
Nem hiszem, hogy így látatlanban, mindenféle körülmények leírása nélkül fogja neked tudni bárki is, hogy mit kellene tartalmaznia a general_setting tábládnak, de először is létre kéne hozni...
Másrészt a /tmp könyvtár nem elérhető vagy nem írható a webszerver számára, állítsd át php.ini-ben a session.save_path értékét, vagy adj rá írási jogokat, már amennyiben saját rendszeredről van szó, és/vagy hozzáférsz a beállításokhoz.
Na meg kicsit részletesebben számolj be a problémádról.Szerk.:
(#2011) bLaCkDoGoNe : hogy a helyzetet súlyosbítsam, ezek után még priviben is próbálkozott ugyanezzel, 0 előrehaladással, de mentségére szóljon, hogy állítólag utána valahogy megoldotta.Mondjuk sanszos, hogy azt is külső segítséggel.
-
Sk8erPeter
nagyúr
Látom ide is beírtad a kérdésedet... Felejtsd már el ezt az ütemezett életkor-update-elést, egyszerűen amikor kíváncsi vagy a felhasználó életkorára, számítsd ki a születési dátumából minden alkalommal, amikor megjeleníted, ez úgyis villámgyors, ne szenvedj már a totál megbízhatatlan ütemezéssel... (korrigálom magam: az ütemezés maga nem feltétlenül megbízhatatlan, de ha mégis kimarad valamilyen oknál fogva (pl. valaki kiszedi az ütemezett feladatok közül, épp volt egy áramkimaradás az ütemezés időpontjában, mittudomén stb.), akkor máris szar értéket jelenítesz meg, ahelyett, hogy a mindig naprakész automatikus kiszámítást végeznéd el)
Szerk.: még szerkesztési időn belül találtam erről szóló topicot: [link]
itt a kérdező nem tudom, mit szenved azzal a query-vel, mit gányolgat, de utána megmondja a megoldást, hogy valami usershortcodes.php fájlba kell tenni ezt a kódrészletet, gondolom neked megfelelően átalakítva, ha kell, nekem személy szerint fingom sincs, mi ez, soha nem használtam e107-et, és hacsak nem nagyon muszáj, nem is fogok.Szerk. 2.: van itt valami Birthday Menu is, ahol állítólag csak be kell pipálni egy checkboxot ("Show age"), és máris ott lesz neked az életkor... Akkor minek szórakozol saját megoldásokkal, ami rossz?
-
wolandino
tag
Sziasztok,
PHP-MySQL környezetben:
Egy túlóramodell kialakítására törekszem, amiben kérnék egy kis segítséget:Eddig erre jutottam:
1.
Munkarend( dolgozó_id, hónap, százalék) tábla
tehát ennek pl. egy olyan sora, hogy (10, 2011-01, 100) azt adná meg, hogy Józsi bácsi 2011 januárjában teljes munkaidőban, azzaz napi 8 órában dolgozott.2.
El kellene tárolni az egyes naptári évek napjait és azt a tulajdonságukat, hogy munkanapok-e.
Ezt még nem tudom hogyan tároljam el.
Az egyik lehetőség ami az eszembe jutott, hogy minden naptári évhez létrehoznék egy táblát, aminek 365 vagy 366 sora lenne, a napoknak megfelelően.A túlóraszámítás útgy történne, hogy egyenleg= havi jelenetett munkaidő(már kész van) -
a kötelező munkanapok száma*hány százalékos munkaidőben dolgozik az adott dolgozó.Az adott naptári évek tárolásában szeretnék segítséget kérni, hogy hogyan lehetne ezt a legszebben és redundanciamentesen megvalósítani?
Köszönettel,
W. -
tras
csendes tag
válasz
DeltaPower #2007 üzenetére
Tudnál nekem segíteni részletesen, mert nem nagyon foglalkoztam még ilyennel!?
-
tras
csendes tag
Sziasztok az alábbi hibára mi a megoldás?
Database error: Invalid SQL: select * from general_setting
MySQL Error: 1146 (Table 'talan999.general_setting' doesn't exist)Host : 127.0.0.1
Database : talan999
User : talan999
Session halted.
Warning: Unknown: open(/tmp/sess_a5c72e1b6147b5d183925d391bcae7b0, O_RDWR) failed: No such file or directory (2) in Unknown on line 0Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/tmp) in Unknown on line 0
-
rt06
veterán
1: eleg naponta frissiteni
2: csinalsz egy script-et (lehet php is), ami kapcsolodik a db-hez es futtatja a query-t, majed ezt a script-et meghivod cron-nal (linux-on), vagy feladatutemezovel (windoze-on)
3: nem lenne jobb megoldas select-nel szamitani az eletkort (amikor nagyon muszaj)? -
retrox
csendes tag
vagy hogy kapcsolhatom egy meglévő php fájlhoz(ami sokszor kapcsolódik az adatbázishoz)
-
retrox
csendes tag
válasz
Peter Kiss #2001 üzenetére
OK.Elfogadom.Csak azt mondjátok meg nekem,hogy érem el,hogy mondjuk óránként frissíti a mysql ezt:
UPDATE e107_user_extended SET user_kora=floor(DATEDIFF(now(),user_birthday)/365.2425);
Aktív témák
Hirdetés
- HP EliteBook 840G6 ! AKCIÓ!!! a készlet erejéig!
- Kobo Aura Edition 2 (N236) 6" háttérvilágításos kijelzővel, 4 GB-os tárhellyel - jó állapotban
- HP ProBook 430 G8, 13,3" FHD IPS, I5-1135GU CPU, 16GB DDR4, 256GB SSD, WIN 11, 27% áfás számla, 1 év
- Playstation Portal - 3 hónap Bolti Garanciával
- BESZÁMÍTÁS! ÚJ AMD Ryzen 5600X 5700X 5800X 5900X processzor 3 év garancia 27% áfa termékbeszámítás
- Eladó Apple iPhone Xr 64GB fekete / ÚJ KIJELZŐ / 100% AKKU / 12 hónap jótállással!
- ÁRGARANCIA!Épített KomPhone Ryzen 7 5700X3D 32/64GB RAM RX 7800 XT 16GB GAMER PC termékbeszámítással
- Bomba ár! Dell Latitude 5495 - Ryzen 5 I 16GB I 256SSD I 14" FHD I HDMI I Radeon I Cam I W10 I Gari!
- Bomba ár! HP EliteBook 840 G5 - i5-8G I 8GB I 128GB SSD I 14" FHD I HDMI I Cam I W11 I Gari!
- Telefon felvásárlás!! iPhone 11/iPhone 11 Pro/iPhone 11 Pro Max
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest