Forum graficzne Burning-Brushes.pl

System artykułów

Abik

  • VIP
  • *****
    • Amerykański plastik
      • Zobacz profil
    W tym tutorialu opiszę jak zrobić system artykułów z ocenianiem, kategoriami i komentarzami.

    Tradycyjnie zaczniemy od stworzenia tabeli – będą to articles, articles_categories i articles_comments.

    CREATE TABLE `articles` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `id_cat` int(11) NOT NULL,
      `tytul` text NOT NULL,
      `tresc` text NOT NULL,
      `opis` text NOT NULL,
      `data` int(11) NOT NULL,
      `suma` int(11) NOT NULL,
      `ocen` int(11) NOT NULL,
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM ;
     
    CREATE TABLE `articles_categories` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `tytul` text NOT NULL,
      `opis` text NOT NULL,
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM ;
     
    CREATE TABLE `articles_comments` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `id_art` int(11) NOT NULL,
      `nick` text NOT NULL,
      `tresc` text NOT NULL,
      `data` int(11) NOT NULL,
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM ;

    Jak już stworzyliśmy tabelki to możemy przystąpić do pisania… ;) Wszystko jest wytłumaczone w kodzie w komentarzach więc nie powinno być problemu :)
    index.php

    <?php
     
    // rozpoczęcie buforowania (jest to potrzebne by nie mieć błędów typu headers already sent)
    ob_start();
     
    // połączenie z mysql
    mysql_connect('localhost''root''')
        or die(
    'Nieudane polaczenie z baza danych...');
     
    // wybór bazy danych
    mysql_select_db('test')
        or die(
    'Nie udalo sie wybrac bazy danych...');
     
    // nagłówek
    echo '<h2>Kategorie artykułów</h2>';
     
    // tworzymy zapytanie na wszystkie kategorie
    $result mysql_query("SELECT * FROM articles_categories ORDER BY id ASC");
    // i je wyświetlamy
    while($row mysql_fetch_array($result))
    {
        echo 
    '<a href="cat.php?id='.$row['id'].'"><b>'.stripslashes($row['tytul']).'</b></a><br />';
        echo 
    stripslashes($row['opis']).'<br /><br />';
    }
     
    // rozłączenie z bazą danych
    mysql_close();
     
    // koniec buforowania
    ob_end_flush();
     
    ?>


    cat.php

    <?php
     
    // rozpoczęcie buforowania (jest to potrzebne by nie mieć błędów typu headers already sent)
    ob_start();
     
    // połączenie z mysql
    mysql_connect('localhost''root''')
        or die(
    'Nieudane polaczenie z baza danych...');
     
    // wybór bazy danych
    mysql_select_db('test')
        or die(
    'Nie udalo sie wybrac bazy danych...');
     
    // przerabiamy dane z GETa na liczbę (zabezpieczenie)
    $id = (int)$_GET['id'];
     
    // tworzymy zapytanie na kategorię, żeby wydobyć z niej nazwę
    $result mysql_query("SELECT * FROM articles_categories WHERE id='$id'");
    // przerabiamy na tablicę
    $row mysql_fetch_array($result);
     
    // i wyświetlamy nagłówek
    echo '<h2>'.stripslashes($row['tytul']).'</h2>';
     
    // tworzymy zapytanie na artykuły z tej kategorii
    $result mysql_query("SELECT * FROM articles WHERE id_cat='$id' ORDER BY tytul ASC");
    // i je wyświetlamy
    while($row mysql_fetch_array($result))
    {
        echo 
    '<a href="art.php?id='.$row['id'].'"><b>'.stripslashes($row['tytul']).'</b></a> ('.date("d.m.Y, H:i"$row['data']).')<br />';
        echo 
    stripslashes($row['opis']).'<br /><br />';
    }
     
    // rozłączenie z bazą danych
    mysql_close();
     
    // koniec buforowania
    ob_end_flush();
     
    ?>


    art.php

    <?php
     
    // rozpoczęcie buforowania (jest to potrzebne by nie mieć błędów typu headers already sent)
    ob_start();
     
    // połączenie z mysql
    mysql_connect('localhost''root''')
        or die(
    'Nieudane polaczenie z baza danych...');
     
    // wybór bazy danych
    mysql_select_db('test')
        or die(
    'Nie udalo sie wybrac bazy danych...');
     
    // przerabiamy dane z GETa na liczbę (zabezpieczenie)
    $id = (int)$_GET['id'];
     
    // jeśli zostanie naciśnięty przycisk "Dodaj"
    if(isset($_POST['ok']))
    {
        
    // filtrujemy dane
        
    $nick trim(strip_tagsmysql_real_escape_string(HTMLSpecialChars($_POST['nick']))));
        
    $tresc trim(strip_tagsmysql_real_escape_string(HTMLSpecialChars($_POST['tresc']))));
        
    // pobieramy datę
        
    $data time();
     
        
    // sprawdzamy czy zostały podane wszystkie dane
        
    if(empty($nick) || empty($tresc)) $komunikat 'Wpisz wszystkie pola!';
        else
        {
            
    // tworzymy zapytanie
            
    $query "INSERT INTO `articles_comments` (`id_art`, `nick`, `tresc`, `data`) VALUES ('$id', '$nick', '$tresc', '$data')";
     
            
    // jeśli zapytanie zostanie poprawnie wykonane to wyświetlamy komunikat
            
    if(mysql_query($query)) $komunikat 'Pomyslnie dodano komentarz!';
        }
    }
     
    // jeśli zostanie naciśnięty przycisk "Oceń"
    if(isset($_POST['ocenaok']))
    {
        
    // zapisujemy ocenę do zmiennej jako liczbę
        
    $ocena = (int)$_POST['ocena'];
     
        
    // sprawdzamy czy artykuł był już oceniany przez tą osobę
        
    if(isset($_COOKIE['ocena'.$id])) $komunikat 'Już oceniałes ten artykuł!';
        else
        {
            
    // wysyłamy ciasteczko informujące o ocenieniu
            
    setcookie('ocena'.$id'oceniono',time()+2592000);
     
            
    // tworzymy zapytanie
            
    $query "UPDATE articles SET suma=suma+$ocena, ocen=ocen+1 WHERE id=$id";
     
            
    // jeśli zapytanie zostanie poprawnie wykonane to wyświetlamy komunikat
            
    if(mysql_query($query)) $komunikat 'Pomyslnie oceniono artykuł!';
        }
    }
     
    // tworzymy zapytanie na artykuł
    $result mysql_query("SELECT * FROM articles WHERE id='$id'");
    // przerabiamy na tablicę
    $row mysql_fetch_array($result);
     
    // wyświetlamy nagłówek
    echo '<h2>'.stripslashes($row['tytul']).'</h2>';
    // i tresc artykułu
    echo '<p>'.stripslashes($row['tresc']).'</p>';
     
    // wyświetlenie komunikatów
    echo $komunikat;
     
    // wyświetlanie oceny
    echo '<h3>Ocena: ';
    // jeśli nie było jeszcze żadnej oceny to wyświetla 0, w przeciwnym wypadku zaokrąglamy do 2 miejsc po przecinku dzielenie sumy/ilość ocen
    echo ($row['ocen']==0) ? round(($row['suma']/$row['ocen']),2);
    echo 
    '</h3>';
     
    // formularz do oceniania
    echo 'Oceń ten artykuł:';
    echo 
    '<form action="" method="POST">
        <input type="radio" name="ocena" value="1">1
        <input type="radio" name="ocena" value="2">2
        <input type="radio" name="ocena" value="3">3
        <input type="radio" name="ocena" value="4">4
        <input type="radio" name="ocena" value="5">5
        <input type="radio" name="ocena" value="6">6
        <input type="submit" name="ocenaok" value="Oceń">
        </form>'
    ;
     
    // nagłówek dla komentarzy
    echo '<h3>Komentarze</h3>';
     
    // tworzymy zapytanie na komentarze
    $result mysql_query("SELECT * FROM articles_comments WHERE id_art='$id' ORDER BY id DESC");
    // jeśli są jakieś komentarze
    if(mysql_num_rows($result)>0)
    {
        
    // to je wyświetlamy
        
    while($row mysql_fetch_array($result))
        {
            echo 
    '<b>'.stripslashes($row['nick']).'</b> ('.date("d.m.Y, H:i"$row['data']).')<br />';
            
    // przy treści zamieniamy znaki nowej lini \n \rn \r na <br />
            
    echo str_replace(array("\r\n""\r""\n"), "<br />"stripslashes($row['tresc'])).'<br /><br />';
        }
    }
    else echo 
    'Narazie brak komentarzy. Twój może być pierwszy!';
     
    // nagłówek dodawania komentarzy
    echo '<h3>Dodaj komentarz</h3>';
    // wyświetlamy prosty formularz
    echo '<form action="" method="POST">
        Nick: <br />
        <input type="text" name="nick" style="width:400px;"><br />
        Tresc: <br />
        <textarea name="tresc" style="width:400px;height:200px;"></textarea><br />
        <input type="submit" name="ok" value="Dodaj">
        </form>'
    ;
     
    // rozłączenie z bazą danych
    mysql_close();
     
    // koniec buforowania
    ob_end_flush();
     
    ?>


    I największy plik: admin.php

    <?php
     
    // rozpoczęcie buforowania (jest to potrzebne by nie mieć błędów typu headers already sent)
    ob_start();
     
    // start sesji
    session_start();
     
    // połączenie z mysql
    mysql_connect('localhost''root''')
        or die(
    'Nieudane polaczenie z baza danych...');
     
    // wybór bazy danych
    mysql_select_db('test')
        or die(
    'Nie udalo sie wybrac bazy danych...');
     
    // definiujemy hasło admina    
    $adminpass 'haslo';
     
    // nagłówek
    echo '<a href="admin.php"><h2>Panel admina</h2></a>';
     
    // jeśli zostanie naciśnięty przycisk "Zaloguj"
    if(isset($_POST['logowanie']))
    {
        
    // sprawdzamy poprawność hasła
        
    if($_POST['pass']==$adminpass$_SESSION['admin'] = true;
        else 
    $komunikat 'Hasło niepoprawne!';
    }
     
    // jeśli nie jesteśmy zalogowani na admina to wyświetlamy formularz
    if(!$_SESSION['admin'])
    {
        echo 
    'Niestety nie jestes zalogowany!<br />
        <form action="admin.php" method="POST">
        Hasło: <br />
        <input type="password" name="pass"><br />
        <input type="submit" name="logowanie" value="Zaloguj">
        </form>'
    ;
        echo 
    $komunikat// jeśli będzie błąd hasła to wyświetli komunikat
    }
    else
    {
        
    // przy odpowieniej stronie wyświetlamy daną funkcję
        
    switch($_GET['page'])
        {
            
    // dodawanie artykułu
            
    case 'artykuly_dodaj':
                
    artykuly_dodaj();
            break;
     
            
    // edycja artykułu
            
    case 'artykuly_edytuj':
                
    artykuly_edytuj($_GET['id']);
            break;
     
            
    // usuwanie artykułu
            
    case 'artykuly_usun':
                
    artykuly_usun($_GET['id']);
            break;
     
            
    // wyświetlenie komentarzy
            
    case 'komentarze':
                
    komentarze($_GET['id']);
            break;
     
            
    // edycja komentarza
            
    case 'komentarze_edytuj':
                
    komentarze_edytuj($_GET['id']);
            break;
     
            
    // usuwanie komentarza
            
    case 'komentarze_usun':
                
    komentarze_usun($_GET['id']);
            break;
     
            
    // wyświetlenie kategorii
            
    case 'kategorie':
                
    kategorie();
            break;
     
            
    // dodawanie kategorii
            
    case 'kategorie_dodaj':
                
    kategorie_dodaj();
            break;
     
            
    // edycja kategorii
            
    case 'kategorie_edytuj':
                
    kategorie_edytuj($_GET['id']);
            break;
     
            
    // usuwanie kategorii
            
    case 'kategorie_usun':
                
    kategorie_usun($_GET['id']);
            break;
     
            
    // i domyślnie wyświetlamy liste artykułów
            
    default:
                
    artykuly();
        }
    }
     
    // LISTA ARTYKUŁÓW
    function artykuly()
    {
        
    // wyświetlamy napis
        
    echo '<b>Lista artykułów</b>';
        
    // wyświetlamy początek tabeli
        
    echo '<table border="1" style="width: 600px;">
            <tr>
                <th style="width:30px;">Lp.</th>
                <th>Tytul</th>
                <th>Data</th>
                <th>Kategoria</th>
                <th style="width:80px;">Akcje</th>
            </tr>'
    ;
     
        
    // tworzymy zapytanie na wszystkie kategorie
        
    $result mysql_query("SELECT * FROM articles_categories ORDER BY id ASC");
        
    // i zapisujemy je do tablicy $kategorie
        
    while($row mysql_fetch_array($result))
            
    $kategorie[$row['id']] = stripslashes($row['tytul']);
     
        
    // tworzymy zapytanie na wszystkie artykuły
        
    $result mysql_query("SELECT * FROM articles ORDER BY id ASC");
        
    // i je wyświetlamy
        
    while($row mysql_fetch_array($result))
        {
            echo 
    '<tr><td>'.$row['id'].'</td><td>'.stripslashes($row['tytul']).'</td><td>'.date("d.m.Y, H:i"$row['data']).'</td><td>'.$kategorie[$row['id_cat']].'</td><td><a href="admin.php?page=artykuly_edytuj&id='.$row['id'].'">[E]</a> <a href="admin.php?page=artykuly_usun&id='.$row['id'].'">[U]</a> <a href="admin.php?page=komentarze&id='.$row['id'].'">[K]</a></td></tr>';
        }
        
    // wyświetlamy koniec tabeli
        
    echo '</table>';
     
        
    // wyświetlamy linki
        
    echo '<a href="admin.php?page=artykuly_dodaj">Dodaj nowy artykuł</a><br />';
        echo 
    '<a href="admin.php?page=kategorie">Zarzadzaj kategoriami</a>';
    }
     
    // DODAWANIE ARTYKUŁU
    function artykuly_dodaj()
    {
        
    // jeśli zostanie naciśnięty przycisk "Dodaj"
        
    if(isset($_POST['ok']))
        {
            
    // filtrujemy dane aby zapytanie do mysql nam się nie psuło, tj. zamieniamy ` na \`
            
    $tytul mysql_real_escape_string($_POST['tytul']);
            
    $opis mysql_real_escape_string($_POST['opis']);
            
    $tresc mysql_real_escape_string($_POST['tresc']);
            
    // pobieramy id kategorii
            
    $kategoria $_POST['kategoria'];
            
    // pobieramy date
            
    $data time();
     
            
    // tworzymy zapytanie
            
    $query "INSERT INTO `articles` (`tytul`, `opis`, `tresc`, `id_cat`, `data`, `suma`, `ocen`) VALUES ('$tytul', '$opis', '$tresc', '$kategoria', '$data', '0', '0')";
     
            
    // jeśli zapytanie zostanie poprawnie wykonane to wyświetlamy komunikat
            
    if(mysql_query($query)) echo 'Pomyslnie dodano artykul! <a href="admin.php">wróć</a>';
            return 
    1// zapobiegamy wyświetlania się formularza
        
    }
        
    // wyświetlamy napis
        
    echo '<b>Dodaj nowy artykuł</b>';
        
    // wyświetlamy prosty formularz
        
    echo '<form action="" method="POST">
        Tytuł: <br />
        <input type="text" name="tytul" style="width:400px;"><br />
        Opis: <br />
        <input type="text" name="opis" style="width:400px;"><br />
        Kategoria: <br />
        <select name="kategoria">'
    ;
        
    // wykonanie zapytania na kategorie artykułów i wyświetlenie ich w rozwijanym menu
        
    $result mysql_query("SELECT * FROM articles_categories");
        while(
    $row mysql_fetch_array($result))
        {
            echo 
    '<option value="'.$row['id'].'">'.stripslashes($row['tytul']).'</option>';
        }
        echo 
    '</select><br />
        Tresć: <br />
        <textarea name="tresc" style="width:400px;height:200px;"></textarea><br />
        <input type="submit" name="ok" value="Dodaj">
        </form>'
    ;
    }
     
    // EDYCJA ARTYKUŁU
    function artykuly_edytuj($id)
    {
        
    // jeśli zostanie naciśnięty przycisk "Edytuj"
        
    if(isset($_POST['ok']))
        {
            
    // filtrujemy dane aby zapytanie do mysql nam się nie psuło, tj. zamieniamy ` na \`
            
    $tytul mysql_real_escape_string($_POST['tytul']);
            
    $opis mysql_real_escape_string($_POST['opis']);
            
    $tresc mysql_real_escape_string($_POST['tresc']);
            
    // pobieramy id kategorii
            
    $kategoria $_POST['kategoria'];
     
            
    // tworzymy zapytanie
            
    $query "UPDATE `articles` SET tytul='$tytul', opis='$opis', tresc='$tresc', id_cat='$kategoria' WHERE id='$id'";
     
            
    // jeśli zapytanie zostanie poprawnie wykonane to wyświetlamy komunikat
            
    if(mysql_query($query)) echo 'Pomyslnie wyedytowano artykuł! <a href="admin.php">wróć</a>';
            return 
    1// zapobiegamy wyświetlania się formularza
        
    }
        
    // wyświetlamy napis
        
    echo '<b>Edytuj artykuł</b>';
     
        
    // pobieramy dane z artykułu który będziemy edytować
        
    $result mysql_query("SELECT * FROM articles WHERE id='$id'");
     
        
    // tutaj nie ma while ponieważ jest pobierany tylko jeden rekord
        
    $row mysql_fetch_array($result); 
     
        
    // wyświetlamy prosty formularz z wypełnionymi danymi
        
    echo '<form action="" method="POST">
        Tytuł: <br />
        <input type="text" name="tytul" style="width:400px;" value="'
    .stripslashes($row['tytul']).'"><br />
        Opis: <br />
        <input type="text" name="opis" style="width:400px;" value="'
    .stripslashes($row['opis']).'"><br />
        Kategoria: <br />
        <select name="kategoria">'
    ;
        
    // wykonanie zapytania na kategorie artykułów i wyświetlenie ich w rozwijanym menu
        
    $result2 mysql_query("SELECT * FROM articles_categories");
        while(
    $row2 mysql_fetch_array($result2))
        {
            echo 
    '<option value="'.$row2['id'].'"';
            
    // zaznacza aktualna kategorie artykulu
            
    if($row2['id']==$row['id_cat']) echo ' selected';
            echo 
    '>'.stripslashes($row2['tytul']).'</option>';
        }
        echo 
    '</select><br />
        Tresć: <br />
        <textarea name="tresc" style="width:400px;height:200px;">'
    .stripslashes($row['tresc']).'</textarea><br />
        <input type="submit" name="ok" value="Edytuj">
        </form>'
    ;
    }
     
    // USUWANIE ARTYKUŁU
    function artykuly_usun($id)
    {
        
    // usuwanie artykulu
        
    $query "DELETE FROM articles WHERE id = '$id'";
        
    // usuwanie komentarzy
        
    $query2 "DELETE FROM articles_comments WHERE id_art = '$id'";
     
        
    // jeśli zapytania zostaną poprawnie wykonane to wyświetlamy komunikat
        
    if(mysql_query($query) && mysql_query($query2)) echo 'Pomyslnie usunięto newsa! <a href="admin.php">wróć</a>';
    }
     
    // KATEGORIE
    function kategorie()
    {
        
    // wyświetlamy napis
        
    echo '<b>Lista kategorii artykułów</b>';
        
    // wyświetlamy początek tabeli
        
    echo '<table border="1" style="width: 600px;">
            <tr>
                <th style="width:30px;">Lp.</th>
                <th>Tytul</th>
                <th style="width:60px;">Akcje</th>
            </tr>'
    ;
     
        
    // tworzymy zapytanie na wszystkie kategorie
        
    $result mysql_query("SELECT * FROM articles_categories ORDER BY id ASC");
        
    // i je wyświetlamy
        
    while($row mysql_fetch_array($result))
        {
            echo 
    '<tr><td>'.$row['id'].'</td><td>'.stripslashes($row['tytul']).'</td><td><a href="admin.php?page=kategorie_edytuj&id='.$row['id'].'">[E]</a> <a href="admin.php?page=kategorie_usun&id='.$row['id'].'">[U]</a></td></tr>';
        }
        
    // wyświetlamy koniec tabeli
        
    echo '</table>';
     
        
    // wyświetlamy linki
        
    echo '<a href="admin.php?page=kategorie_dodaj">Dodaj nowa kategorie</a>';
    }
     
    // DODAWANIE KATEGORII
    function kategorie_dodaj()
    {
        
    // jeśli zostanie naciśnięty przycisk "Dodaj"
        
    if(isset($_POST['ok']))
        {
            
    // filtrujemy dane aby zapytanie do mysql nam się nie psuło, tj. zamieniamy ` na \`
            
    $tytul mysql_real_escape_string($_POST['tytul']);
            
    $opis mysql_real_escape_string($_POST['opis']);
     
            
    // tworzymy zapytanie
            
    $query "INSERT INTO `articles_categories` (`tytul`, `opis`) VALUES ('$tytul', '$opis')";
     
            
    // jeśli zapytanie zostanie poprawnie wykonane to wyświetlamy komunikat
            
    if(mysql_query($query)) echo 'Pomyslnie dodano kategorie! <a href="admin.php?page=kategorie">wróć</a>';
            return 
    1// zapobiegamy wyświetlania się formularza
        
    }
        
    // wyświetlamy napis
        
    echo '<b>Dodaj nowa kategorie</b>';
        
    // wyświetlamy prosty formularz
        
    echo '<form action="" method="POST">
        Tytuł: <br />
        <input type="text" name="tytul" style="width:400px;"><br />
        Opis: <br />
        <textarea name="opis" style="width:400px;height:200px;"></textarea><br />
        <input type="submit" name="ok" value="Dodaj">
        </form>'
    ;
    }
     
    // EDYCJA KATEGORII
    function kategorie_edytuj($id)
    {
        
    // jeśli zostanie naciśnięty przycisk "Edytuj"
        
    if(isset($_POST['ok']))
        {
            
    // filtrujemy dane aby zapytanie do mysql nam się nie psuło, tj. zamieniamy ` na \`
            
    $tytul mysql_real_escape_string($_POST['tytul']);
            
    $opis mysql_real_escape_string($_POST['opis']);
     
            
    // tworzymy zapytanie
            
    $query "UPDATE `articles_categories` SET tytul='$tytul', opis='$opis' WHERE id='$id'";
     
            
    // jeśli zapytanie zostanie poprawnie wykonane to wyświetlamy komunikat
            
    if(mysql_query($query)) echo 'Pomyslnie wyedytowano kategorie! <a href="admin.php?page=kategorie">wróć</a>';
            return 
    1// zapobiegamy wyświetlania się formularza
        
    }
        
    // wyświetlamy napis
        
    echo '<b>Edytuj kategorie</b>';
     
        
    // pobieramy dane z kategorii który będziemy edytować
        
    $result mysql_query("SELECT * FROM articles_categories WHERE id='$id'");
     
        
    // tutaj nie ma while ponieważ jest pobierany tylko jeden rekord
        
    $row mysql_fetch_array($result); 
     
        
    // wyświetlamy prosty formularz z wypełnionymi danymi
        
    echo '<form action="" method="POST">
        Tytuł: <br />
        <input type="text" name="tytul" style="width:400px;" value="'
    .stripslashes($row['tytul']).'"><br />
        Opis: <br />
        <textarea name="opis" style="width:400px;height:200px;">'
    .stripslashes($row['opis']).'</textarea><br />
        <input type="submit" name="ok" value="Edytuj">
        </form>'
    ;
    }
     
    // USUWANIE KATEGORII
    function kategorie_usun($id)
    {
        
    // pobieramy id artykułów należących do tej kategorii
        
    $result mysql_query("SELECT id FROM articles WHERE id_cat='$id'");
        
    // i dodajemy te id do tablicy
        
    while($row mysql_fetch_array($result))
            
    $artykuly[] = $row['id'];
     
        
    // jeśli znaleziono artykuły
        
    if(count($artykuly)>0)
        {
            
    // dodajemy ', ' między każdym id
            
    $artykuly implode("', '"$artykuly);
            
    // usuwamy komentarze należące do tych artykułów
            
    $result2 mysql_query("DELETE FROM articles_comments WHERE id_art IN('$artykuly')");
        }
        
    // usuwanie artykułów należących do tej kategorii
        
    $query "DELETE FROM articles WHERE id_cat='$id'";
        
    // i usuwanie kategorii
        
    $query2 "DELETE FROM articles_categories WHERE id='$id'";
     
        
    // jeśli zapytania zostaną poprawnie wykonane to wyświetlamy komunikat
        
    if(mysql_query($query) && mysql_query($query2)) echo 'Pomyslnie usunięto kategorie! <a href="admin.php">wróć</a>';
    }
     
    // KOMENTARZE
    function komentarze($id)
    {
        
    // wyświetlamy napis
        
    echo '<b>Lista komentarzy</b>';
        
    // wyświetlamy początek tabeli
        
    echo '<table border="1" style="width: 600px;">
            <tr>
                <th style="width:30px;">Lp.</th>
                <th>Nick</th>
                <th>Data</th>
                <th style="width:80px;">Akcje</th>
            </tr>'
    ;
     
        
    // tworzymy zapytanie na komentarze
        
    $result mysql_query("SELECT * FROM articles_comments WHERE id_art='$id' ORDER BY id ASC");
        
    // i je wyświetlamy
        
    while($row mysql_fetch_array($result))
        {
            echo 
    '<tr><td>'.$row['id'].'</td><td>'.stripslashes($row['nick']).'</td><td>'.date("d.m.Y, H:i"$row['data']).'</td><td><a href="admin.php?page=komentarze_edytuj&id='.$row['id'].'">[E]</a> <a href="admin.php?page=komentarze_usun&id='.$row['id'].'">[U]</a></td></tr>';
        }
        
    // wyświetlamy koniec tabeli
        
    echo '</table>';
    }
     
    // EDYCJA KOMENTARZA
    function komentarze_edytuj($id)
    {
        
    // jeśli zostanie naciśnięty przycisk "Edytuj"
        
    if(isset($_POST['ok']))
        {
            
    // filtrujemy dane
            
    $nick trim(strip_tagsmysql_real_escape_string(HTMLSpecialChars($_POST['nick']))));
            
    $tresc trim(strip_tagsmysql_real_escape_string(HTMLSpecialChars($_POST['tresc']))));
     
            
    // tworzymy zapytanie
            
    $query "UPDATE `articles_comments` SET nick='$nick', tresc='$tresc' WHERE id='$id'";
     
            
    // jeśli zapytanie zostanie poprawnie wykonane to wyświetlamy komunikat
            
    if(mysql_query($query)) echo 'Pomyslnie wyedytowano komentarz! <a href="javascript:history.go(-2)">wróć</a>';
            return 
    1// zapobiegamy wyświetlania się formularza
        
    }
        
    // wyświetlamy napis
        
    echo '<b>Edytuj komentarz</b>';
     
        
    // pobieramy dane komentarza który będziemy edytować
        
    $result mysql_query("SELECT * FROM articles_comments WHERE id='$id'");
     
        
    // tutaj nie ma while ponieważ jest pobierany tylko jeden rekord
        
    $row mysql_fetch_array($result); 
     
        
    // wyświetlamy prosty formularz z wypełnionymi danymi
        
    echo '<form action="" method="POST">
        Nick: <br />
        <input type="text" name="nick" style="width:400px;" value="'
    .stripslashes($row['nick']).'"><br />
        Tresc: <br />
        <textarea name="tresc" style="width:400px;height:200px;">'
    .stripslashes($row['tresc']).'</textarea><br />
        <input type="submit" name="ok" value="Edytuj">
        </form>'
    ;
    }
     
    // USUWANIE KOMENTARZA
    function komentarze_usun($id)
    {
        
    // tworzenie zapytania
        
    $query "DELETE FROM articles_comments WHERE id='$id'";
     
        
    // jeśli zapytanie zostanie poprawnie wykonane to wyświetlamy komunikat
        
    if(mysql_query($query)) echo 'Pomyslnie usunięto komentarz! <a href="javascript:history.go(-1)">wróć</a>';
    }
     
     
    // rozłączenie z bazą danych
    mysql_close();
     
    // koniec buforowania
    ob_end_flush();
     
    ?>


    Całość można pobrać tutaj. Enjoy ;)

    _____________________________________

    Autor poradnika: Fafu http://rafal-brzezinski.pl/


    Sympatyk

    • VIP
    • *****
      • Master of science
        • Zobacz profil
        • Moje
      pomysł z powielaniem kody z połączeniem się z SQL nie podoba mi się, lepiej już includować :)