- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Nvidia GPU-k jövője - amit tudni vélünk
- Fujifilm X
- Milyen videókártyát?
- Több tucat gyorsító összeköthetőségét kínálja az Instinct MI400 sorozat
- Utólag szállít kábelt az MSI az újabb tápjaihoz
- Házi hangfal építés
- Azonnali alaplapos kérdések órája
- Nyaralás előtti hardverszemle
- Az évtized végéig maradhatnak a PC-kben a PCI Express 5.0-s SSD-k
Aktív témák
-
szicsu
őstag
Hi!
Lenne egy érdekes kérdésem (lehet, hogy csak számomra az:
Lenne három táblám.Az első két táblában tárolom a különböző eseményeket, ami hatással vannak (rekordokat vesznek fel)a harmadik táblára.Milyen módon rögzítsem az adatokat, hogy tisztán sql parancs segítségével vissza tudja keresni, hogy a harmadik táblában az adott rekordot melyik tábla melyik rekordja ''rögzítette''; -
Briganti
tag
válasz
Louloudaki #1095 üzenetére
koszontem szepen!
-
Briganti
tag
Hello, van egy tablazatom aminek van egy ID oszlopa is ami auto_increment ... hogy tudom en az utolso hozzaadott sor id-jet kiszedni?
tehat hozzaadok egy sort, es annak kene az id-je, mert kepet is toltok fel melleje, es a kepnek a neve ugy kene kinezzen hogy: $id.gif ... en ugy csinaltam hogy hozaadtam a sort es rogton utanna irtam is a selectet ugyanazokkal a valtozokkal ... ez eddig ok, csak most szembe kerultem egy olyan tablazattal aminek van vagy 12-13 oszlopa, s unom begepelgetni ... biztos vagyok benne hogy van ennek valami egyszerubb megoldasa is ... -
manrick
tag
válasz
manrick #1090 üzenetére
Azt hiszem kicsit többet tudok, de a probléma még mindig kérdéses.
Ha a phpmyadminon illesztem be a szöveget, akkor ok.
Ha a textarea-ba akarom beilleszteni akkor nem fut le a script.
Viszont ha visszafele csinálom, tehát kiolvasom adatbázisból és beleteszem a textareaba, akkor bekerül minen adat.
Kérdés, hogy miért nem tudom beletenni adatbázisba a textareaba beírt adatot. -
alitak
senior tag
-
manrick
tag
Sziasztok!
Lenne egy kis problémám az adatbázisommal.
Szeretnék sok szöveget tárolni adatbázisban. (akár több ezer karakter is lehet)
Adattípusnak beállítottam a LONGTEXT-et, ami ugye több GB adatot képes tárolni.
Viszont 1798db karakternél nem tárol többet nálam.
Ha jól tudom egy karaktert egy bájton tárol.
Tudna nekem segíteni valaki, hogy mi lehet a hiba?
köszi.
Manrick -
Jester01
veterán
válasz
Forest_roby #1086 üzenetére
Biztos értitek a problémámat.
Nem.
Szerk: amúgy ilyen kérdésekre (tőlem legalábbis) sokkal hamarabb lehet választ kapni, ha adtok letölthető példaadatokat és pontosan megmondjátok a várt eredményt.
[Szerkesztve] -
Forest_roby
őstag
válasz
Jester01 #1084 üzenetére
Lehet, ha megnéztem volna a GROUP BY -t akkor ez most nem lenne kérdés, de...mindegy...
Meg lehet azt csinálni egy select -ben, hogy két különböző pl user_id v. login_név -et kérdezek le?
pl.:
ki hozta létre 'ezt'? reg_user_id -> loginName
ki használta utoljáta 'ezt'? -> last_user_id -> loginName
Ha a két kérdésre a select -tel tudok válaszolni, akkor két loginName -et kapok. Ez gondolom nem tul jó, mert akkor a hivatkozás se lehet egyszerű.
Biztos értitek a problémámat.
Mi erre a megoldás?
Előre is köszi!
Forest -
Jester01
veterán
válasz
Forest_roby #1083 üzenetére
MAX() + GROUP BY
-
Forest_roby
őstag
Hi!
Egy összetett select -nek kb ilyen lett a végeredmény:
1 ....ugyanaz....
2 ....ugyanaz....
3 ....ugyanaz....
4 ....ugyanaz....
1 ....más, de ugyanaz....
2 ....más, de ugyanaz....
3 ....más, de ugyanaz....
4 ....más, de ugyanaz....
...
..
.
de nekem mindig csak a legnagyobb id-jű kellene, kb így:
4 ....ugyanaz....
27 ....más, de ugyanaz....
...
..
.
Van erre vmi megoldás a selecten bellül - vmi feltételszabás a legnagyobb id-re? -
tkazmer
addikt
válasz
raczger #1080 üzenetére
Szerintem a topickeresőhöz jó lehet vmi ilyesmi:
''select * from topic where topic_nev like 'beirt_kulcsszo''';
vagy
''select * from topic where topic_nev ='%beirt_kulcsszo%''';
bár ez a második nem biztos, hogy jó lesz.
a másodikhoz meg:
''select * from hsz where hsz_szoveg like 'beirt_kulcsszo''';
vagy ezt is lehet ='%beirt_kulcsszo%'-val. -
raczger
őstag
hali!
épp egy keresőn munkálkodom és a fórumhoz a keresést nem tudom hogyan kellene megoldani :S
két tábla van: a topic és a hsz tábla
a topic táblában a topiccim a lényeges, a hsz táblában a topid (ebben van h melyik id-jú topicban van), és a hsz mező, amiben maga a hozzászólás van.
Nos mikor keresek csak a topikok listája jelenjen meg amelyekben vagy a nevűkben vagy a benne lévő hozzászóláskban van meg az adott karakter, és egy topik ne szerepeljen kétszer.
Magyarul egy olyan elvűt akarok mint ami itt a PH! keresőjében van.
Előre is kössz mindenkinek a segítséget! -
Lortech
addikt
válasz
Forest_roby #1077 üzenetére
Resettelned kell az aktuális sormutatót, ha többször akarod ugyanazt a resultot fetchelni.
pl mysql_data_seek($result); hatására az első eredménysorra fog mutatni.
Mondjuk a példád szerint működnie kéne. Ha több eredménysor van, és az elsőt kiveszed, attól még a whilenak mennie kell a 2.-kal kezdődően. -
Forest_roby
őstag
Hi!
Próbálom javítani a php -fileomat, a select -eket próbálom egybe vonni, ahol csak lehet. Ez sikerült is - mysql doc + Jester - de amit nyertem sql-ben azt buktam php-ben.
Kérdés:
Ha van egy selectem az szép és jó, de több helyen szeretnék belőle kinyerni információt. Hogy teljesen konkrét legyek először szeretnék 1 akármelyik sorból 2 mező adatát kinyerni és utánna egy ciklussal szeretnék végigmenni a sorokon és mindegyikből kiiratni néhány mező tartalmát.
A kettőböl mindig csak az egyiket tudom megvalósítani : (( - vagy egy sort íratok ki vagy ciklussal az összeset.
pl.:
select.....
$result = mysql_query($query) or die(''Adatbazis hiba: mysql hibauzenet:''.mysql_error());
$egysor = mysql_fetch_array($result);
echo egysor['mezo'];
//idáig működik
while ($sor = mysql_fetch_array($result))
{
echo sor['mezo'];
}
//ez már nem v. fordítva
Érzem, hogy ezzel nincs minden rendben, de nem tudom, hogyan lehetne kijavítani a hibát. : ((
Nos, tudtok vmi jó, hatékony megoldást?
Előre is köszi!
Forest
[Szerkesztve] -
RedAnt
aktív tag
válasz
Briganti #1074 üzenetére
Még megemlíteném, mert ide tartozik, a data: URI sémát [link] aminek segítségével közvetlenül be lehet ágyazni base64 kódolással a képeket. Ennek a megoldásnak mondjuk van egy olyan hátránya, hogy IE-vel nem működik (gyakorlatilag minden mással igen)
Pl. az avatarod ilyen módon:
[Szerkesztve] -
czappa
aktív tag
válasz
Briganti #1074 üzenetére
Bár már megoldódott a kérdés, de azért megjegyzem, hogy egy másik megoldás, hogy a képet egy könyvtárban tárolod, a táblázatban pedig csak a file nevét (esetleg eléréssi úttal, de ez később problémás lehet, ha másik könyvtrában szeretnéd tárolni a képeket).
Ilyenkor a file elmetésekor jó ötlet, ha véletlenszám+eredeti_file_neve -t tárolsz, hogy lehessen ''két egyforma'' nevű file, ne keljen ezzel szenvedni a kép feltöltésekor.
(És persze ilyenkor a file-nak az új nevét tárolod.)
Már nem emlékszem, hogy ph!-n, vagy php.net-en olvastam ezt a vletlenszámos megoldást, de tetszik mert nagyszerű és egyszerű.
Amúgy a véletlenszám lehet egy time() fv. ha php-t használsz. -
Briganti
tag
hello, szuksegem lenne egy kis segitsegre ...
mysql tablazatban egy BLOB mezoben tarolok egy kepet ... en azt onnan hogy tudom kirakni egy oldalra, mert a neten csak olyan tutorialokat talaltam , ami ugy van megoldva hogy beleirja a header-be hogy ''image/gif'' es nekem azon az oldalon nem csak kep van ... erre mi a megoldas?
ki kell irjam a blob mezo tartalmat egy .gif file-ba, es ugy berakjam mind egy kepet?
(MOD: franya helyesiras ...)
[Szerkesztve] -
paramparya
őstag
válasz
Forest_roby #1070 üzenetére
Használható linknek ott a mysql honlapja, azon belül a dokumentáció,annál használhatóbbat nem nagyon tudsz találni
Vannak még tárolt eljárások, egyebek, sokat tud, pláne az 5-ös... -
Forest_roby
őstag
válasz
Jester01 #1065 üzenetére
Köszi a segítséget! Neked is, mindenki másnak is aki hozzászólt az alap kérdésemhez,
Úgy értelmeztem magamban a dolgot, hogy jó ez a FK, de egy ideig még gond nélkül meg leszek nélküle - majd a motorban gondoskodok az adatok biztonságáról!
-------------------------------------------------
Jut eszembe. Ez az alap kérdésem kb 4ed rész! A többire dobok egy UP! ott. #1059
[Szerkesztve] -
Jester01
veterán
válasz
Forest_roby #1064 üzenetére
A FK előnye, hogy az adatbáziskezelő is tud a kapcsolatról és így biztosítja az adatok integritását. Pl. nem vehetsz fel fizetés rekordot nem létező emberhez, illetve ha törölsz egy embert, akkor automatikusan törlődhetnek a hozzá tartozó fizetés rekordok is vagy eleve csak olyat törölhetsz akihez (már) nincs fizetés rekord.
-
Forest_roby
őstag
válasz
paramparya #1063 üzenetére
'' így nem kell felvinni ide is a user adatait (redundancia elkerülése, beszúrási, törlési anomáliák)''
okay, de mi a haszna?
ha a fizetes user_id -ja nem FK én akkor is tudok vele select -et írni a users -re
left join users on (fizetes.user_id=users.user_id) és kész.
Mivel nyujt ez a FK többet?
[Szerkesztve] -
paramparya
őstag
válasz
Forest_roby #1061 üzenetére
Vmi jobb, egy nagyon kicsit részletesebb gyakorlati példát tudnál írni?
Ennél nem kell részletesebb, jól mutatja
fizetes(id, tartozik, fuzet, .....) PK: id, FK:id(users.user_id)
user_id minek? az id elég csak nem tudom, hogy lehet -e egy mező PK és FK is egyszerre??
Hát, egy kicsit máshogy értelmezted a példát, én úgy gondoltam (úgy is szokott lenni), hogy egy user-hez több fizetés is tartozik (amikor fizettek neki, akkor az bekerül, így látod ki-mikor-mennyit kapott)
PK és FK nem tudom lehet-e egyszerre, ha én lennék az sql, akkor nem lehetne -
lajafix
addikt
válasz
Forest_roby #1061 üzenetére
Szvsz egy kis gyakorlás után megérted a PK, FK és a táblák közötti kapcsolatok logikáját.
van egy 9 oldalas doksim a netről, ami elmagyarázza a relációs adatbázisok lényegét. Kell?(küldj privit) -
Forest_roby
őstag
válasz
paramparya #1060 üzenetére
tehát akkor vhogy így néz ki a foreign key:
users(user_id, user_name, reg_date, .....) PK: user_id
fizetes(id, user_id, tartozik, fuzet, .....) PK: id, FK:user_id(users.user_id)
Vagy rosszúl értem?
Vmi jobb, egy nagyon kicsit részletesebb gyakorlati példát tudnál írni?
De köszönöm ezt is!
mod:
fent említett példánál lehet inkább így csinálnám:
fizetes(id, tartozik, fuzet, .....) PK: id, FK:id(users.user_id)
user_id minek? az id elég csak nem tudom, hogy lehet -e egy mező PK és FK is egyszerre??
[Szerkesztve] -
paramparya
őstag
válasz
Forest_roby #1059 üzenetére
primary key a tábla elsődleges kulcsa, hogy tudd valami alapján egyértelműen beazonosítani a sort, meg van foreign key, az egy másik táblában elsődleges kulcs, pl. egy fizetés táblában az, hogy a user táblából melyik user-hez tartozik, így nem kell felvinni ide is a user adatait (redundancia elkerülése, beszúrási, törlési anomáliák)
-
Forest_roby
őstag
Hi!
Egy kis elméleti infó kellene.
Tábla létrehozáskor a PRIMARY KEY, KEY, és hasonló( mik is vannak még ) 'kapcsoló'-kat használunk, gondolom azért hogy az egyes táblák között és a tábla mezői között kapcsolatot teremtsünk - összetettebb, jobb select, insert, update, ... íráshoz.
Ezeknek a kapcsolatáról tudnátok nekem írni egy kis rövid felvilágosítást?
Mi - mire jó, miért használjuk, stb... ?
Előre is köszönöm!
Forest
mod: és ha jól tudom, akkor pl.: mysql-ben nem csak táblákat lehet létrehozni, hanem pl.: trigger (ravasz) -t is - bizonyos esemény bekövetkeztekor csinál vmit. A table és trigger -en kívűl még biztos van más is, használja ezeket a cuccokat vki ( mármint a table -ön kívűl )?
Ezekről tudna vki vmi ki felvilágosítást írni? Persze egy használható link is jó! /nyilván keresni én is tudok.... de a személyes tapasztalat az sokat segít.../
[Szerkesztve] -
RedAnt
aktív tag
Ahhoz hogy az utolsó tíz üzenet jelenjen csak meg, nem kell kitörölni a többit, sokkal egyszerűbb ha a kiíratásnál csak a legutolsó tíz sort veszed ki a táblából (pl.: select * from tabla order by id desc limit 10) És ennek meg van az az előnye is hogy megmaradnak a régi üzenetek, ha valamiért vissza szeretnél keresni.
-
meone
tag
ezt írja ki:
#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 '(select count(id) from table)-10' at line 1
Azért kéne amúgy hogy csinálnék egy üzifalat és mindig csak az utolsó 10 üzenet jelenjen meg.
Csak gondoltam tesztelem először adminba az sql-es kódokat és utánna rakom be php-be. -
RedAnt
aktív tag
1. ilyen.
2. delete után nincs *, ahogy azt már említették, hanem delete from tábla....
3. szerintem a limit nem tartalmazhat subquery-t mysql-ben. Azt írtad hogy hibát kapsz, de elfelejtetted megírni, mit tartalmaz a hibaüzenet. Mindenesetre a lekérésnek nem látom sok értelmét így - ha a legutóbbi 10 üzire vagy kíváncsi, beteszel egy order by id desc limit 10-et és csókolom... -
meone
tag
Sziasztok bocsi hogy egy ijen alap kérdéssel fordulok hozzátok de akármit csinálok mindig hibát kapok mikor az adminba futatom a paracsot.
A paracs a következö:
Delete * FROM `uzzi` order by id desc limit (select count(id) from table)-10;
Az üzzi táblában mindig csak az utolsó 10 üzinek kell lennni e.
Nem tudom hogy mi a hiba.
Lehet hogy valami alap csak nem tudok rájönni hogy mi az bocs.
Köszi a segítséget előre is. -
Briganti
tag
Hello, mit kell csinalni ahoz, hogy egy adatbazisba s specialis karaktereket is tudjam folul irni ... tehat az adtabazisba ha folul akarok irni minden ''???'' -t ''?'' -l, igy mukodik, de ha ''??™'' ezt akarom folul irni egy '' ' ''-l, nem mukodik
-
Jester01
veterán
Szerintem ezt 2 select-tel lehet megcsinálni (vagy vállalkozó szelleműek bele is gyömöszölhetik egy al-selectbe).
1. megkeressük az adott vonal első megállóját idő alapján
SELECT megallo FROM jarat WHERE irany=$irany ORDER BY idopont DESC LIMIT 1
2. lekérdezzük a hozzá tartozó információkat -
Jester01
veterán
Ez is egy join
Viszont hihetetlennek tartom, hogy ez így jó
and jarat.megallo=1 and jarat.megallo=megallo.id
Ebből az következik, hogy a megallo táblából mindig az 1. idjű megállót írja ki. Ez lehet, hogy az egyik járatnál pont az első megálló is egyben, de ez nem mindig lesz igaz. -
tildy
nagyúr
válasz
paramparya #1046 üzenetére
Így van végül így oldottam meg:
SELECT jarat.jarat, jarat.idopont , megallo.megallo FROM jarat, megallo where jarat.irany='1' and jarat.megallo=1 and jarat.megallo=megallo.id order by jarat.jarat,jarat.idopont
A joint nem ismerem, nem használtma még, köszi -
paramparya
őstag
Jaa, visszaolvasva most fogtam fel, hogy mi a helyzet
akkor még annyi kéne, hogy beadod a where-be, hogy AND megallo.id = 'az a megálló, amelyiket listázni akarod', és kész is vagy (nem kell limit).
Bár szebb lenne join-nal összekötni a táblákat, gyorsabb és szakszerűbb... -
tildy
nagyúr
válasz
paramparya #1044 üzenetére
irany tabla:
id, irany van benne
Id: szam
irany: mely vegallomasok kozt kozlekedik a busz
van egy megallo tabla,
id, megallo adatokkal
id: egy szam
megallo: a meglalo pontos neve
Van egy jarat tabla , benne a
busz kodja(jarat.jarat), megallo idja (ez a jarat.megallo), indulasi idopont, irany idja
Mondjuk legyen a busz kodja NEP1
A jarat tablaban ha így keresek, hogy select * from jarat where jarat=NEP1 , akkor kiad kb 5 találot, azokat a megállókat , ahol a NEP1 jelzesu busz megall.
Fenn radiobuttonnal kerem be, milyen iranyban akar az ileltő utazni, ehhez kap egy ''irany '' valtozot, amit megkap vegul az sql.
A jelenlegi lekerdezesem igy nez ki:
$keres = ''SELECT jarat.jarat, jarat.idopont , megallo.megallo FROM jarat, megallo where jarat.irany='''.$_POST['irany'].''' and jarat.megallo=megallo.id order by jarat.jarat,jarat.idopont '' ;
De ez most az adott iranyon közlekedő összes busz összes megállását is listázza.
[Szerkesztve] -
tildy
nagyúr
válasz
paramparya #1041 üzenetére
Order by-t használok, ezt a limit 1et nem ismertem.
Let's try!
Na ezzel tudod mia gond? Az, hogy csak 1 darabot ír ki, holott nekem az összes járat kéne, ami az adott irányba megy, de csak az indulási dátum a végállomásról.
jarat: Ors10H megallo: Ors vezer ter, időpont: 15:35:00
Ehelyett:
megálló :
jarat: NEP1 megallo: Népliget időpont: 06:30:00
jarat: NEP2 megallo: Népliget időpont: 07:05:00
jarat: NEP3 megallo: Népliget időpont: 07:20:00
jarat: NEP4 megallo: Népliget időpont: 08:20:00
jarat: NEP5 megallo: Népliget időpont: 08:35:00
jarat: NEP6 megallo: Népliget időpont: 11:35:00
PErpill sajna még azt is kiírja, hogy
jarat: NEP1 megallo: Nagykorosi ut időpont: 06:35:00 -
tildy
nagyúr
Nos van egy kis gondom.
Van 3 tablam.
Egyikben benne van egy sorszam, meg hogy milyen utvonalon kozlekedik az adott jarat.
id | irany |
+----+----------------------------+
| 1 | Ors vezer ter -> Maglod |
| 2 | Maglod -> Ors vezer ter |
| 3 | Nepliget-> Maglod |
| 4 | Maglod -> Nepliget |
Egy masik tablaban a megallok nevei vannak benne egy id-val.
a 3. tablaban pedig benne van a buszjarat neve (Pl ORS1, vagy NEP4), hogy milyen iranyba megy, mikor hol áll meg.
Ebből kéne olyan lekérést cisnálnom, hogy a végállomások alapján listázzon nekem.
Pl egy radiobuttonnal bejeleolom, hogy az 1es irany legyen.
Oke az ma rmegy, hogy az 1es irany osszes buszat listázom, de egyelore meg a megallohelyeket is mutatja, pedig nekem mindig csak az első kéne az adott járatból. -
Briganti
tag
hellosztok ...
lenne egy nagyon nem ide illo kerdezem
csak a veletlen muve, vagy az en kodom a tettes azert hogy:
van nekem egy php fajl, ameik egyik tablazatbol vesz minden cellat, es minden celle ertekkel keres ket masik tablazatba, es a talalt ertekekkel updateli az elso tablazatot ...
mielott lefuttatnam a php-t azelott minden jol megy a szerveren, gondolok itt a phpmyadmin-ra, es mikor elinditom a php-t akkor sokat dolgozik, es utanna a phpmyadmin nem nagyon akar valaszolni ...
... ne kimeljetektudom huje kerdes ...
-
tkazmer
addikt
válasz
Jester01 #1031 üzenetére
Hűha, ez nekem még majdnem hogy kínai, bár lehet, csak fáradt vagyok hozzá. Mindenesetre ott, ahol kipróbáltam, nem volt teljesen tökéletes, bár szerintem csak az lehet a baj, hogy vagy rossz helyre tettem be, vagy rossz változókat adtam neki. Mindenesetre köszönöm
#1027) Tyrael
Nem, úgy gondoltam, hogy ezután abbahagyom a webes fejlesztést, és még ezen a télen írok gyorsan egy vista konkurenst...
[Szerkesztve] -
tkazmer
addikt
válasz
VladimirR #1030 üzenetére
Köszönöm. Egyelőre marad ugyan a saját lekérdezés($sql = ''select * from kapcsolatok where letezik='Y' and user1='$uid' or user2='$uid'''; aztán, tudom, ez hosszabb távon nem megoldás, de egy ciklussal lekérem minden ismerőshöz külön ezt: $sql2 = ''select * from users where '$sor[user1]' or '$sor[user2]'=id'') Holnap viszont megcsinálom valami szerverkímélő módon is, ma már nem, hulla fáradt vagyok...
-
Jester01
veterán
válasz
VladimirR #1030 üzenetére
aki tudja, hogyan lehetne ezt egy lekerdezessel megoldani, az ne kimeljen
Az UNION az egy lekérdezésnek számít
Hát ilyen borzalmat szabad?
SELECT DISTINCT f.* FROM felhasznalok f, kapcsolatok k WHERE f.id = CASE k.user1 WHEN 123 THEN k.user2 ELSE k.user1 END and (k.user1 = 123 or k.user2 = 123); -
VladimirR
nagyúr
válasz
tkazmer #1023 üzenetére
amennyire tudom, a legjobb megoldas igy, kyulon tablaban tarolni a kapcsolatokat
a lekerdezesnel megy egy egyszeru join-nal meg tudod oldani
ha pl a 123-as id-ju user ismeroseire vagy kivancsi, akkor valahogy igy:
SELECT * FROM felhasznalok INNER JOIN kapcsolatok ON felhasznalok.id=kapcsolatok.user1 where kapcsolatok.user2=123
ez kivalogatja azon felhasznalokat, akik ismerik a 123-as id-ju felhasznalot
de ugye ez nem fog mindenkit visszaadni, mert ha a kapcsolatok tabla barmely oszlopaban szerepl a 123-as id, akkor az nekunk jo, mig a fenti lekerdezes csak azokat adja vissza, ahol a user2 oszlopban szerepel az
ezert kell egy masik lekerdezes is:
SELECT * FROM felhasznalok INNER JOIN kapcsolatok ON felhasznalok.id=kapcsolatok.user2 where kapcsolatok.user1=123
aki tudja, hogyan lehetne ezt egy lekerdezessel megoldani, az ne kimeljen -
Jester01
veterán
válasz
Forest_roby #1028 üzenetére
#951
-
Forest_roby
őstag
Hi!
egy ilyen oszlopot vagy pontosabban a tartalmát:
hsz_count int(10) unsigned
hogy lehet egyszerűen incrementálni?
( select -tel lehívom a hsz_count -ot egy változóba azt növelem eggyel és vissza update -elem vagy van egyszerűbb megoldás is? )
Előre is köszi!
Forest
[Szerkesztve] -
tkazmer
addikt
Egy ötletet kérnék: php&mysql gyakorlásnak gondoltam, hogy írok valami iwiw klón-t. A kérdésem, hogy a kapcsolatokat hogy érdemes tárolni? Eddig az van, hogy van egy kapcsolatok táblám, ahol van user1 és user2, ugye a kapcsolat egyik és másik fele. Viszont így egy kicsit bonyolult(nekem) lekérdezéseket írni. Lehetne valahogy másképp megoldani az egész tárolást, vagy ez a legjobb megoldás?
-
alitak
senior tag
Egy táblából egy sort át lehet másolni egy ugyanolyan szerkezetű táblába egyszerűbben, minthogy beolvasom, utána beíratom a másikba?
-
Forest_roby
őstag
aha, biztos vmit elírtam, mert az eredeti ciklusom ártírásával próbálkoztam és nem volt jó. Most csináltam egy teljesen új ciklus és jó lett!
Mindenesetre köszi!!
mod: Cucka:
Látom közben megjött a te válaszod is!
most így néz ki:
//meglátjuk mi lesz belőle!!
$keres = ''select '' . $topic_name . ''.comment, '' . $topic_name . ''.comment_id, '' . $topic_name . ''.date, '' . $topic_name . ''.user_id, users.loginName from '' . $topic_name . '' left join users on ('' . $topic_name . ''.user_id=users.user_id) order by comment_id desc'';
$eredmeny = mysql_query($keres) or die(''Adatbazis hiba: mysql hibauzenet:''.mysql_error());
...
...
while ($vegeredmeny = mysql_fetch_array($eredmeny))
{
echo ''--------------------<br>'';
echo $vegeredmeny[loginName] . ''<br>'';
}
És most műxik! THX!
[Szerkesztve] -
cucka
addikt
válasz
Forest_roby #1016 üzenetére
pedig az a select elvileg jó kell legyen. ha esetleg megmutatnád, hogy pontosan hogyan lett átírva, akkor az segítene abban, hogy érdemi választ adjak..
-
Tyrael
senior tag
válasz
Forest_roby #1016 üzenetére
szerintem ennek jonak kene lennie.
tuti, hogy 1nel tobb sorodnak kellene visszajonnie?
Tyrael -
Forest_roby
őstag
Még vmi!
A selected minimális átírásával sikerült is kiíratnom a lekért adatokat , de nem tudtam ciklussal végigmenni az össze soron és csak így csak egy sort ír ki. Vmi hiányzik belőle vagy mi? ( Biztos késő van : ( )
kb ilyesmi kellene:
$q = ''select * from '' . $topic_name . '' order by comment_id desc'';
$r = mysql_query($q);
while ($line = mysql_fetch_array($r))
{
echo... $line[....];
}
Biztos rá kellene jönnöm a megoldásra, de nekem eléggé ismeretlen ez a lekérdezés - próbálgattam pár féle képpen, de mindig csak 1 sort írt ki.
So, mi az amire nem sikerült rájönnöm?
Előre is köszi a választ!
Forest -
cucka
addikt
válasz
Forest_roby #1013 üzenetére
komment mellé a user_id-t tárold el, ne a usernevet, így az külső kulcs lesz. ezen kívül nagyon-nagyon melegen ajánlott, hogy oszlopoknak ne adj olyan nevet, ami foglalt szó (pl. a date).
több táblából select:
mondjuk select commentek.comment, commentek.date, commentek.user_id, userek.user_nev from commentek left join userek on (commentek.user_id=userek.user_id); -
Forest_roby
őstag
Hi!
Megint én. Nos, most egy olyan problémám lenne amit több féle képpen is megtudnék oldani, de egyik megoldás se tetszik. Vagy tul sok adatot mentenék el feleslegesen, vagy minden ciklusban adatokat kérnék le az adatbázisból, amitől meg lassú lenne a rendszer. Egyik se tetszik, remélem ti tudtok mondani egy alternatív megoldást, ami minimáils információ mentésével is gyors marad.
A probléma - még mindig vmi fórum szerűség létrehozásán küzdök - amikor egy commentet hozok létre akkor mentek pár adatot:
comment_id - auto_increment
user - neve - sessionból olvasom ki
date - datetime
comment - text
PRIMARY KEY (`comment_id`)
KEY `date` (`date`)
Amikor megjelenítem a commenteket, akkor szépen egy ciklussal kiíratom a comment-et, date-et, user nevet - még idáig jónak tűnik minden.
Node most nekiálltam, hogy a userek adatait megjelenítsem és ahhoz a user_id -t szeretném használni és nem a user nevét ( biztonságosabbnak érzem ). A név alapján minden egyes commentnél le tudnám kérdezni a user id- ját és abból egy link-et létrehozni ( person.php?user_id=124 ) ás ez működne is, csak lassú.
A másik kézenfekvő megoldás, hogy amikor elmentem a commentet, akkor a user_id -t is elmentem pluszba, de ez meg azért nem tetszik, mert nem szeretnék felselegesen plusz információval terhelni az adatbázist.
Arra is gondoltam, hogy alapból nem a user nevét, hanem a user_id -t mentem csak el és ez se lenne rossz, de akkor megint ott vagyok, hogy minden egyes commentnél kérdezhetem le a user_id alapján a nevet - ez se lenne gyorsabb.
Nos tudtok mondani, vmi jó megoldást nekem?
Előre is köszönöm a válaszokat!
Forest -
alitak
senior tag
válasz
Forest_roby #1009 üzenetére
PHPMyAdmin?
Vagy a parancs kéne? -
Forest_roby
őstag
Hi!
Egy már létező mysql táblát lehet bővíteni újabb oszlopokkal? Konkrétabban a users táblámat szeretném további információk eltárolására alkalmassá tenni. Megoldható ez vhogy?
Előre is köszi a segítséget!
üdv:
Forest
[Szerkesztve] -
Briganti
tag
ehh ... egy refresh roszkor, sorry ..
-
Briganti
tag
válasz
paramparya #1004 üzenetére
az OR nem tetszik neki, mert ha azok nelkul csinalom akko ugynezki mukodik, talan nem igy kell oket hasznalni?
-
Briganti
tag
válasz
paramparya #1004 üzenetére
az OR nem tetszik neki, mert ha azok nelkul csinalom akko ugynezki mukodik, talan enm igy kell oket hasznalni?
-
paramparya
őstag
válasz
Briganti #1002 üzenetére
Kinyírni nem lehet ilyenekkel, de ha hozzá tudsz férni a serverhez valahogy máshogy, pl phpmyadmin-nal, vagy közvetlenül, az még kényelmesebb, valami mysql frontend-del, akkor először tesztelgesd ott a bonyolultabb selecteket, hogy jók-e, nyilván behelyettesítve valami teszt értéket
-
Briganti
tag
egy mysql szervert ki lehet nyirni azzal, hogy egy nagyon nagy adatbazisba egy ''bonyolult'' selectet futattunk?
tehat ha en form-rol kuldom a cuccot hogy mit keressen, akkor nem megy, es nemtudom ettol-e de a server leallt, es ha en phpmyadmin-ba akarom futattni ugyse kapok sok valaszt ... vagy bontsam fel reszekre a selectet?
igy nezne ki az egesz:
$sel=mysql_query(''SELECT * FROM quote_author, quote_dictionary, quote_quotation, quote_dictionary_quotation WHERE
quote_quotation.quotation_id=quote_dictionary_quotation.quotation_id AND
quote_quotation.author_id=quote_author.author_id AND
quote_dictionary_quotation.dictionary_id=quote_dictionary.dictionary_id AND
quote_quotation.quotation LIKE '%$quote%' OR
quote_author.author_name LIKE '%$quote%' OR
quote_dictionary.dictionary_name LIKE '%$quote%' ORDER BY quote_author.google_rate DESC'');
nemtuodm helyese mert nemtudtam kiprobalni ... mert gondolom ha hibas akkor csak egy errort, de azert valami valaszt csak kapok ...
Aktív témák
Hirdetés
- Formula-1
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- Dacia topic
- Kínai és egyéb olcsó órák topikja
- Robogó, kismotor
- Nvidia GPU-k jövője - amit tudni vélünk
- Fujifilm X
- Magga: PLEX: multimédia az egész lakásban
- Eredeti játékok OFF topik
- További aktív témák...
- BESZÁMÍTÁS! Gigabyte Z370M i5 9400F 16GB DDR4 512GB SSD RX 5700XT 8GB ZALMAN S2 TG Corsair S650W
- Apple iPhone 14 128GB, Kártyafüggetlen, 1 Év Garanciával
- DDR5 8/ 16/ 32GB 4800-5600MHz SODIMM laptop RAM, több db- számla, garancia
- Akciós Windows 10 pro + Office 2019 professional plus csomag AZONNALI SZÁLLÍTÁS
- Bomba ár! Dell Inspiron 7400 - i7-1165G7 I 8GB I 512SSD I 14,5" 2K I HDMI I Cam I W11 I Garancia!
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged