Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Dodanie komentarzy do artykułu
Forum PHP.pl > Forum > Przedszkole
dave666
Witam mam takie pytanie czy ktoś mógłby mi pomoc połączyć dwa skrypty w jeden a mianowicie opcje dodawania komentarzy do artykułów bo nie bardzo wiem jak to zrobić po połączeniu normalnie dodaje do bazy komentarz ale pokazuje to samo pod kazdym artykułem a nie przy kazdym inny taki jak jest napisany

  1. <?php
  2. if (!empty($zoom))
  3. {
  4.    if(isset($_SESSION['oki']))
  5.    {
  6.        $pytam = "SELECT *, DATE_FORMAT(DataU, '%d.%m.%Y') as DU FROM ".$prefix."_smod_news WHERE LNG = '".$lngp."' AND Aktywne in (1,2) AND Id =".$zoom;
  7.    }
  8.    else
  9.    {
  10.        $pytam = "SELECT *, DATE_FORMAT(DataU, '%d.%m.%Y') as DU FROM ".$prefix."_smod_news WHERE LNG = '".$lngp."' AND Aktywne in (1,3) AND Id =".$zoom;
  11.    }
  12.    $wynik = mysql_query($pytam);
  13.    $ile = mysql_num_rows($wynik);
  14.    
  15.    if ($ile > 0)
  16.    {
  17.        while($wiersz = mysql_fetch_array($wynik))
  18.        {
  19.            $nid = $wiersz["Id"];
  20.            $ntytul = $wiersz["Tytul"];
  21.            $nlid = $wiersz["Lid"];
  22.            $ntresc = $wiersz["Tresc"];
  23.            $naktywne = $wiersz["Aktywne"];
  24.            $ndu = $wiersz["DU"];
  25.  
  26.            $ntresc = $ntresc == '<p></p>' ? '' : $ntresc; //fck wstawia do textarea paragraf sam z siebie i nie da sie go przekonac, zeby nie wstawial, wiec wywalamy
  27.            empty($ntresc) ? $ntresc = $nlid : $ntresc = $ntresc;
  28.  
  29.            echo "\n" . '<h1><p align="left">'.$ntytul.'</h1>  <h4><p align="right">'.$ndu.'</p></h4>';
  30.            
  31.            echo "\n" . $ntresc;
  32.  
  33.            $wdp = mysql_query("SELECT Druk, PDF FROM ".$prefix."_smod_strony WHERE System = 4 and LNG = '".$lngp."' and Aktywne = 1");
  34.            while($ww = mysql_fetch_array($wdp))
  35.            {
  36.                $druk = $ww["Druk"];
  37.                $pdf = $ww["PDF"];
  38.            }
  39.  
  40.            echo "\n" . '<div id="print">';
  41.            if($druk == 1)
  42.            {
  43.                echo "\n" . '<a href=".$urlserwisu.'/druk.php?nid='.$nid." target="_blank"><img src="http://'.$urlserwisu.'/layout/'.$layout.'/images/druk.gif" alt="';
  44.                txt(122,$ln);
  45.                echo '" title="';
  46.                txt(122,$ln);
  47.                echo '" width="20" height="25" /></a>';
  48.            }
  49.  
  50.            if($pdf == 1)
  51.            {
  52.                echo "\n" . '<a href=".$urlserwisu.'/pdf.php?nid='.$nid." target="_blank"><img src="http://'.$urlserwisu.'/layout/'.$layout.'/images/pdf.gif" alt="';
  53.                txt(123,$ln);
  54.                echo '" title="';
  55.                txt(123,$ln);
  56.                echo '" width="20" height="25" /></a>';
  57.            }
  58.            echo "\n" . '</div>';
  59.  
  60.            if($rewrite == 1 || $rewrite == 2)
  61.            {
  62.                $tmtitle = title(4, $prefix.'_smod_strony');
  63.                $tmtitle = empty($tmtitle) ? $nazwaserwisu : $nazwaserwisu . ' - ' . $tmtitle;
  64.                //czyscimy title zeby mogl byc linkiem
  65.                $tmtitlerw = smodrewrite($tmtitle);
  66.                echo "\n" . '<a href=".$urlserwisu.urldocument($tmtitlerw, 4, 0).">';
  67.            }
  68.            else
  69.            {
  70.                echo "\n" . '<a href=".$urlserwisu.'/index.php?id=4">';
  71.            }
  72.            txt(9,$ln);//&laquo; inne aktualności
  73.            echo '</a>';
  74.            echo '<br>';
  75.            
  76.              //komentarze
  77.        
  78. //koniec komentarzy
  79.            
  80.        }
  81.    }
  82. }
  83. else
  84. {
  85. ?>


a to ta funkcja komentarzy
  1. <?php
  2.  
  3. if(intval($_GET['newsid']))
  4. {
  5.  $sql="SELECT  DATE_FORMAT(dodano, '%e-%m-%Y %H:%i') AS utworzono, autor, tresc FROM  newsy WHERE id=".intval($_GET['newsid'])."'";
  6.  $query=mysql_query($sql);
  7.  if($result=mysql_fetch_assoc($query))
  8.  {
  9.    echo '<p>'.nl2br($result['tresc']).'</p>';
  10.    echo '<p><i>'.$result['autor'].' ('.$result['utworzono'].')</i></p>';
  11.    echo '<hr>Komentarze:<br>';
  12.    if($_POST)
  13.    {
  14.      if((trim($_POST['autor'])) && (trim($_POST['tekst'])))
  15.      {
  16.        if(mysql_query("INSERT INTO komentarze VALUES('', '".intval($_GET['newsid'])."',
  17.                        NOW(), '".trim(htmlspecialchars($_POST['autor']))."', '".trim(htmlspecialchars($_POST['tekst']))."')"))
  18.          echo 'Dodałem komentarz';
  19.        else echo 'Nie mogłem dodać komentarza';
  20.      }
  21.      else echo 'Nie dopisałem komentarza - podaj swoje imię i wpisz jakiś komentarz!';
  22.      echo '<br>';
  23.    }
  24.    $sql="SELECT  DATE_FORMAT(dodano, '%e-%m-%Y %H:%i') AS utworzono, autor, tresc FROM  komentarze WHERE id='".intval($_GET['newsid'])."'";
  25.    $query=mysql_query($sql);
  26.    while($result=mysql_fetch_assoc($query))
  27.    {
  28.      print('<p>'.nl2br($result['tresc']).' ('.$result['autor'].'/'.$result['utworzono'].')</p>');
  29.    }
  30.  
  31.    ?>
  32.    <hr>
  33.    <form name="komentarz" method="post" action="news.php?newsid=<? echo intval($_GET['newsid']); ?>">
  34.       Dodaj komentarz:<br>
  35.       <textarea name="tekst" rows="5" cols="40"></textarea><br>
  36.       Autor:<br>
  37.       <input type="text" name="autor"><br>
  38.       <input type="reset" value="wyczyść"> <input type="submit" value="wyslij">
  39.    </form>
erix
No to pokaż, jak łączysz.
dave666
w miejscu //komentarze wstawiam nastepujący kod
  1. <?php
  2. echo '<hr>Komentarze:<br>';
  3.    if($_POST)
  4.    {
  5.      if((trim($_POST['autor'])) && (trim($_POST['tekst'])))
  6.      {
  7.        if(mysql_query("INSERT INTO komentarze VALUES('', '".intval($_GET['newsid'])."',
  8.                        NOW(), '".trim(htmlspecialchars($_POST['autor']))."', '".trim(htmlspecialchars($_POST['tekst']))."')"))
  9.          echo 'Dodałem komentarz';
  10.        else echo 'Nie mogłem dodać komentarza';
  11.      }
  12.      else echo 'Nie dopisałem komentarza - podaj swoje imię i wpisz jakiś komentarz!';
  13.      echo '<br>';
  14.    }
  15.    $sql="SELECT DATE_FORMAT(dodano, '%e-%m-%Y %H:%i') AS utworzono, autor, tresc FROM komentarze WHERE id='".intval($_GET['newsid'])."'";
  16.    $query=mysql_query($sql);
  17.    while($result=mysql_fetch_assoc($query))
  18.    {
  19.      print('<p>'.nl2br($result['tresc']).' ('.$result['autor'].'/'.$result['utworzono'].')</p>');
  20.    }
  21.  
  22. ?>
  23.    <hr>
  24.    <form name="komentarz" method="post" action="">
  25.       Dodaj komentarz:<br>
  26.       <textarea name="tekst" rows="5" cols="40"></textarea><br>
  27.       Autor:<br>
  28.       <input type="text" name="autor"><br>
  29.       <input type="reset" value="wyczyść"> <input type="submit" value="wyslij">
  30.    </form>



to tabela komentarze
Kod
CREATE TABLE `komentarze` (
  `lp` smallint(6) NOT NULL auto_increment,
  `id` smallint(6) NOT NULL default '0',
  `dodano` datetime NOT NULL default '0000-00-00 00:00:00',
  `autor` varchar(255) NOT NULL default '',
  `tresc` text NOT NULL,
  PRIMARY KEY  (`lp`)
) TYPE=MyISAM COMMENT='Komentarze' AUTO_INCREMENT=1;
InosU31
mi sie wydaje ze najlepiej by bylo jakbys zrobil (ja tak mam) dwie tabelki i w jednej bys trzymal artykuly a w drugiej komentarze. W tabelce gdzie masz komentarze dajesz dodatkowa kolumne i w niej umieszczasz id_artykulu ktory bedzie przypisany dla kazdego komentarza ktory ma sie wyswietlac do tego artykulu. Gdy chcesz wyswietlic komentarze pod danym artykulem to tworzysz np. takie zapytanie :
  1. mysql_query("
  2. SELECT * FROM komentarze WHERE id_artykulu = '".$_GET['id']."'
  3.  
  4. ");


gdzie ten : $_GET['id'] moze byc np taki :

http://localhost/jakas_strona.php?page=artykul1&id=5

i w ten sposob bedziesz tez mogl dodawac do bazy nowe komentarze po wlasnie tym id ;-)

pozdrawiam

PS.

Teraz przeczytalem ;-)
  1. <?php
  2. $sql="SELECT  DATE_FORMAT(dodano, '%e-%m-%Y %H:%i') AS utworzono, autor, tresc FROM  komentarze WHERE id='".intval($_GET['newsid'])."'";
  3. ?>


czy tu warunkiem jest id komentarza?? bo jesli tak to wychodzi na to ze id_komentarza= id_news - sory nie czytalem calego kodu ale moze tu masz ten blad - bo by wyswietlal ci jeden komentarz
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.