Autor Zpráva
Béééda
Profil *
Moderátor Petr ZZZ: Tři podobná vlákna: …1… …2… …3…

Ahojte mám tu takový problém chtěl jsem si udělat aplikaci přidávání článků … Všechno šlape výborně ale já bych potřeboval, aby se při zápisu do db založil na webu new soubor s tím článkem … Zde je soupor zapis.php
<?php
include("pripojenie.php"); //nemoze vam chybat pripojenie do databazy

if(isset($_POST['vloz'])) //ak bolo stlacene tlacitko Vlozit
{
        $nadpis = $_POST['nadpis'];
        $text = $_POST['text'];

        $sql = "insert into tabulka set nadpis='".$nadpis."', text='".$text."';"; //prida udaje do db
        $vysledok = mysql_query($sql);  

        if ($vysledok) {
        echo "Udaj uspesne pridany"; //vypise uspesnost
        } else {
        echo "Udaj nemohol byt pridany! Skuste to ešte raz."; //vypise neuspesnost
}}
?>

    //formular

    <form method="post">
        Nadpis: <input name="nadpis" type="text"><br>
        Text: <textarea name="text" cols="30" rows="3"></textarea><br>
        <input type="submit" value="Vložit" name="vloz">
    </form>
Taps
Profil
Béééda:
zkus
<?php
include("pripojenie.php"); //nemoze vam chybat pripojenie do databazy

if(isset($_POST['vloz'])) //ak bolo stlacene tlacitko Vlozit
{
        $nadpis = $_POST['nadpis'];
        $text = $_POST['text'];

        $sql = "insert into tabulka set nadpis='".$nadpis."', text='".$text."';"; //prida udaje do db
        $vysledok = mysql_query($sql);  

        if ($vysledok) {
        file_put_contents("novy-clanek.html",$text) ;
        echo "Udaj uspesne pridany"; //vypise uspesnost
        } else {
        echo "Udaj nemohol byt pridany! Skuste to ešte raz."; //vypise neuspesnost
}}
?>

    //formular

    <form method="post">
        Nadpis: <input name="nadpis" type="text"><br>
        Text: <textarea name="text" cols="30" rows="3"></textarea><br>
        <input type="submit" value="Vložit" name="vloz">
    </form>
Tori
Profil
Béééda:
Jen dotaz: Proč ty články chcete ukládat duplicitně? Myslela bych, že je jednodušší v případě potřeby vytáhnout článek z db (a třeba nasypat do nějaké šablony), než při každé změně článku muset přepisovat soubor na aktuální verzi.
xmark
Profil
Myslím že Béééda nechce vůbec nic ukládat do souborů. Chce prostě přidávat články a pak je zobrazovat a neví, že se to přes soubory nedělá.
Béééda
Profil *
Tak xmark OK. Jak to tedy jde udělat jinak ? Rád si nechám poradit ...
smonkey
Profil
Béééda:
No, ukládáš články do Databáze ne?
Béééda
Profil *
Ano ukládám ... NO a co ? To mi vytvoří novej soubor ?
smonkey
Profil
Ne, to ti nevytvoří nový soubor, jen nechápu, na co ti ten "soubor" bude ...
Keeehi
Profil
Tak si je zase na potřebném místě vypíšeš. Nepotřebuješ k tomu žádný nový soubor.
xmark
Profil
Béééda:
Máš na zobrazování článků dva soubory. Jedním vypisuješ z databáze jejich seznam, kde je řekněme datum vložení, autor, nadpis a prvních 150 znaků a odkaz na další stránku. Na ní pak vytáhneš opět z databáze jen ten jeden konkrétní článek a vypíšeš ho celý. Vytváření souborů při využití databáze nedává smysl.
Béééda
Profil *
Taps:
Ten soubor funguje, ale je problém že mi to udělá novy-soubor.html a zapíše to tam jen ten text bez nadpisu ... jak bych moh udelat aby se misto toho novy-soubor.html vypsalo nazevclanku.html a aby tam byl i text i nadpis? ...Díky za odpověd
Béééda
Profil *
xmark:
OK tak tedy jinak jak tam dam ten odkaz, aby to presmerovalo presne na ten clanek na ktery uzivatel klikal ???
Keeehi
Profil
Příklad:
clanek.php?idclanku=45

