Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Käyttäjätietojen tulostusta phpBB:ssä

Sivun loppuun

MarkusK [14.03.2007 09:17:30]

#

Aloin värkkäämään phpBB:n kanssa, mutta en ole PHP-koodia tutkimalla onnistunut keksimään, miten haetaan jonkun tietyn jäsenen/ kaikkien jäsenten tietoja foorumista.

Seuraavat toiminnot kiinnostaisivat oppia:

-jäsenten viestimäärät, liittymis/kirjautumispäivät, viestimäärät tietyllä aikavälillä, ym.

-viestimääristä ja jäsenmäärästä riippuvainen tittelirajan automaattinen muutos

Toistaiseksi olen onnistunut lukemaan php:llä vain foorumin kokonaisviestien ja jäsenten määrän. Tämän tiedon pohjalta olen saanut aikaiseksi toimivan reaaliaikaisen tittelirajalaskurin, mikä vain tulostaa rajat semmoisena, kuin ne olisivat editoitaessa.

PHP on siis aivan uusi aluevaltaus. :)

Decease [14.03.2007 19:13:57]

#

No esimerkiksi näin haet jonkin tietyn käyttäjän kaikki tiedot:

<?php
...yhteys tietokantaan...
$nick = mysql_query("SELECT * FROM bb_users WHERE username LIKE 'somenick'")
or die(mysql_error());
?>

Missä "bb_users" on käyttäjät taulusi nimi ja "somenick" luonnollisesti se käyttäjä jonka tiedot haluat.


Käyttäjän nimimerkin ja sähköpostin tulostaminen taas onnistuu vaikka näin:

<?php
$row = mysql_fetch_array($nick);

echo $row['username'];
echo $row['email'];
?>

Jos taas haluat kaikkien käyttäjien tiedot niin poistat kyselystä kohdan:
WHERE username LIKE 'somenick'

Kaikkien käyttäjien tulostaminen taas onnistuu näin:

<?php
while($row = mysql_fetch_array($nick)) {
  echo $row['username'];
  echo $row['email'];
}
?>

Toivottavasti tämä oli se mitä hait/tarkoitit.

MarkusK [14.03.2007 20:23:25]

#

Tuhannet kiitokset ja syvä kumarrus!

Näyttää erittäin lupaavalta, luulenpa, että tällä pääsee suuren harppauksen eteenpäin!

Koodi näyttää hyvin lyhyeltä loppujen lopuksi, surin ongelmanihan on se, että en ole tiennyt, millä toiminnolla mitäkin tietoa haettaisiin, vaan on pitänyt plarata tiedostoja läpi ja koittaa löytää jotakin vastaavia. Ja yleensäkin PHP on minulla vielä täysin alkutekijöissään, siinä ei liikoja ole apua vähäisestä QBasic, html, python, yms. osaamisesta. Ainoastaan ohjelmoinnin perusteet, mutta hyvänä tukena sekin toki on, että alkuun pääsee.

Nyt pitää kaikessa rauhassa perehtyä tähän puoleen, mitä kaikenmaailman askareiltani ehdin. Toivon mukaan lähiaikoina saan jotakin uutta aikaiseksi näillä tiedoilla. Ja yritys-erehdysmenetelmällä loppuja...

Kerron sitten, miten onnistun yritelmässäni...

MarkusK [15.03.2007 08:13:16]

#

Välionnistuminen:

Toistaiseksi olen onnistunut tulostamaan kertaalleen vain käyttäjän nimen samanlaisena, mitä olen laittanut somenickin paikalle, mutta en esimerkiksi e-mailia. Pitänee vissiin olla kirjautuneena foorumiin tai jotain... (?)

Yritelmät jatkuvat.

EDIT 15.3.2007 09:03: Noniin. Kehitys kulkee takapakkia, en enää saa millään ilveellä muuta kuin virheitä tai tyhjän sivun useista kymmenistä yrityksistä huolimatta. Nyt saapi joksikin aikaa yritykset riittää, päreet palavat muuten loppuun. Yritys-erehdys-menetelmässä se vaara on aina olemassa... Ehkä illalla on terveellisempää yrittää taas saada tuo tyhjä sivu aikaiseksi... :D

Decease [15.03.2007 09:09:36]

#

Tarkista phpmyadminista millä nimellä sähköposti siellä users taulukossa on. Sieltä näet myös kaikkien muiden sarakkeiden nimet joista tietoa voi hakea. Esimerkiksi rekisteröitymispäivä voi olla "regdate", mutta se pitää ensin tarkistaa phpmyadminista ettei mene arvailun puolelle.

MarkusK [15.03.2007 09:17:52]

#

Ensin pitää hommata kyseinen phpmyadmin, en ole vielä semmoista laittanut.

Tämän hetken tilanne on edelleen se, että tietokannasta saan esiin kaikkien viestien yhteismäärän ja käyttäjämäärän. Siinäpä se sitten onkin.

Varmaan tuon users-tablen kohdan nimeämisessä on suuri probleema. Yhden kerran olin näkevinäni, että oma käyttäjänimi peräti tulostui, mutta epäonneksi menin tietenkin muuttamaan sen kohdan, kun emailia en saanut näkyviin...

Nyt täytyy kyllä lähteä ulkoaskareisiin tuulettamaan hetkiseksi päätä, josko tuo kohta vielä selviäisi uudelleen. Toivossa on ainakin hyvä elää.

tsuriga [15.03.2007 10:48:10]

#

Myslin virheenkäsittely ja SELECT * FROM is evil. Toisin sanoen, käytä tuon "or die" sijasta mieluummin tuollaista php-q.netissä esiteltyä virheenkäsittelyä, johon voit tosiaan laittaa loggauksen tiedostoon ja tulostaa sitten käyttäjille omavalintaisen virheviestin, ei missään nimessä myslin virheilmotuksia suoraan. Toisekseen, käytä SELECTissä tähden tilalla oikeita kenttien nimiä, näin tiedät heti kyselyä suorittaessa, jos taulusta ei löydy saraketta nimeltä X.

Decease [15.03.2007 14:28:11]

#

Kiitos tsurigalle noista linkeistä. Tuli vain sellainen asia mieleen, että mitä jos kirjoittaa vain pelkän mysql-lauseen ilman mitään error-lausetta tähän tapaan:

mysql_connect($db_server,$db_user,$db_passwd);

Eli mikä sen error-lauseen tarkoitus edes on? PHP on itselleni vielä melko uusi tuttavuus ja opetellut sitä olen esimerkeistä ja oppaista, joista jotain on aina jäänyt ymmärtämättä. Eli mitä tapahtuu jos sen "errorin" jättää kokonaan pois?

tsuriga [15.03.2007 14:58:23]

#

Riippuen PHP:n asetuksista virheviesti joko tulostuu tai on tulostumatta käyttäjälle. Käytännössä käyttäjille ei pitäisi tulostaa mitään virheilmoituksia raakana, vaan kaikki (mahdolliset) virheet tulisi käsitellä serverin puolella ja tulostaa sitten käyttäjälle jotain aivan muuta. Niin ja julkisilla servereillä nuo (raa'at) virheviestit tulee siis kytkeä PHP:n asetuksista pois päältä.

// php.ini
display_errors = Off // ei näytetä virheitä käyttäjille
log_errors = On // logeista helppo debuggailla
error_reporting = E_ALL & ~E_NOTICE | E_STRICT // kaikki paitsi noticet, oman maun mukaan

Sivun alkuun

Vastaus

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

Tietoa sivustosta