Hirdetés

2024. június 10., hétfő

Gyorskeresés

Útvonal

Fórumok  »  Szoftverfejlesztés  »  MySQL topic

Hozzászólások

(#251) Jester01 válasza vakondka (#250) üzenetére


Jester01
veterán

Itt a javított verzió, most van mysqlem ki is tudtam próbálni:

select t1.products_id, t1.language_id from products_description t1 left join products_description t2 on t1.products_id = t2.products_id and t2.language_id = 4 where t1.language_id = 1 and t2.language_id is null

(A t1.language_id = 1 feltétel a join helyett a where részbe kell.)

Jester

(#252) vakondka válasza Jester01 (#251) üzenetére


vakondka
őstag

A MySQL üreset adott vissza (nincsenek sorok). :F

lementettem az egész táblát, ha gondolod nézd meg: [link]

[Szerkesztve]

https://toptarget.hu - Online Marketing Ügynökség

(#253) Jester01 válasza vakondka (#252) üzenetére


Jester01
veterán

Jah, most meg fordítva van (azokat listázta amik angolul vannak csak) :B
A 4est és az 1est cseréld meg.

select count(*) from products_description t1 left join products_description t2 on t1.products_id = t2.products_id and t2.language_id = 1 where t1.language_id = 4 and t2.language_id is null;
+----------+
| count(*) |
+----------+
| 1618 |
+----------+

Jester

(#254) vakondka válasza Jester01 (#253) üzenetére


vakondka
őstag

Működik ! :C :DD
Most próbálok rájönni, hogyan... :U

mi ez a t1 és t2 dolog ? ezekre én nem találtam példát sehol, hogy lehetne
ilyen komoly SELECT-et írni a LEFT JOIN-al és ezzel a varázslattal amit írtál.

Mégegyszer köszi ! :R

https://toptarget.hu - Online Marketing Ügynökség

(#255) Jester01 válasza vakondka (#254) üzenetére


Jester01
veterán

A t1 és a t2 csak két tetszőleges alias név a tábláknak, mivel önmagával joinolva nem tudnánk másképp megkülönböztetni őket.

Jester

(#256) pufi


pufi
tag

Sziasztok!

Alaplap csere után, kénytelen voltam újratelepíteni a rendszeremet, melyen mindig, minden program, adatbázis, elérési út azonos, immáron sok-sok éve. Semmi nem változott az előző konfighoz képest, csak az alaplap (nf2 ez is, iletve a régi is az volt, csak elromlott, tehát nem hw-es a gond). Szóval a probléma. Apache felmegy, php felmegy, mysql felmegy, config, EXECUTE és a START SERVICE-nél gondolkodik egy keveset, aztán azt mondja, hogy ERROR:0 és a szolgáltatást nem indítja el. Kézzel sem tudom útjára indítani a service-t, mert egy teljesen értelmetlen windows-os hibaüzenettel (miszerint nem indítható el...) Uninstall, reinstall, ugyanez. Más verziójú MySql letölt, feltelepít, a helyzet változatlan. Ha valaki tud valami okosat, kérem segítsen, mert (természetesen mikor máskor...) határidős munkám van, amit e nélkül nehéz lesz befejeznem.

Egyébként már elég sok alkalommal telepítettem a rendszeremre az Apache/PhP/MySql programokat, de most kifogott rajtam.

Köszönöm:
Pufi

A cél maga az ÚT (ősi buddhista tanítás)

(#257) vakondka válasza pufi (#256) üzenetére


vakondka
őstag

uninstall mindent, aztán WAMP install: [link]

https://toptarget.hu - Online Marketing Ügynökség

(#258) pufi válasza vakondka (#257) üzenetére


pufi
tag

Köszönöm a tanácsot. Megfogadtam.
Semmi nem változott. Az Apache service elindul, a PhP megyen, de a Mysql service így sem indul el. Sem automatikusan, sem manuálisan.

A cél maga az ÚT (ősi buddhista tanítás)

(#259) paramparya válasza pufi (#258) üzenetére


paramparya
őstag

ha parancssorból futtatnád a mysql.exe-t, mi történik?

(#260) pufi válasza paramparya (#259) üzenetére


pufi
tag

semmi. egy tized mp-re felugrik a dos ablak, valami error feliratot még látni vélek, oszt el is tűnik

A cél maga az ÚT (ősi buddhista tanítás)

(#261) paramparya válasza pufi (#260) üzenetére


paramparya
őstag

Hát indíts el egy cmd.exe-t, onnan futtasd ;)

(#262) L3zl13 válasza pufi (#258) üzenetére


L3zl13
nagyúr

Eventlogban nincs hibaüzi a mysql-től, hogy miért nem indult el?

Aki hülye, haljon meg!

(#263) pufi válasza L3zl13 (#262) üzenetére


pufi
tag

Több tucat bejegyzés az event log-ban:
1: Aborting
2: Can't init databases

ez a két üzenet ismétlődik. a 2. üzenetet kicsit sem értem. Telepítéskor akár a már meglévő helyet adom meg az adatbázisoknak, akár a default marad, az execute-nál megáll azzal, hogy Error:0

Szóval egyelőre KO

A cél maga az ÚT (ősi buddhista tanítás)

(#264) pufi válasza paramparya (#261) üzenetére


pufi
tag

cmd-ből futtatva a mysqld.exe lefut (legalábbis kis idő után visszkapom a kurzort üzenet nélkül) a mysql.exe viszont visszatér az ERROR 2003 : Cant connect to MySql server on Localhost (10061)

A cél maga az ÚT (ősi buddhista tanítás)

(#265) pufi


pufi
tag

találtam 1-1 ilyen bejegyzést is:
Default storage engine (InnoDB) is not available
Do you already have another mysqld server running on port: 3306 ?

A cél maga az ÚT (ősi buddhista tanítás)

(#266) pufi


pufi
tag

A probléma megoldva! :)
Már nem nagyon volt más ötletem, így hát manuálisan töröltem minden registry bejegyzést, ami a mysql-re vonatkozott illetve a már elég rég óta használt ibdata1 file-t. Hogy melyik volt a sikeres művelet azt nem tudom, de a lényeg, hogy az 5-ös MySql már gond nélkül felment és elindult. Az eddigi rendszertelepítéseim során minden esetben a most törölt könyvtárat ill. innodb file-t adtam meg, eddi gsemmi gond nem volt. Talán megsérült nemtom. a Lényeg hogy most ha belehúzok akkor még elkészülök a munkámmal.

Mindent kösz ;)

A cél maga az ÚT (ősi buddhista tanítás)

(#267) Papy87


Papy87
csendes tag

Hali!

Lenne egy olyan kérdésem, hogy hogyan lehet megváltoztatni egy mező típusát egy táblában???
Pl.: valami varchar(30) -ról valami text -re.

Kössz!

(#268) paramparya válasza Papy87 (#267) üzenetére


paramparya
őstag

ALTER TABLE `tábla` CHANGE `mezőnév` `mezőnév` TEXT

(#269) paramparya válasza paramparya (#268) üzenetére


paramparya
őstag

Ja, azért van kétszer a mezőnév, mert ezzel a lendülettel akár át is nevezhetnéd, tehát oda írhatod ugyanazt, ha azt szeretnéd hogy maradjon a neve, vagy új nevet is :)

(#270) L3zl13 válasza Papy87 (#267) üzenetére


L3zl13
nagyúr

ALTER TABLE `tabla` CHANGE `mezonev` `mezonev` TEXT

Szerk: Látom megelőztek... Ez van, ha az ember elkezd legyeket kergetni miközben üzenetet szerkeszt. :DDD


[Szerkesztve]

Aki hülye, haljon meg!

(#271) Papy87


Papy87
csendes tag

Köszi a segítséget!

Azt szeretném még megkérdezni, hogy titkosított jelszavakat milyen típusú mezőben érdemes tárolni???

(#272) paramparya válasza L3zl13 (#270) üzenetére


paramparya
őstag

:DDD

(#273) paramparya válasza Papy87 (#271) üzenetére


paramparya
őstag

varchar tökéletes...

(#274) Papy87 válasza paramparya (#273) üzenetére


Papy87
csendes tag

Próbáltam varchar-ral, csak az a problémám, hogyha egy encryptelt jelszót próbálok benne tárolni, akkor a visszaper jeleket kihagyja.

(#275) cucka válasza Papy87 (#274) üzenetére


cucka
addikt

visszaperjel? mivel kódolsz?

(#276) paramparya válasza Papy87 (#274) üzenetére


paramparya
őstag

hát, olyan karakternek nem is nagyon kéne benne lennie...
de ha ragaszkodsz hozzá, akkor mysql_real_escape_string függvényt hívd meg a tárolandó cuccra, de inkább sha1-gyel kódold...

(#277) Papy87 válasza cucka (#275) üzenetére


Papy87
csendes tag

tripledes

(#278) cucka válasza Papy87 (#277) üzenetére


cucka
addikt

azt nem tudom, hogy hol található ez a függvény, de nem beépített mysql cucc. ajánlott inkább valamelyik beépített függvényt használni, mondjuk sha vagy md5. ezek garantáltan alfanumerikus output-ot eredményeznek, vagyis nem lesz gond a spec. karakterekkel.
(vigyázat, vannak olyan beépített kódoló függvények is, amelyek bináris output-ot eredményeznek, pl. aes_encrypt. használat előtt érdemes kipróbálni)

[Szerkesztve]

(#279) Papy87 válasza cucka (#278) üzenetére


Papy87
csendes tag

Nagyon kezdő vagyok még ezekben. Nem tudnál valami dokumentációt az md5-röl??

(#280) cucka válasza Papy87 (#279) üzenetére


cucka
addikt

leírás [link]
md5-öt egyszerű használni, simán csak md5('szoveg'), visszatérési értéke pedig egy pontosan 32 betűt tartalmazó kódolt string, mondjuk a fenti példára ezt fogod kapni: f8048b424496a23885767471f23731af

ha maga az algoritmus érdekel, azt megtalálod wikipedián. egyébként az md5-öt sikerült ''feltörni'', de ezzel együtt elég nehéz kulcsütközést generálni benne, szóval arra bőven elég biztonságos, hogy adatbázisban tárolt jelszavakat lekódold.
ha mégsem bízol benne, akkor ott az sha1 függvény, ugyanúgy használható, mint az md5, csak ez pontosan 40 karakter hosszú string-el tér vissza.

(#281) Papy87 válasza cucka (#280) üzenetére


Papy87
csendes tag

Köszi! Sokkal nehezebbnek gondoltam.

(#282) _Petya_


_Petya_
őstag

Üdv!

Lenne pár kérdésem:

- mi a különbség a VARCHAR és a TEXT típus között? Melyiket érdemes használni?

- DATE típusú oszlopban tárolok dátumokat, hogyan tudok lekérdezést csinálni úgy, hogy pl. adott év adott hónapjának összes sorát kérem?

Petya

Fontos feladatot soha ne bízz olyan gépre, amit egyedül is fel tudsz emelni!

(#283) cucka válasza _Petya_ (#282) üzenetére


cucka
addikt

varchar fix hosszúságú (0-255 hosszú lehet)
text változó hosszúságú

2006 szeptemberi rekordok kiválasztása:
select * from tablanev where datummezo like '%2006-09%'

(#284) montressor


montressor
aktív tag

Van harom tabla: users, kedvencek, kategoriak valahogy igy:
users:
user_id | jelszo ...

kategoriak:
kat_id | nev

kedvencek:
id | user_id | kat_id

ez utobbinal a user_id es a kat_id idegen kulcs, a masik ket tabla elsodleges kulcsa. Barmelyik felhasznalonak, tobb kulcsa lehet, igy a kedvencekben tobb azonos user_id is elofordulhat, es ugye tobb ugyanazon kat_id is szerepelhet, igy:

kedvencek:
id | user_id | kat_id
1 | 1 | 2
2 | 1 | 3
3 | 1 | 4
4 | 2 | 2
5 | 2 | 4

harom dolog okoz fejtorest nekem
1, ha a felhasznalo kategoriat valtoztat, mindig le kell torolnom a rekordjait (ez 1 query (where user_id='xx')), es ujra felvenni amit bejelolt (ez annyi insert, ahanyat bejelolt (sok))
Nem lehet-e ezt elegansabban megoldani?

2, eddig jol megvoltam a delete/drop jog nelkul, nem tudom gaz-e ha ezt is pepoccintem (igaz update-tel is lehet kart tenni), szokas-e, kell-e?

3,ha majdan ki szeretnem iratni phpben, az osszes kategoriat, es becsekkolni azt ami az aktualis felhasznalonak a kedvence, akkor ez elegge korulmenyes (legalabb is a 4. ponthoz kepest):

kell egy elso select * from kedvencek where user_id='xx';
kell egy masodik select * from kategoria, h megtudjam a kategoriak nevet

es utanna valami while, de nem tudom hogy hozzam ossze a ket selectet,
mert ugye egy ciklus fut vegig az osszes kategorian kiirashoz, es meg kene neznem, h az aktualis kategoria be van-e jelolve az elso szelekt eredmenyeiben. Na ezt hogyan?

4,gondoltam ra, h esetleg a user tablaban letrehozok annyi boolean kategoriat amennyi van, es akkor egy update az egesz, ez nagyon egyszeru es tetszene, csak elvesztem azt a lehetoseget, h uj kategoriat szurok be, akkor azt csak a kategoria tablaba kelljen megtennem-> esik szet a program, es a db...

Ti mit gondoltok? Koszonom

(#285) L3zl13 válasza montressor (#284) üzenetére


L3zl13
nagyúr

1. Történetesen egy inserttel lehet több sort is beszúrni.
insert into kedvencek values (1,1,2), (1,1,3), (1,1,4);
Hogy melyik az előnyösebb, csak a törölt kategóriákat törölni/updatelni, vagy mindet törölni, és újra insertálni, az szerintem a felhasználástól függ.
2, szerintem nincs rá szükség, ha jól megírod a kódot, és véded sql inject ellen

Aki hülye, haljon meg!

(#286) montressor válasza L3zl13 (#285) üzenetére


montressor
aktív tag

koszonom a helpet

(#287) _Petya_ válasza cucka (#283) üzenetére


_Petya_
őstag

Köszönöm.

Még egy kérdés:

Hogy lehet táblák között kapcsolatot megadni?

Petya

Fontos feladatot soha ne bízz olyan gépre, amit egyedül is fel tudsz emelni!

(#288) L3zl13 válasza cucka (#283) üzenetére


L3zl13
nagyúr

Szvsz a varchar nem fix hosszúságú.
A char az ami fix hosszú.

Aki hülye, haljon meg!

(#289) L3zl13 válasza _Petya_ (#287) üzenetére


L3zl13
nagyúr

select mezoa.tabla1, mezob.tabla2, mezoc.tabla1 from tabla1,tabla2 where mezoa.tabla1=mezoa.tabla2 ...
vagy
select mezoa.tabla1, mezob.tabla2, mezoc.tabla1 from tabla1 join tabla2 on mezoa.tabla1=mezoa.tabla2 ...

Aki hülye, haljon meg!

(#290) Jester01 válasza L3zl13 (#289) üzenetére


Jester01
veterán

Elírtad, fordítva :)

Jester

(#291) L3zl13 válasza Jester01 (#290) üzenetére


L3zl13
nagyúr

Bazze tényleg... :B

Tiszta hülye vagyok már.

nem mezo.tabla, hanem tabla.mezo mindenhol

Aki hülye, haljon meg!

(#292) _Petya_ válasza L3zl13 (#289) üzenetére


_Petya_
őstag

Közben találtam olyat, hogy FOREIGN KEY. Ez akkor mire jó? Vagy úgy is meg lehet csinálni, meg így is?

mod: most nézem, InnoDB táblatípus kell hozzá, nekem meg MyISAM van. Hogyan tudom átállítani? (phpmyadmin-ban ha lehet)

Petya

[Szerkesztve]

Fontos feladatot soha ne bízz olyan gépre, amit egyedül is fel tudsz emelni!

(#293) Jester01 válasza _Petya_ (#292) üzenetére


Jester01
veterán

Foreign key arra jó, hogy eleve a táblaszerkezet leírásában rögzíted a viszonyt. Ekkor az adatbáziskezelő ezt ellenőrizni fogja és nem enged olyan módosításokat amelyek ezt a szabályt megsértenék. De lekérdezéskor ettől függetlenül a L3zl13 által mutatott join-t kell alkalmazni.

Jester

(#294) _Petya_ válasza Jester01 (#293) üzenetére


_Petya_
őstag

Köszi. És hogyan tudok meglévő táblához ilyen kulcsot hozzáadni? Szeretném ha az adatbázis is tartalmazná a viszonyokat...

Petya

Fontos feladatot soha ne bízz olyan gépre, amit egyedül is fel tudsz emelni!

(#295) L3zl13 válasza _Petya_ (#294) üzenetére


L3zl13
nagyúr

Alter table parancs.

Aki hülye, haljon meg!

(#296) hb113


hb113
csendes tag

van nekem egy táblám nickek néven. van benne: id|nev|jelszó. kéne nekem valami ami kíírja sorban a felhasználókat. még nagggyon kezdő vagyok ugyhogy kérlek írjátok le részletesen a dolgokat! előre is köszönöm:hb113 :R :R

(#297) corm


corm
senior tag

Lenne nekem egy olyan kérdésem, hogy adott egy php file, amiben mysql_connectel szeretnék csatlakozni egy kiszolgálóhoz, ami nem a localhost. Próbáltam urlt megadni, aztán az url ipjét, de se így, se úgy nem sikerült. Lehet, hogy a pphpt futtató kiszolgáló, vagy amelyikhez csatlakozni akarok nem engedi ezt nekem, vagy csak simán rossz célt adok meg?

Ja, egyébként amihez csatlakozni szeretnék az a atw mysql szervere, és a mysql.atw.hu, valamint ennek ipjével próbálkoztam a mysql_connect első paramétereként...

Y N W A

(#298) cucka válasza corm (#297) üzenetére


cucka
addikt

valószínüleg mindegyik ingyenes mysql szerver úgy van beállítva, hogy csak lokálisan lehet hozzá csatlakozni. egyrészt biztonsági okokból, másrészt mert ingyenes.

(#299) corm válasza cucka (#298) üzenetére


corm
senior tag

ok, sejtettem, csak reméltem hátha mégis bennem van a hiba :)

köszi!

Y N W A

(#300) hb113


hb113
csendes tag

az én problemomra nemtudtok orvosságot??? vagy valami mysql kézikönyvszerüség kéne amiből megtanulhatnám, és nem zavarnék itt többet :DD :DDD

Útvonal

Fórumok  »  Szoftverfejlesztés  »  MySQL topic
Copyright © 2000-2024 PROHARDVER Informatikai Kft.