Ve scriptu pak máš id článku v proměnné $_GET["idclanku"].
Béééda
Profil *
Aha ... Zkusim to ale potřebuji vědět jak bude jeste ten skript od Taps ...
xmark
Profil
Béééda:
Nejdřív si ujasni jestli soubor nebo databáze. Fungovat může obojí, to druhé je napoprvé mírně náročnější a ve všech ohledech lepší. Rozhodně nedoporučuju vytvářet nějaký hybrid, který bude napůl to a napůl to.

Navážu na Keeehiho:

V souboru clanek.php si podle $_GET["idclanku"] sáhneš do databáze a vytáhneš právě ten jeden článek.
Naposled jsem toto někomu psal včera: http://diskuse.jakpsatweb.cz/?action=vthread&forum=3&topic=119978&page=-1
xmark
Profil
Béééda:
potřebuji vědět jak bude jeste ten skript od Taps

To je přesně to, co nepotřebuješ. Taps ti odpověděl přesně na to, na co ses ptal. A ta otázka byla položená špatně.
Béééda
Profil *
OK takže výpis článků bude vypadat takto ?
<?php
include("pripojenie.php");

$sql = mysql_query("SELECT * FROM tabulka") or die(mysql_error());

while($vypis = mysql_fetch_array($sql))
{
echo "<h3>".$vypis["nadpis"]."</h3><br>"; //vypise nadpis
echo "".$vypis["text"]."<br>"; // vypise text

//Tu mate odkazy na upravenie alebo zmazanie udajov odkazy si uz mozte upravit podla seba
echo "<a href='uprav.php?udaj=".$vypis["id"]."'>Zmenit</a> | <a href='zmaz.php?zmazat=ok&amp;id=".$vypis["id"]."'>Zmazat</a>"| <a href='vypis.php?udaj=".$vypis["id"]."'>Článek</a>" ;
}
?>

?
xmark
Profil
Béééda:
Výpis seznamu článků principielně ano. Jen tam zřejmě nebudeš vypisovat jejich kompletní obsah, tzn. ř. 9 smaž.

Vypsání obsahu konkrétního článku uděláš stejně, jen do toho dotazu SELECT * FROM tabulka musíš přidat podmínku, která vytáhne ten jeden článek, tzn. "SELECT * FROM tabulka WHERE id=".$_GET["idclanku"].
Béééda
Profil *
nefachčí to a ted opravdu nevím čím to je .. :( Ten skript m8m takto :
<?php
include("pripojenie.php");

$sql = mysql_query("SELECT * FROM tabulka WHERE id=".$_GET["id"]) or die(mysql_error());

while($vypis = mysql_fetch_array($sql))
{
echo "<h3>".$vypis["nadpis"]."</h3><br>"; //vypise nadpis

//Tu mate odkazy na upravenie alebo zmazanie udajov odkazy si uz mozte upravit podla seba
echo "<a href='uprav.php?udaj=".$vypis["id"]."'>Zmenit</a> | <a href='zmaz.php?zmazat=ok&amp;id=".$vypis["id"]."'>Zmazat</a>" | <a href='vypis.php?udaj=".$vypis["id"]."'>Clanek</a>" ;
}
?>
Taps
Profil
Béééda:

$sql = mysql_query("SELECT * FROM tabulka where id=".intval($_GET["id"])) or die(mysql_error());
Béééda
Profil *
Mozná bude problém s tímto:
<a href='vypis.php?udaj=".$vypis["id"]."'>Clanek</a>" 
.. Ale opravdu nevím ... Ja sem to totiž okopíroval z tohoto
<a href='uprav.php?udaj=".$vypis["id"]."'>Zmenit</a>
a zde je to všechno v kliduu ... Nehází mi to sice žádné chybové hlášky, ale neotevře to prostě stánku ...
Béééda
Profil *
Taps:
Stejnak to nejde... :(
Béééda
Profil *
Tady je skript třeba toho uprav.php:
<?php
include("pripojenie.php");

if(isset($_POST['uprav'])) //ak bolo stlacene tlacitko uprav
{
        $nadpis = $_POST['nadpis'];
        $text = $_POST['text'];

        $sql ="UPDATE tabulka set nadpis='".$nadpis."', text='".$text."' WHERE id = '".$udaj."'"; //upravime udaje v db
        $vysledok=mysql_query($sql);
        if ($vysledok) {
        echo "Udaj uspesne upraveny"; //vypise uspesnost
        } else {
        echo "Udaj nemohol byt upraveny! Skuste to ešte raz."; //vypise neuspesnost
}}

        $sql = mysql_query("SELECT * FROM tabulka where id= '".$udaj."'"); //vytiahneme udaje z db
        $vypis = mysql_fetch_row($sql);

        echo '<form method="post">';
        echo 'Nadpis: <input name="nadpis" type="text" value="'.$vypis[1].'"><br>'; //vypiseme nadpis
        echo 'Text: <textarea name="text" cols="30" rows="3">'.$vypis[2].'</textarea><br>'; //vypiseme text
        echo '<input type="submit" value="Upravit" name="uprav">';
        echo '</form>';
?> 
Taps
Profil
Béééda:
<?php
include("pripojenie.php");

if(isset($_POST['uprav'])) //ak bolo stlacene tlacitko uprav
{
        $nadpis = $_POST['nadpis'];
        $text = $_POST['text'];
        $udaj=$_POST['idecko'];

        $sql ="UPDATE tabulka set nadpis='$nadpis', text='$text' WHERE id = '$udaj'"; //upravime udaje v db
        $vysledok=mysql_query($sql);
        if ($vysledok) {
        echo "Udaj uspesne upraveny"; //vypise uspesnost
        } else {
        echo "Udaj nemohol byt upraveny! Skuste to ešte raz."; //vypise neuspesnost
}}

        $sql = mysql_query("SELECT * FROM tabulka where id= '$udaj'"); //vytiahneme udaje z db
        $vypis = mysql_fetch_array($sql);

        echo '<form method="post">';
        echo '<input type="hidden" name="idecko" value="'.$vypis['id'].'">'; // sem musíš dostat hodnotu id
        echo 'Nadpis: <input name="nadpis" type="text" value="'.$vypis[1].'"><br>'; //vypiseme nadpis
        echo 'Text: <textarea name="text" cols="30" rows="3">'.$vypis[2].'</textarea><br>'; //vypiseme text
        echo '<input type="submit" value="Upravit" name="uprav">';
        echo '</form>';
?> 
xmark
Profil
Béééda:
Doporučil bych začít tím, že si uděláš ten výpis. Editaci vyřešíší potom. Přejmenuj si "tabulka" na "clanky", nastrkej si tam 4 "články" a rozpohybuj výpis článkú (1. soubor) a vypsání jednoho konkrétního článku (2. soubor).
Béééda
Profil *
xmark:
A nemoh bys mi poradit s tím co mám nahoře ?
 $sql = mysql_query("SELECT * FROM tabulka where id= '$udaj'"); //vytiahneme udaje z db
        $vypis = mysql_fetch_array($sql);
Tenhle rádek mi připadá nějakej divnej ... Prosím pomoc mi ...
Taps
Profil
Béééda:
ten řádek je správně
zkus si vypsat mysql error u sql dotazů
 $vysledok=mysql_query($sql) or die (mysql_error());

a do formu přidej
echo '<form method="post" action="#">';
Béééda
Profil *
Nic ... žádná chybová hláška ... Hele Taps ten tvuj skript sel dobre jak udelam ze misto novy-clanek.html to bude nazevclanku.html ... ? Nebo pls porad mi s tím skriptem ...
Taps
Profil
Béééda:
  
$obsah=$nadpis.'<br>'.$text;
file_put_contents($nadpis.'.html',$obsah) ;
Béééda
Profil *
Dík ... hele hrábnu se v tom a kdyžtak napíšu ... Ale jinak dík moc ...

Vaše odpověď

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: