Nyt on pari kysymystä. Miten tämän koodin saisi niin että se kirjottaisi aina uuden uutisen omalle riville.
<?php if(isset($_POST['add']) && isset($_POST['viesti'])){ $add = get_magic_quotes_gpc() ? $_POST['add'] : mysql_real_escape_string($_POST['add']); $viesti = get_magic_quotes_gpc() ? $_POST['viesti'] : mysql_real_escape_string($_POST['viesti']); $aika = time(); //avataan tiedosto kirjoitustilassa $tt = fopen("news.txt", "w+"); //kirjoitetaan tiedostoon kolme riviä; \n tarkoittaa rivinvaihtoa fwrite($tt, "$add|$viesti|$aika\n"); //suljetaan tiedosto fclose($tt); } ?> <form method="POST" action="addnews.php" /> <table> <tr> <td>Lähettäjä: </td><td><input type="text" name="add" /></td> </tr> <tr> <td>Viesti</td><td><textarea rows="5" style="width:450px;" name="viesti" /></textarea></td> </tr> <tr> <td><input colspan="2" type="submit" value="Lähetä" /></td> </tr> </table> </form>
Ja tämän niin että se lukusi aina kolme uusinta.
<?php $uutiset = @file("news.txt"); echo "<table Width='100%'>"; //tulostetaan rivit for($i=0; $i<count($uutiset); $i++) { $uutinen = explode("|", $uutiset[$i]); echo "<tr style='background-color: #C5C5C5;'><td>".$uutinen[0]." [".date("d.m.Y H:i:s", $uutinen[2])."]</td></tr>"; echo "<tr><td>".$uutinen[1]."</td></tr>"; } echo "</table>"; ?>
edit:Ja miten nuo koodit pitäisi olla oikea oppisesti.
make3003 kirjoitti:
//avataan tiedosto kirjoitustilassa $tt = fopen("news.txt", "w+");
Muutetaan:
//avataan tiedosto lisäystilassa $tt = fopen("news.txt", "a");
make3003 kirjoitti:
Muutetaan:
$uutiset = array_reverse($uutiset); for($i=0; $i<3; $i++) {
make3003 kirjoitti:
edit:Ja miten nuo koodit pitäisi olla oikea oppisesti.
On nuo aika hyvin, paitsi tableja ei kannattaisi käyttää :)
Lisäksi kannattaisi katsoa funktio, minkä lisäsin:
https://www.php.net/manual/fi/function.array-reverse.php
Ja tietenkin sinun pitää lukea opas:
https://www.ohjelmointiputka.net/oppaat/opas.
* https://www.ohjelmointiputka.net/oppaat/opas.
* https://www.ohjelmointiputka.net/oppaat/opas.
Edit: Mikäli et lue oppaita, niin lisäneuvonta tekee 3€/min.
Jos ei tableja niin mitä sitten?
Olisi hyvä tietää jos siihen on jokin hyvä syy.
make3003 kirjoitti:
Jos ei tableja niin mitä sitten?
Divejä esimerkiksi.
make3003 kirjoitti:
Olisi hyvä tietää jos siihen on jokin hyvä syy.
http://www.aimedia.fi/stupid_tables/
Lisäksi voisit vaikkapa kirjoittaa vaihteeksi otsikon oikein: "Tiedos käsittely" => "Tiedoston käsittely"
Tämä maksaa nyt 1,25€ :P
str4nd kirjoitti:
make3003 kirjoitti:
Jos ei tableja niin mitä sitten?
Divejä.
Ei välttämättä. Semanttisesti korrekteja elementtejä, sanoisin.
sooda kirjoitti:
Ei välttämättä. Semanttisesti korrekteja elementtejä, sanoisin.
En väitä vastaan :)
Ei kannata kääntää koko taulukkoa kun tässä tahdotaan vain kolme uusinta. Mieluummin näin:
..tai vastaavalla tavalla hakien taulukon viimeiset kolme alkiota. Itse taisin joskus puhua array_reversen puolesta selkeydellä perustellen. Tässä tehdään kuitenkin paljon turhaa työtä jos on yhtään isompi taulukko ja käännetään se kokonaan vain kolmen rivin vuoksi.
Kiitos vastauksista.
Aihe on jo aika vanha, joten et voi enää vastata siihen.