Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP & SQL linkin tiedot uudelle sivulle

Legato [14.12.2006 15:48:06]

#

Luon pelaajatietokantaa, jossa "search.php" hakee pelaajat hakupalkin kautta, ja tulostaa ne linkkeinä. Linkkiä klikkaamalla pitäis avautua uusi sivu "players.php" joka sitten näyttää kaikki tietokannassa olevat tiedot pelaajasta.
Selkeytettynä siis, haun "niko" tuloksena saan seuraavan:

Jokinen, Niko
Lahtinen, Niko
Virtanen, Niko

Kaikki siis linkkeinä. Kun klikkaan ensimmäistä linkkiä pitäisi uuden sivun "players.php" avautua muodossa "/jotain/players.php?name=JokinenNiko"
eli pyrin käyttämään:

<?php
echo "<a href='players.php?name=$lastname$firstname'>$lastname,

$firstname</a>";
?>

Ongelma koskee lähinnä tätä linkistä aukeavaa sivua, pitäisi ilmeisesti saada siihen "select"-lausekkeeseen sen että haetaan vain sen klikatun pelaajan tiedot.
Kysykää jos epäselvää, koitan selventää.

ajv [14.12.2006 15:53:59]

#

Sulla on varmaan siellä tietokannassa Id-kenttä noille pelaajille?

<?php
echo "<a href='players.php?id=$id'>$lastname,

$firstname</a>";
?>

sitten players.php-sivulla haet

SELECT name FROM pelaajat WHERE id = intval($_GET['id'])

Ja tuota ennen tietenkin kaikki tarpeelliset tarkistukset, eli että id on annettu ja se on numeerinen.

Antti Laaksonen [14.12.2006 16:25:45]

#

Pelaajaa voi tietysti etsiä samalla tavalla tietokannasta myös nimen perusteella. (Mutta jos samannimisiä pelaajia sattuu olemaan useita, käy huonosti!) Tällöin kannattaa välittää sivulle players.php kaksi muuttujaa (?name1=Jokinen&name2=Niko), jotta nimiä ei tarvitse edestakaisin yhdistää ja erotella. Joka tapauksessa kaikki sivun osoitteessa ilmoitetut muuttujat ovat taulukossa $_GET, ja niitä voi käsitellä kuin tavallisia muuttujia.

Legato [14.12.2006 16:39:51]

#

Kiitokset vastauksista. Sain sen vihdoin toimimaan, tosin hieman muunneltuna. Loin players.php tiedostoon muuttujat $lastname ja $firstname ja laitoin ne rajoitukseksi SELECT -lausekkeeseen. Mutta nyt näyttäisi toimivan.

Vastaus

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

Tietoa sivustosta