Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: ID:n haku MySQL:stä

Sivun loppuun

Tinqe [01.05.2004 19:53:58]

#

Tarkoitus olisi kehittää kommenttisysteemi, jota voisi käyttää omilla tunnuksilla. Tunnukset ja viestit olisivat tietokannassa, josta pitäisi viestin kirjoittajan id:n perusteella saada selville tämän nimimerkki.

tb_viestit
id|otsikko|kommentti|user_id|

tb_kayttaja
id|nimimerkki|passu|

Ainoat keinot, jotka keksin olivat joko suorittaa uusi kysely jokaisen viestin tulostuksen yhteydessä tai valita kaikki käyttäjät kerralla ja käyttää looppia. Eli jokin järkevä keino? Yritin selvittää muutamista valmiista foorumeista tätä keinoa, mutta ne ovat minulle aivan liian hienoa koodia.

Toivottavasti joku ymmärsi mitä yritin selittää :)

Edit: Otsikkona olisi tainnut olla parempi "ID:llä haku..", mutta sitä ei enää voikaan muuttaa :(

leftover [02.05.2004 08:11:39]

#

SELECT a.otsikko, a.kommentti, b.nimimerkki FROM tb_viestit a LEFT JOIN tb_kayttaja b ON (b.id = a.user_id)

Olga [02.05.2004 09:32:05]

#

Tai jos LEFT JOIN menee yli hilseen (kuten allekirjoittaneella useimmiten...) voi käyttää ihan WHERE:ä.

SELECT a.otsikko, a.kommentti, b.nimimerkki FROM tb_viestit a, tb_kayttaja b WHERE a.user_id=b.id

Tinqe [02.05.2004 14:15:43]

#

Paljon kiitoksia, tällä päästään jo pitkälle :)

Vielä toinen kysymys, miten saa selville esim. tuon viestin ID:n kun käytössä on auto_increment?

Olga [02.05.2004 14:36:16]

#

SELECT a.id, a.otsikko, a.kommentti, b.nimimerkki FROM tb_viestit a, tb_kayttaja b WHERE a.user_id=b.id

Tuotako tarkoitit?

Tinqe [02.05.2004 14:44:11]

#

Tarkoitin siis INSERT-lauseessa, eli:

INSERT INTO tb_viestit(otsikko,kommentti,user_id) VALUES('otsikko','kommentti','user_id')

Kun tämä suoritetaan ja id:llä käytössä auto_increment, pitäisi saada selville tuon viestin id.

Jäi hieman vajaaksi tuo ensimmäinen kysymys.

Edittiä editin perään, miten nuo koodi-tagit oikein toimivat :)

Olga [02.05.2004 15:00:06]

#

Insertin jälkeen php-funktiolla mysql_insert_id saa tuon edellisen laitetun id:n selville. Ja eri kooditageihin kannattaa tutustua ohjeet-sivulla: https://www.ohjelmointiputka.net/ohje.php?tunnus­=kohjeet

leftover [02.05.2004 15:04:22]

#

Viimeisin id saadaan ulos php:n puolelta mysql_insert_id tai erillisellä kyselyllä (itse suosin kyselyä)

SELECT id FROM tb_viestit ORDER BY id DESC LIMIT 1

jolloin kysely palauttaa suurimman id-arvon.

kooditagit toimii (poista välilyönnit):
[ koodi ]
koodia
[ /koodi ]
[ koodiphp ]
koodia
[ /koodiphp ]

Näiden lisäksi on vielä joitain muita tageja jotka löytyy https://www.ohjelmointiputka.net/ohje.php?tunnus­=kohjeet alta.

EDIT: Enterit unohtui

Tinqe [02.05.2004 15:08:52]

#

Kiitän ja kumarran teille guruille :)

folio [03.05.2004 11:04:19]

#

Vinkki:

Jos käytät mysql_insert_id:tä, muista tarkistaa ensin mysql_affected_rows-funktiolla onnistuiko rivin lisäys. Nimittäin jos ei niin insert_id saattaa palauttaa arvon nolla, joka joissakin tapauksessa voi sotkea skriptin toiminnan täydellisesti, nimimerkillä kokemusta on.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta