Ik heb een probleempje met mijn database en paginanummering: als iemand in mijn gastenboek een entry plaatst wordt daarbij een ID opgeslagen. Ook wordt UNMODERATED op 1 gezet totdat ik het bericht heb gelezen en heb geaccepteerd of afgewezen, dan wordt UNMODERATED op 0 gezet. Ik laad mijn berichten dus ook met "blablabla where UNMODERATED is 0" (of zoiets tenminste). Maar het probleem is dat mijn paginanummering de ID's telt en alles daarop ordent: het probleem is dus dat er teveel ID's zijn en er dus een paar lege pagina's extra worden aangemaakt door de paginanummering. Kan ik dit met een querie oplossen, of weet iemand een andere manier, of moet het toch echt in php?
Sorry, maar ik heb er dagen over gedaan om dit script in te bouwen. Ik wil het echt gewoon oplossen met een querie of door wat code te veranderen ofzo:S
SELECT * FROM VGB_ENTRY where UNMODERATED = 0 order by ID asc limit
Verder gebeurt er niet veel mee, hier zie je het probleem al: unmoderated wordt niet 'geladen' maar de ID van unmoderated wel en zo worden er dus teveel pagina's aangemaakt:S
Ik bedoelde hoe je paginanummering eruit zag... Waarom gebruik je in namen van Kolommen en Tabellen hoofdletters? (Vind ik zelf nogal onhandig:
SELECT * FROM vgb_entry WHERE unmoderated = 0 ORDER BY id ASC LIMIT
vind ik veel makkelijker te lezen: De hoofdletterz ijn de acties en de kleine letters de namen. Bij jou switchen ze halverwege)
Dat was de querie van de paginanummering. De oplossing is om te zorgen dat er net zo veel ID's geladen worden als "alle ID's min alle UNMODERATED=1". Dit zou misschien wel kunnen in een querie, maar dan zit je weer met het probleem dat je misschien de verkeerde gaat uisluiten. Maar als de entrie weergeven wordt met ID en UNMODERATED bij elkaar, kan die ook weergeven worden met UNMODERATED en ID bij elkaar. (wazig, hier de uitleg) Dus volgens mij is het mogelijk om bij UNMODERATED=1 de ID te vinden die daarbij hoort want het is ook mogelijk om bij een ID UNMODERATED te vinden (en de rest van de entry). Dus moet de ID die bij de UNMODERATED=1 hoort, niet geladen worden. Maar hoe doe je dat in een querie?: iets van "WHERE unmoderated = 1 DON'T LOAD (bijbehorende) ID" of zo (:P). Weet iemand hoe dit mogelijk is in een querie??
En dit is toch precies gelijk aan alle id's waar unmoderated = 0?
Dus het lijkt me dat die query die je in het begin gaf echt wel klopt. Als jij alleen de id's van berichten wilt ophalen die jij al gelezen hebt, gebruik je dus: