Adatbázis lekérdezés

Szerző
Üzenet
Ragadozo
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2008.05.08. Csütörtök 18:26
Hozzászólások: 629
Hozzászólás Elküldve: 2014.08.01. 09:20    Hozzászólás témája: Adatbázis lekérdezés
Hozzászólás az előzmény idézésével
KillBill, vagy valaki! Kéne egy kis segítség! :oops:

Egyszerűen nem tudok rájönni, mi lehet a hiba.
Az általam írt lekérdezés lényege, hogy kilistázza az összes témát, mégpedig az utolsó hozzászólás szerint csökkenő sorrendben.

Tökéletesen működik, csak éppen az első aktuális találatot nem írja ki!!!
Ha írok egy új hozzászólást egy másik témában, akkor az nem jelenik meg a lista elején, de az előzőleg hiányzó már ott van!

Kód:

         $sql = 'SELECT * FROM ' . TOPICS_TABLE . "
         ORDER BY topic_last_post_time DESC";
         $result = $db->sql_query($sql);
         $rows = $db->sql_fetchrow($result);
   $db->sql_freeresult($result);


HELP! Szerintem megint nem látom az erdőt a fától, vagy a fát az erdőtől .... mindegy, de már bosszant.

Felhasználó profiljának megtekintése Privát üzenet küldése Email küldése Felhasználó weblapjának megtekintése
dzseemy
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2011.07.04. Hétfő 16:20
Hozzászólások: 131
Hozzászólás Elküldve: 2014.08.01. 11:19    Hozzászólás témája:
Hozzászólás az előzmény idézésével
A lekérdezésben én hibát nem látok (max zavaró kicsit a $sql... sorban, hogy aposztrófot és idézőjelet is használsz).

Hogyan íratod ki a lekérdezés eredményét? ($rows) Szerintem itt lehet a hiba.

Felhasználó profiljának megtekintése Privát üzenet küldése Felhasználó weblapjának megtekintése
Ragadozo
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2008.05.08. Csütörtök 18:26
Hozzászólások: 629
Hozzászólás Elküldve: 2014.08.01. 11:32    Hozzászólás témája:
Hozzászólás az előzmény idézésével
A $rows-al nincs gond, nem lett elírva.
Most gondoltam egyet, és DESC helyett ASC :lol:

Az eredmény: növekvő sorrendben írja ki az eredményt, és most látszik a végén a legújabb, legfrisebb hozzászólás is, csak most az elejéről nem látszik a legrégebbi. :)

Felhasználó profiljának megtekintése Privát üzenet küldése Email küldése Felhasználó weblapjának megtekintése
dzseemy
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2011.07.04. Hétfő 16:20
Hozzászólások: 131
Hozzászólás Elküldve: 2014.08.01. 11:53    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Gondolom a lekérdezést valamilyen formában kiíratod. Ezt hogyan teszed? Mivel teszed "láthatóvá" a $rows értékét?
Szerintem a kiíratásnál lehet a hiba!
Mondjuk hiba lehet az is, ha az 1. sortól íratod ki, és nem a 0.-tól.

Felhasználó profiljának megtekintése Privát üzenet küldése Felhasználó weblapjának megtekintése
KillBill
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2007.03.26. Hétfő 5:42
Hozzászólások: 2237
Hozzászólás Elküldve: 2014.08.01. 16:11    Hozzászólás témája:
Hozzászólás az előzmény idézésével

dzseemy írta:

Mondjuk hiba lehet az is, ha az 1. sortól íratod ki, és nem a 0.-tól.
+1

A lekérdezésedben nincs semmi hiba, vagyis egy ami nem tetszik az az hogy az összeset lekéri ami kissé terhelő ha több száz téma van, jobb lenne felvenni egy limit értéket és használni a start értéket is.
_________________
phpBB my addons: phpBB Arcade, [MODDB] phpBB Delete my registration, [RC] phpBB Invite
phpBB my Extensions: [RC] phpBB Arcade, [CDB] phpBB Delete my registration

