Terve
Pitäisi saada tietokannasta haettua sarake, jossa id-kenttä on arvoltaan $i ja otsikko-kentän pituus on suurempi kuin nolla merkkiä. Mites tälläisessä tapauksessa edetään?
SELECT * FROM taulu WHERE id = ? AND LENGTH(otsikko) > 0
Lisää SQL:n tekstinkäsittelyfunktioista
Edit. Ja kyseessä on muuten rivi eikä sarake; id ja otsikko ovat sarakkeita.
Kiitos.
Muokkaus. Kysyn vielä tämän kysymyksen. Jos minulla on taulu, josta pitäisi poimia sarakkeet aika, otsikko, lahettettaja, lahettaja_id ja aihe_id. Ne pitäisi poimia siten, että ryhmittelisi tulokset aihe_id:n perusteella, hakisi kyseisen aiheen viimeisimmän viestin ajan ja nostaisi ensimmäiseksi sen aiheen jossa on viimeiseksi lähetetyin viesti.
Eli, järjestelisi foorumille ko. alueelle lähetetyt aiheet niiden vastausten perusteella.
Joo, jokin virhe sattui niiden sarake ja rivi nimien kanssa.
Koska ryhmittely täytyy tehdä ennen järjestämistä, toivomasi ratkaisu ei aivan toimi. Jos kuitenkin luotat siihen, että uusimmalla viestillä on viimeinen id, et välttämättä tarvitse järjestämistä ajan mukaan.
En luota, koska foorumilla on mahdollista "poistaa" viestejä. Pitänee siis luoda kaksi kyselyä, mutta millaiset?
Voisikohan olla järkevää tallentaa aiheen tietoihin millon sinne on lähetetty viimeksi viesti, niin ne olisi helpompi ja nopeampi järjestää?
Jos id:n kasvusta vastaa AUTO_INCREMENT, se aina nimenomaan kasvaa eikä koskaan ota välistä tyhjäksi jääneitä. Lisäksi viestien poistamisen voi hyvin hoitaa vain lisäämällä siihen poistomerkinnän; näin vahingossa poistettujen viestien palauttaminenkin on helppoa. (Olisi ihan kiva ominaisuus Ohjelmointiputkassakin!)
Ei suinkaan ole yksiselitteisesti järkevintä lisätä aiheeseen viimeisen viestin numeroa. Hyödyt ovat minimaaliset (varsinkin, jos viestitauluun on oikeaoppisesti luotu indeksi aihe_id:n mukaan), mutta sen sijaan ohjelmoijalle tulee ylimääräistä muistettavaa: esimerkiksi uusimman viestin poiston yhteydessä pitää muistaa päivittää kyseinen viittaus. Lisäksi tällainen viittaus on tietokannan normalisoinnin ideologian vastaista, koska aiheen uusin viesti voidaan aina hakea yksiselitteisesti suoraan viestitaulusta.
Jos tuollainen on kuitenkin pakko saada, kannattaa edes toteuttaa se triggereillä (AFTER INSERT ja AFTER DELETE), jottei PHP:tä tarvitse sotkea asiaan.
Tosiaankin, nyt en ottanut huomioon noita kaikkia. Mutta, miten teen tämän kaikista helpoiten? AUTO_INCREMENTtiä käytän id:ssä, ja indexejä ei ole määritelty noin.
Muokkaus. Sain uusimman viestin lähettäjän jokaiselle alueelle näkymään oikein, mutta vielä pitäisi järjestää aiheet oikeaan järjestykseen. Kuten tässä ajan mukaan. (Teen siis foorumia) En saa niitä millään oikeaan järjestykseen. Jännä, kun kaikki muut hienoudet (viestien ja aiheiden poisto, aiheen siirtäminen & otsikon muokkaus, porttikiellon antaminen ja salliminen jne.) toimivat, mutta sivun rakenne (Keskustelua täällä) ja tuo äsken mainitsemani asia ei toimi. :D
Aihe on jo aika vanha, joten et voi enää vastata siihen.