Mikä klikkaa mysql_queryssä seuraavassa scriptissä?
<?php
// Avataan yhteys tietokantapalvelimeen
mysql_connect("localhost","tunnus","salasana");
// Valitaan tietokanta
$db = mysql_selectdb("tietokanta");
// Määritellään vakiot.
// RowsPerPage kertoo kuinka monta tulosriviä tulostetaan yksittäiselle
// sivulle.
define("RowsPerPage", 40);
// Tarkistetaan onko tulossivu määritelty. Jos se on määritelty,
// niin asetetaan se käsiteltäväksi sivuksi, muussa tapauksessa näytetään
// ensimmäinen tulossivu.
if ($_REQUEST["page"] != "") {
$page = $_REQUEST["page"];
} else {
$page = 1;
}
// Haetaan tulosrivien sorttikenttä. Jos sorttikenttää ei ole määritelty
// näytetään kirjat nimen mukaisessa järjestyksessä.
if ($_REQUEST["sortfield"] != "") {
$sortfield = $_REQUEST["sortfield"];
} else {
$sortfield = "nimi";
}
// Haetaan tulosrivien sorttausjärjestys. Jos sorttausjärjestystä ei ole
// määritelty näytetään rivit nousevassa järjestyksessä.
if ($_REQUEST["sortdir"] != "") {
$sortdir = $_REQUEST["sortdir"];
} else {
$sortdir = "ASC";
}
if ($_REQUEST["id"] != "") {
$id = $_REQUEST["id"];
} else {
$id = "0";
}
// Generoidaan SQL SELECT-lause.
$query = "SELECT id, nro, nimi FROM lista WHERE id = " . $id ."ORDER BY " . $sortfield . " " . $sortdir;
// Suoritetaan kysely tietokannasta.
$result = mysql_query($db, $query);
// Tehdään virhetarkistus.
virhetarkistus($result);
// Haetaan rivien määrä.
$numrows = mysql_num_rows($result) - 1;
// Asetetaan ensimmäiseksi käsiteltäväksi riviksi
// sivun ensimmäinen tietue.
$row = ($page-1) * RowsPerPage;
// Asetetaan viimeinen käsiteltävä rivi.
$lastrow = (($page) * RowsPerPage - 1);
if ($lastrow > $numrows) {
$lastrow = $numrows;
}
if ($page > 1) {
print " <a href='testi.php?page=" . ($page-1) . "&sortfield=" . $sortfield . "&sortdir=" .$sortdir . "'>Edellinen</a>";
}
if ($lastrow < $numrows) {
print " <a href='testi.php?tuoteid=" . ($page+1) . "&sortfield=" . $sortfield . "&sortdir=" .$sortdir . "'>Seuraava</a>";
}
// Generoidaan HTML-taulukon otsakkeet.
print ("<table border='1' width='98%' align='center'>");
print ("<tr>");
if ($sortfield == "id" and $sortdir == "ASC") {
print (" <td class='haku' width='34%'><a href='testi.php?id=$id&page=" . $page . "&sortfield=id&sortdir=DESC'>Valmistaja</a></td>");
} else {
print (" <td class='haku' width='34%'><a href='testi.php?id=$id&page=" . $page . "&sortfield=id&sortdir=ASC'>Valmistaja</a></td>");
}
if ($sortfield == "nro" and $sortdir == "ASC") {
print (" <td class='haku' width='34%'><a href='testi.php?id=$id&page=" . $page . "&sortfield=nro&sortdir=DESC'>Malli</a></td>");
} else {
print (" <td class='haku' width='34%'><a href='testi.php?id=$id&page=" . $page . "&sortfield=nro&sortdir=ASC'>Malli</a></td>");
}
if ($sortfield == "nimi" and $sortdir == "DESC") {
print (" <td class='haku' align='center' width='8%'><a href='testi.php?id=$id&page=" . $page . "&sortfield=nimi&sortdir=ASC'>Hinta</a></td>");
} else {
print (" <td class='haku' align='center' width='8%'><a href='testi.php?id=$id&page=" . $page . "&sortfield=nimi&sortdir=DESC'>Hinta</a></td>");
}
print ("</tr>");
// Käydään lävitse jokainen vieraskirjamerkintä ja
// generoidaan HTML-taulukkorivi.
while ($row <= $lastrow){
// Haetaan rivin tiedot taulukkoon;
$tuote = mysql_fetch_row ($result,$row);
// Generoidaan rivi.
printf ("<tr>");
printf (" <td class='tuotelista'>%s</td>", $tuote[0]);
printf (" <td class='tuotelista'>%s</td>", $tuote[1]);
printf (" <td class='tuotelista' align='center'>%s</td>", $tuote[2] ." e");
printf (" </tr>");
// Siirrytään seuraavalle riville.
$row++;
}
// Lopetetaan HTML-taulukko.
printf ("</table>");
// Suljetaan tietokantayhteys
mysql_close();
?>Gurujahan me kaikki ollaan ja suoritetaan päässämme nämä koodit, mutta selvennyksen vuoksi voisitko kertoa minkä virheilmoituksen koodi antaa niin voin verrata sitä siihen mikä päässäni ajettuna tuo koodi antaa ;)
Ja pistä vielä kooditagit niin tuota on huomattavasti kivempaa lukea.
$yhteys = mysql_connect("localhost","tunnus","salasana") or die(mysql_error());ja sitten loppuun
mysql_close($yhteys);
SEKÄ or die(mysql_error()); käyttöön!
Ja käytä ennemmin mysql_select_db() mysql_selectdb() funktion sijasta
$query = "SELECT id, nro, nimi FROM lista WHERE id = " . $id ."ORDER BY " . $sortfield . " " . $sortdir;
Tuo muuttuja tälläiseksi:
$query = "SELECT id, nro, nimi FROM lista WHERE id ='$id' ORDER BY $sortfield $sortdir";
Ja jatkossa käytetään _AINA_ ' hipsuja tietokantahaussa sisällä. Parempi turva.
ja is_numeric() funkkarilla tarkistetaan että käytetään numeraalista lukua.
Kiitos ja hyvää yötä.
Aihe on jo aika vanha, joten et voi enää vastata siihen.