Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: PHP: Uutiset @ MySQL

(nimetön) [28.04.2002 13:54:50]

#

Kyseessä siis normaali uutis skripti, tietokantana mysql. Tätä skriptiä on erittäin helppo laajentaa uusiin ulottuvuuksiin. Esim. tehdä ankkurit tai vaikka hakutoiminnot. Mutta niitä en ala tähän nyt tekemään. Teen vain tulostuksen ja lisäyksen.

En tuota sitten jaksanut testata. Jos ei toimi niin sitten ei toimi.

Uutiset.php tulostaa uutiset. Sillä myös saa ne kirjoitettua. Install.php asentaa mysql kannan. Settings.php:ssä on mysql kantojen asetukset. Muuttakaa sitä ensin, sitten upittakaa ja voela pitäisi toimia.

uutiset.php

<?php
//  uutiset.php
//  Copyright 2002 Internetin vapaa kansa
//  Muokkaaminen sallittua ja suositeltavaa
require("settings.php");


//	Yhdistäminen mysql kantaan suoritettu, sitten itse asiaan

	if(isset($submit)) {
	header("Location: $PHP_SELF");
	$aika = time();
	mysql_query("INSERT INTO uutiset (sender,uutinen,aika,otsikko) VALUES ('$sender','$uutinen','$aika','$otsikko')") or die("Lisäys ei onnistunut!". mysql_error());
	}



echo("<a href=\"$PHP_SELF?luo=uutinen\">Uusi uutinen</a><br>");

	$query = mysql_query("select * from uutiset order by id desc") // valitaan taulu ja tulostetaan uutiset uusimmat ensin
	while($uutinen = mysql_fetch_array($query)) {
	$time = date("d.m.Y @ H:i:s",$uutinen[aika]); // tulostetaan aika
echo <<<EOT
	<table cellpadding="0" cellspacing="0" border="0" bgcolor="#000000"><tr><td bgcolor="#ffffff">
	$uutinen[otsikko] &nbsp; <small>Lähettäjä: $uutinen[sender] &nbsp; Aika: $time</small><br>
	$uutinen[uutinen]
	</td></tr></table>
EOT;
}

		if($luo) {
		echo <<<EOT
		<center>
		<FORM ACTION="$PHP_SELF" METHOD="POST">

		Lähettäjä: <INPUT TYPE=text NAME="sender"><br>
		Uutisen otsikko: <INPUT TYPE=TEXT NAME="otsikko" maxlength="50"><br>
		Uutinen:<br><textarea rows=12 cols=60 NAME="uutinen"></textarea><br>
		<INPUT TYPE="SUBMIT" VALUE="Lähetä"><br></FORM></center>
EOT;
		}
 mysql_close($yhteys);
?>

install.php

<?php
//  install.php
//  Copyright 2002 Internetin vapaa kansa
//  Muokkaaminen sallittua ja suositeltavaa
require("settings.php");

CREATE TABLE `uutiset` (
  `aika` varchar(25) NOT NULL default '',
  `sender` varchar(150) NOT NULL default '',
  `otsikko` varchar(50) NOT NULL default '',
  `uutinen` text NOT NULL,
  `id` int(5) NOT NULL auto_increment,
  PRIMARY KEY  (`id`)
) TYPE=MyISAM;
?>

settings.php

<?php
//  settings.php
//  Copyright 2002 Internetin vapaa kansa
//  Muokkaaminen sallittua ja suositeltavaa

// näitä sinun on pakko muokata!

$sqlhost = "localhost";		// mysql kannan osoite
$sqluser = "";			// mysql tunnus
$sqlpasswd = "";		// mysql salasana
$sqltable = "";			// mysql taulu

$yhteys = mysql_connect("$sqlhost","$sqluser","$sqlpasswd") or die("Yhteyttä ei voitu muodostaa hostiin $sqlhost");
mysql_select_db("$sqltable") or die("Tietokantaa $sqltable ei löydy!");

?>

(nimetön) [29.04.2002 11:13:40]

#

ohjelmointiputkan koodin näyttö kusee hiukan.. kannattaisi ennemmin heittää vaikka mysql kantaan koodit, ja sitten tulostaa ne käyttäen show_source(); funktiota. silloin ei tulisi esim tämmöistä bugia: \" --> ""

Submin [10.06.2004 16:52:09]

#

Ei toimi.
Tein ohjeiden mukaan, mutta kaikki sivut näyttävät pelkkää tyhjää.

Horsmat [18.12.2004 21:18:56]

#

aika surkea koodi

jussikoivisto [16.03.2005 00:01:50]

#

Parse error: parse error, unexpected T_WHILE in /home/jwjoniy/public_html/uutiset2/uutiset.php on line 21
Tollasta vierhettä pukkaa.

<?php
//  uutiset.php
//  Copyright 2002 Internetin vapaa kansa
//  Muokkaaminen sallittua ja suositeltavaa
require("settings.php");


//    Yhdistäminen mysql kantaan suoritettu, sitten itse asiaan

    if(isset($submit)) {
    header("Location: $PHP_SELF");
    $aika = time();
    mysql_query("INSERT INTO uutiset (sender,uutinen,aika,otsikko) VALUES ('$sender','$uutinen','$aika','$otsikko')") or die("Lisäys ei onnistunut!". mysql_error());
    }



echo("<a href=\"$PHP_SELF?luo=uutinen\">Uusi uutinen</a><br>");

    $query = mysql_query("select * from uutiset order by id desc") // valitaan taulu ja tulostetaan uutiset uusimmat ensin
    while($uutinen = mysql_fetch_array($query)) {
    $time = date("d.m.Y @ H:i:s",$uutinen[aika]); // tulostetaan aika
echo <<<EOT
    <table cellpadding="0" cellspacing="0" border="0" bgcolor="#000000"><tr><td bgcolor="#ffffff">
    $uutinen[otsikko] &nbsp; <small>Lähettäjä: $uutinen[sender] &nbsp; Aika: $time</small><br>
    $uutinen[uutinen]
    </td></tr></table>
EOT;}

        if($luo) {
        echo <<<EOT
        <center>
        <FORM ACTION="$PHP_SELF" METHOD="POST">

        Lähettäjä: <INPUT TYPE=text NAME="sender"><br>
        Uutisen otsikko: <INPUT TYPE=TEXT NAME="otsikko" maxlength="50"><br>
        Uutinen:<br><textarea rows=12 cols=60 NAME="uutinen"></textarea><br>
        <INPUT TYPE="SUBMIT" VALUE="Lähetä"><br></FORM></center>
EOT;        }
mysql_close($yhteys);
?>

MtJ [01.10.2006 22:17:48]

#

Nuo echo <<<EOT

Voisi korvata koodissa merkillä yksinkertaisella lainausmerkillä. Eli sijoittaa tuon html:n yksinkertaisten lainausmerkkien sisäpuolelle.

Lisäksi koodista saisi varmasti helpommin luettavan jakamalla tuon pariksi funktioksi. Toiminee kuitenkin "perusteina" uutisten tekoon näinkin.

Vastaus

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

Tietoa sivustosta