Játék-világ - KillBill

Felhasználó profiljának megtekintése Privát üzenet küldése Felhasználó weblapjának megtekintése MSN Messenger
Ragadozo
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2008.05.08. Csütörtök 18:26
Hozzászólások: 629
Hozzászólás Elküldve: 2014.08.02. 21:30    Hozzászólás témája:
Hozzászólás az előzmény idézésével

KillBill írta:

.......
A lekérdezésedben nincs semmi hiba, vagyis egy ami nem tetszik az az hogy az összeset lekéri ami kissé terhelő ha több száz téma van, jobb lenne felvenni egy limit értéket és használni a start értéket is.
KillBill köszönöm a tippet! :)
Nem tudtam rájönni végül is, de amit írtál, az adott egy jó ötletet, így megoldottam másképpen.
Ebben a formában a legfontosabb dolog, az utolsó hozzászólás témája is benne van a listában.

A start érték használatát még át kell tanulmányoznom, mert nem nagyon értem .... :oops:

Felhasználó profiljának megtekintése Privát üzenet küldése Email küldése Felhasználó weblapjának megtekintése
KillBill
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2007.03.26. Hétfő 5:42
Hozzászólások: 2237
Hozzászólás Elküldve: 2014.08.02. 22:54    Hozzászólás témája:
Hozzászólás az előzmény idézésével

Ragadozo írta:

A start érték használatát még át kell tanulmányoznom, mert nem nagyon értem .... :oops:
A limittel beállítod, hogy egy lapon mennyi téma jelenjen meg pl 20/lap a start azt az értéket adja meg, hogy mely témától kezdje el a lekérdezést.

Tehát ha a limit 20 a start 0 akkor az első 20 téma jelenik meg, ha a start 20 akkor 20-40 jelennek meg a témák.

Ajánlom nézz át egy lapozó scriptet, a phpbb-ben azért elég sok van.
Persze ez csak akkor kell, ha tényleg szükséged van az összes téma lekérésére.
_________________
phpBB my addons: phpBB Arcade, [MODDB] phpBB Delete my registration, [RC] phpBB Invite
phpBB my Extensions: [RC] phpBB Arcade, [CDB] phpBB Delete my registration

Játék-világ - KillBill

Felhasználó profiljának megtekintése Privát üzenet küldése Felhasználó weblapjának megtekintése MSN Messenger
Ragadozo
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2008.05.08. Csütörtök 18:26
Hozzászólások: 629
Hozzászólás Elküldve: 2015.02.25. 09:01    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Sziasztok!

Csak a kíváncsiság hajt igazából, de kiakadtam egy kicsit. Nincsen nagy jelentősége, csak érdekelt volna a dolog, és nem találom rá a megoldást.

Kód:

CREATE TABLE IF NOT EXISTS `phpbb_terra_naplo_team` (
  `naplo_team_id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `naplo_user_id` int(11) unsigned NOT NULL DEFAULT '0',
  `naplo_username` varchar(24) NOT NULL DEFAULT '',
  `naplo_user_colour` varchar(6) NOT NULL DEFAULT '',
  `naplo_count` int(11) unsigned NOT NULL DEFAULT '0',
  `naplo_jegyzet` varchar(256) NOT NULL DEFAULT '',
  PRIMARY KEY (`naplo_team_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;


A tábla tökéletesen működik semmi gond nincsen vele.
Amit nem értek, és hiába néztem utána, sehol nem találtam rá megoldást, vagy magyarázatot, az a "naplo_team_id" oszlop.
Akár "0"-át, akár "1"-et adok meg az 'AUTO_INCREMENT' értéknek, mindig kettesével számozza az új sorokban a "naplo_team_id" értékét (2, 4, 6, 8, ... stb.).
Ugyanakkor látom nem egy táblánál, hogy az "id" számok egyesével növekszenek.

Mi ennek a trükkje, vagy mit nem veszek megint észre? :)

