Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: PHP: Lyhennesanakirja

KuinKala [11.03.2005 01:18:55]

#

Lyhennesanakirja on SQL-kantaan pohjautuva pieni järjestelmä, joka koostuu seuraavista elementeistä; lyhenne, sana(t) josta lyhenne tulee sekä kuvaus.

Enpä tiedä onko tästä konkreettista hyötyä, mutta kai tätä voi jalostaa eteenpäin :)

Rakennan lisää, kun jaksan ja ehdin.

config.php

<?php

### sql -asetukset, muuta omaksesi!!

$palvelin = ""; // sql-palvelimen osoite
$tunnus = ""; // sql-tunnus
$salasana = ""; // sql tunnuksen sanasana
$kanta = ""; // sql kanta

$yhteys = mysql_connect($palvelin, $tunnus, $salasana) or die ("Virhe kannassa!"); // yhteys palvelimeen
mysql_select_db($kanta) or die ("Virhe kannassa!"); // yhteys kantaan

?>

index.php

<html>
<head>
<title>Lyhennesanakirja</title>
</head>
<body>
<font id="iso">Lyhennesanakirja</font><br><br>
Valitse alkukirjain:<br><br>
<table id="charlist">
<tr>

<?php

/* Sanakirjakannan taulu(t)

CREATE TABLE sanakirja
(
lyhenne VARCHAR(10) PRIMARY KEY NOT NULL,
sana VARCHAR(100) NOT NULL,
kuvaus TEXT NOT NULL,
alkukirjain CHAR(1) NOT NULL
);

*/

########################################
#                                      #
# Lyhennesanakirja 0.1 by Jani Innanen #
# Jos/kun kopioit, säilytä tämä        #
#                                      #
########################################

### mysql -asetukset, muuta omaksi!

@include("config.php"); // tämä rivi tuo sql-asetukset, ÄLÄ POISTA

$alkukirjaimet = mysql_query("SELECT DISTINCT alkukirjain FROM sanakirja ORDER BY alkukirjain ASC",$yhteys) or die ("Ei sanoja sanakirjassa"); // haetaan alkukirjaimet

### luuppi jolla tulostetaan taulukkoon löydetyt alkukirjaimet

if(mysql_num_rows($alkukirjaimet) < 1){
	print "<i>Sanakirjassa ei ole sanoja</i>";
}

else {

for($i = 0; $i < mysql_num_rows($alkukirjaimet); $i++){
	$alkukirjain = mysql_result($alkukirjaimet, $i, 0);
	print "<td id=\"char\"><a href=\"index.php?letter=$alkukirjain\">$alkukirjain</a></td> \n";
}

print "</tr></table><br>";

$kirjainhaku = $_GET['letter']; // haettu alkukirjain

### jos kirjain on haettu

if($kirjainhaku != ""){
	$sanahaku = mysql_query("SELECT lyhenne,sana FROM sanakirja WHERE alkukirjain='$kirjainhaku' ORDER BY lyhenne ASC",$yhteys); // haetaan lyhenne ja sana
	print "<b>$kirjainhaku -kirjaimella alkavat lyhenteet:</b><br><br>";
	$tarkkahaku = $_GET['word'];

	### jos tarkempi haku on haettu haetaan kannasta lyhenne, sana ja kuvaus
	### joka vastaa haettua alkukirjainta ja lyhennettä

	if($tarkkahaku != ""){
		print "<table id=\"tarkkataulu\">";
		$tarkkakysely = mysql_query("SELECT lyhenne,sana,kuvaus FROM sanakirja WHERE alkukirjain='$kirjainhaku' AND lyhenne='$tarkkahaku'",$yhteys);
		$tarkka_lyhenne = mysql_result($tarkkakysely, 0, 0);
		$tarkka_sana = mysql_result($tarkkakysely, 0, 1);
		$tarkka_kuvaus = mysql_result($tarkkakysely, 0, 2);

		print "<tr><td width=\"400\" id=\"tarkkasolu_ylin\"><b>$tarkka_lyhenne</b></td></tr>";
		print "<tr><td width=\"400\" id=\"tarkkasolu\"><i>$tarkka_sana</i></td></tr>";
		print "<tr><td width=\"400\" id=\"tarkkasolu\">$tarkka_kuvaus</td></tr>";

		print "</table><br><br>";
	}

	### tulostetaan luupilla allekkain kaikki haetulla alkukirjaimella haetut lyhenteet

	for($o = 0; $o < mysql_num_rows($sanahaku); $o++){
		$lyhenne = mysql_result($sanahaku, $o, 0);
		$selite = mysql_result($sanahaku, $o, 1);
		print "<a href=\"index.php?letter=$kirjainhaku&word=$lyhenne\">$lyhenne</a> - $selite<br> \n";
	}
}

else { } // muuten ei tehdä mitään

}
mysql_close($yhteys); // mysqli yhteys kiinni

?>
</body>
</html>

addword.php

<?php

### tarkistus onko kaikki täytetty

if(($_POST['lyhenne'] != "") && ($_POST['sana'] != "") && ($_POST['kuvaus'] != "")){

	@include("config.php"); // tämä rivi tuo sql-asetukset, ÄLÄ POISTA

	$lyhenne = strtoupper($_POST['lyhenne']); // lyhenne isoiksi kirjaimiksi
	$alkukirjain = $lyhenne{0}; // otetaan lyhenteestä alkukirjain
	$sana = $_POST['sana']; // sanalle muuttuja lomakkeesta
	$kuvaus = $_POST['kuvaus']; // kuvaukselle muuttuja lomakkeesta
	mysql_query("INSERT INTO sanakirja (lyhenne,sana,kuvaus,alkukirjain) VALUES ('$lyhenne','$sana','$kuvaus','$alkukirjain')",$yhteys) or die ("Virhe syötettäessä kantaan"); // syötetään kantaan
	header("Location: index.php"); // takaisin etusivulle
}
else {
	"Täytä kaikki kentät sanaa lisätessä!"; // muuten kerrotaan että pieleen meni
}

?>

addword.html - lisäyslomake

<form method="post" action="addword.php" name="addword">
<table border="0" width="400">
<tr>
<td valign="top" width="100"><b>Lyhenne:</b></td>
<td valign="top" width="300"><input type="text" maxlength="10" name="lyhenne" size="40"></td>
</tr>
<tr>
<td valign="top" width="100"><b>Selitys:</b></td>
<td valign="top" width="300"><input tyep="text" maxlength="100" name="sana" size="40"><br></td>
</tr>
<tr>
<td valign="top" width="100"><b>Selitys:</b></td>
<td valign="top" width="300"><textarea name="kuvaus" cols="30" rows="10"></textarea><br><br></td>
</tr>
<tr>
<td valign="top" colspan="2" width="400"><input type="submit" value="Lisää sanakirjaan"></td>
</tr>
</table>
</form>

Vastaus

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

Tietoa sivustosta