Adatbázis lekérdezés
Szerző
Üzenet
KillBill, vagy valaki! Kéne egy kis segítség!
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!
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.
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.
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.
Hogyan íratod ki a lekérdezés eredményét? ($rows) Szerintem itt lehet a hiba.
A $rows-al nincs gond, nem lett elírva.
Most gondoltam egyet, és DESC helyett ASC
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.
Most gondoltam egyet, és DESC helyett ASC
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.
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.
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.
dzseemy írta:
Mondjuk hiba lehet az is, ha az 1. sortól íratod ki, és nem a 0.-tól.
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 í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.
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 ....
Ragadozo írta:
A start érték használatát még át kell tanulmányoznom, mert nem nagyon értem ....
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.
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.
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?
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?
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.
_________________
<M>
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>
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
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?
Szerintem az INSERT-ed hibás, és azért ilyen.
_________________
<M>
_________________
<M>
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, ... )
(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, ... )
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, ... )
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!
É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
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.
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.
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.
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.