Felhasználó profiljának megtekintése Privát üzenet küldése Email küldése Felhasználó weblapjának megtekintése
pstvfan
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2006.07.30. Vasárnap 1:00
Hozzászólások: 1538
Hozzászólás Elküldve: 2015.02.25. 11:15    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Ez valószínűleg inkább az INSERT résztől függ. Amúgy általában INSERT-nél NULL-t szoktak az auto increment mezőkbe írni. ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 Ez a rész csak azt mondja, hogy kezdje az auto_increment-et 1-től
_________________
<M>

Felhasználó profiljának megtekintése Privát üzenet küldése
Ragadozo
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2008.05.08. Csütörtök 18:26
Hozzászólások: 629
Hozzászólás Elküldve: 2015.02.25. 11:43    Hozzászólás témája:
Hozzászólás az előzmény idézésével

pstvfan írta:

......
ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 Ez a rész csak azt mondja, hogy kezdje az auto_increment-et 1-től
Ezt értem. :)
Ami miatt kíváncsi lettem erre, hogy akár "0"-át, akár "1"-et adok meg, nálam teljesen mindegy.
Az első beszúrt sor akkor is naplo_team_id = 2 lesz, és utána is párosával emelkedik a szám.

Mert alapból az AUTO_INCREMENT arra lenne jó, hogy új sor beszúrásakor nem kell ezzel az oszloppal foglalkozni, mert a sorszámot automatikusan növeli.
Arra nem találok választ, hogy miért kettesével? Mert ugye a logikus az lenne, ha egyesével növelné.

Ha viszont egyesével szeretném növelni, meghatározhatom én is, hogy mennyi legyen az oszlop értéke, lekérdezem, hogy mennyi az utolsó (legnagyobb) érték, és hozzá adok 1-et.
De ebben az esetben akkor minek van az AUTO_INCREMENT lehetőség? :)

Felhasználó profiljának megtekintése Privát üzenet küldése Email küldése Felhasználó weblapjának megtekintése
pstvfan
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2006.07.30. Vasárnap 1:00
Hozzászólások: 1538
Hozzászólás Elküldve: 2015.02.25. 15:23    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Szerintem az INSERT-ed hibás, és azért ilyen.
_________________
<M>

Felhasználó profiljának megtekintése Privát üzenet küldése
Marcee
Adminisztrátor
Adminisztrátor
Avatar

Csatlakozott: 2006.01.17. Kedd 1:00
Hozzászólások: 2807
Hozzászólás Elküldve: 2015.02.25. 19:19    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Ha másik adatbázis táblában is ez történik, akkor valószínűleg egy megváltoztatott auto_increment_increment nevű MySQL beállításba sikerült belefutnod. Át lehet állítani az első lekérdezések előtt, de szerintem nem éri meg a belefektetett energiát.

(A Microsoft Azure MySQL adatbázisaiban 10 az értéke. Az összes táblában úgy nőnek az ID-k, hogy 1, 11, 21, ... :) )
_________________
Kérlek, privát üzenetben ne kérj segítséget olyan kérdéssel kapcsolatban, aminek a fórumon a helye!

Felhasználó profiljának megtekintése Privát üzenet küldése
Ragadozo
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2008.05.08. Csütörtök 18:26
Hozzászólások: 629
Hozzászólás Elküldve: 2015.02.26. 09:03    Hozzászólás témája:
Hozzászólás az előzmény idézésével

Marcee írta:

Ha másik adatbázis táblában is ez történik, akkor valószínűleg egy megváltoztatott auto_increment_increment nevű MySQL beállításba sikerült belefutnod. Át lehet állítani az első lekérdezések előtt, de szerintem nem éri meg a belefektetett energiát.

(A Microsoft Azure MySQL adatbázisaiban 10 az értéke. Az összes táblában úgy nőnek az ID-k, hogy 1, 11, 21, ... :) )
Nagy valószínűséggel bele találtál a problémába. :)

Utána néztem az adatbázisban, és 2014.07.28 18:19:07 GMT regisztrált be az utolsó user úgy, hogy az user_id-je az előzőnél "1"-el volt nagyobb.
Onnantól kezdve az user_id is kettesével emelkedett.
Nagyjából ettől az időponttól a gallery album_id is elkezdett kettesével emelkedni (a többit már nem is néztem).

Gyanúm, hogy valamelyik ekkor felrakott MOD okozhatta ezt a problémát, mert cca. egy hónappal előtte költözünk az új helyre, és utána egy ideig még csak eredeti MOD-ok lettek telepítve, saját fejlesztésű, adatbázist is érintő anyagok csak szeptember környékén kezdtek felkerülni.
Ha lesz egy kis időm, már csak kíváncsiságból is utána nézek, melyik lehet esetleg a ludas.

Problémát nem okoz, az adatbázis hiba nélkül fut, a *_id-ket így is tökéletesen lehet használni.
Csak nagyon kíváncsi lettem, mivel nem találtam sehol magyarázatot a jelenség okára.

Köszi a tippet! :)

Felhasználó profiljának megtekintése Privát üzenet küldése Email küldése Felhasználó weblapjának megtekintése
Marcee
Adminisztrátor
Adminisztrátor
Avatar

Csatlakozott: 2006.01.17. Kedd 1:00
Hozzászólások: 2807
Hozzászólás Elküldve: 2015.02.26. 18:43    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Én a MOD-ok előtt a tárhelyszolgáltatót kérdezném meg. Valószínűbbnek tartom, hogy ők babrálhatták a szerver beállításokat. Esetleg phpMyAdmin-ban nézd meg a Változók fület, ha elérhető. Ott megtalálod az aktuális beállításokat. A megváltoztatása viszont nem tudom, pontosan mivel járhat, úgyhogy azzal csak óvatosan :)
_________________
Kérlek, privát üzenetben ne kérj segítséget olyan kérdéssel kapcsolatban, aminek a fórumon a helye!

Felhasználó profiljának megtekintése Privát üzenet küldése
Ragadozo
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2008.05.08. Csütörtök 18:26
Hozzászólások: 629
Hozzászólás Elküldve: 2015.02.26. 23:33    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Nos', köszönöm a tanácsod, megint bejött.

Beszéltem velük, szerencsére évek óta nagyon jó a kapcsolatunk, segítőkészek.
Az autoinc 2 egy tükrözés, egy sql replika miatti szerver oldali beállítás.
Az egyik node páros, a másik páratlan számokat generál.
Nekem a páros jutott.

Az egészbe csak az a jó, hogy miközben átnéztem az adatbázis táblákat, találtam egy hibás szerkezetűt is. Az a tábla egy másik adatbázisból lett importálva, és valahogy megsérülhetett.
Érdekes módon tökéletesen működött, de tábla-szerkezeti hiba volt benne, ami miatt csak a tartalom volt megnézhető, a tábla szerkezetét nem lehetett behívni.
Szerencsére ez egy dinamikusan változó tábla volt. Töröltem, újra raktam, és saját magát újra feltöltötte.

Egyszóval nekem így is tökéletes, de legalább most már tudom, hogy miért. :)

Felhasználó profiljának megtekintése Privát üzenet küldése Email küldése Felhasználó weblapjának megtekintése
Hozzászólások megtekintése:  

Nem készíthetsz új témákat ebben a fórumban.
Nem válaszolhatsz egy témára ebben a fórumban.
Nem módosíthatod a hozzászólásaidat a fórumban.
Nem törölheted a hozzászólásaidat a fórumban.
Nem szavazhatsz ebben fórumban.

Hirdetés
Hirdetés