Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Skrypt newsów - nie wiem jak do niego dodać komenatrze
Forum PHP.pl > Forum > Bazy danych > MySQL
covall
Witam. Oto mój pierwszy skrypt php oparty o bazę MySQL. Czy mógłby mi ktoś wyjaśnić jak w najłatwiejszy sposób dodać do niego funkcje komentowania newsów? Jest to chyba wogóle mój pierwszzy skrypt php biggrin.gif

add.php
[php:1:db4617d307]<?
$data = time();
$zapytanie = "INSERT INTO news SET tytul='$tytul', autor='$autor', tresc='$tresc', data='$data'";
mysql_connect("serwer_bazy", "login", "haslo");
mysql_select_db("baza");
$dodaj = mysql_query($zapytanie);
if($dodaj) echo "News został prawidłowo dodany do bazy.";
else {
echo "Niestety, podczas dodawania newsa do bazy wystąpił błąd.";
}
?>[/php:1:db4617d307]

write.php
Kod
<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=iso-8859-2">

<TITLE>Nowy news</TITLE>

<FORM METHOD=POST ACTION=add.php>

<b>Autor:</b><BR>

<INPUT TYPE=text NAME=autor> <BR>

<b>Tytuł:</b><BR>

<INPUT TYPE=text NAME=tytul> <BR>

<b>Tresc:</b><BR>

<TEXTAREA COLS=50 ROWS=8 NAME=tresc></TEXTAREA><BR><BR>

<INPUT TYPE=submit VALUE="Dodaj Newsa"> <BR>

</FORM>


news.php
[php:1:db4617d307]
<?
mysql_connect("baza", "user", "pass");
mysql_select_db("nazwa");
$zapytanie = "SELECT * FROM news ORDER BY id DESC LIMIT 0, 6";
$odczyt = mysql_query($zapytanie);
while($wiersz=mysql_fetch_array($odczyt))
{
echo "
<table border=0 width=98%>
<tr>
<td colspan=2 bgcolor=black><B>".$wiersz['tytul']."</B> [ author: ".$wiersz['autor']." // date: ".date("d-m-Y, H:i:s", $wiersz['data'])." ]</td>
</tr>
<tr>
<td colspan=2>".$wiersz['tresc']."</td>
</tr>
<tr>
</tr>
</table>
";
}
?>
?>[/php:1:db4617d307]
lucek
Ja to robie tak, ze pod danym newsem dajesz LINK np. >>KOMENTUJ - w ktrym to przekzaujesz ID news, ktory chcesz skomentowac = nastpenie w akcji forumlarza musisz przekazac ID newsa i pozniej juz dodajesz t do bazy: kody masz ponizej.

[php:1:7ded5f40d0]<?php
case"komentuj":
print "<form method="post" action="?go=news&op=komentuj_add&Nid=$id">";

print "<BR><B>Aby dodać komentarz wypełnij poniższy formularz ! <BR><BR></B>";
echo '
Autor:&nbsp;<input type=text name=autork value=""> <BR>
Tre&para;ć:&nbsp;<TEXTAREA name=tresck VALUE="" ROWS=7 COLS=40 >
</TEXTAREA> <BR>
Email:&nbsp;<input type=text name=email VALUE="" > <BR><BR>
<input type=hidden name=data value="">
<input type=hidden name=ip value="">
<input type=hidden name=host value="">
<input type=hidden name=ip2 value="">
<input type=hidden name=host2 value="">

<INPUT TYPE="submit" NAME="submit" VALUE="Wy&para;lij" >
<input type="reset" value="Resetuj" name="B1"></TD></TR>
</FORM> ';
break;


case"komentuj_add":
$tresck = strip_tags($tresck);
$tresck= nl2br($tresck);

$tresck=preg_replace("/([w.]+@[w]+.[w.]+)/i",
"<a class=menu href="mailto:$1" >$1</a>",$tresck);
$tresck=preg_replace("/((http(s?)://)|(www.))([S]+.[S]+)/i",
"<a class=menu href="http$3://$4$5" >$4$5</a>", $tresck);

include ("ban_function.php");
$ip = get_realip();
$host = get_realhost();
$ip2 = $_SERVER['HTTP_X_FORWARDED_FOR'];
$host2=$REMOTE_ADDR;

$data = date("Y-m-j H:i");
$query= "INSERT INTO news_kom VALUES ('$id','$tresck','$autork','$Nid','$host','$email','$ip','$data', '$ip2','$host2')";
$wynik = mysql_query($query);
$result = MYSQL_QUERY($insert);


print "<center>
<table border=0 bordercolor=#c0c0c0 width=300 >
<tr><td width=50 rowspan=2><img src=/gfx/info.gif></td><td><B>Dziękuję za dodanie komentarza. </td></tr> <BR><BR></B>";
$query;
?>
<META HTTP-EQUIV=Refresh CONTENT="2; URL=?go=news">
<tr><td width=250>Poczekaj chwilkę....<br>
Zaraz zostanie załadowana strona głowna !<BR></td></tr> </table>
?>[/php:1:7ded5f40d0]
invx
a jak zliczyc ilosc wpisow questionmark.gif
Majdan
[sql:1:8cc1a22d5a]SELECT count(*) FROM tabela WHERE kryteria=jakie[/sql:1:8cc1a22d5a]
Możesz usunšć WHERE jeżeli chcesz zliczyć wszystko.
covall
Okey.. nie chcąc zakłądać nowego tematu pisze tutaj natknąłem się na kolejny problem. Jednak sam podjąłem się napisania tych komentarzy i na samym początku napotkałem na problem. Próbowałem na dużo sposobów, ale dalej cosik jest nie tak sad.gif Spójrzcie na kod... zwraca mi następujący błąd
Kod
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in c:usrkrasnalwwwgtagamenewsnews.php on line 7


Czy mógłby mi ktoś wyjaśnić co jest nie tak i poprawić ten skrypcik? :wink: Poniżej kodzik.

[php:1:caa73ff5fb]<CENTER><B>:: News ::</B><BR><BR>
<?
mysql_connect("serwer_bazy", "login", "hasło");
mysql_select_db("baza");
$zapytanie = "SELECT * FROM news ORDER BY id DESC LIMIT 0, 6";
$odczyt = mysql_query($zapytanie);
$ilosc = "SELECT * FROM comments WHERE subid=$wiersz['id']";
$komentarze = mysql_num_rows($ilosc);
while($wiersz=mysql_fetch_array($odczyt))
{
echo "
<table border=0 width=98%>
<tr>
<td colspan=2 bgcolor=black><B>".$wiersz['tytul']."</B> [ author: ".$wiersz['autor']." // date: ".date("d-m-Y, H:i:s", $wiersz['data'])." ]</td>
</tr>
<tr>
<td colspan=2>".$wiersz['tresc']."</td>
</tr>
<tr>
<td><p align=right> [ komentarze: ".$komentarze." ]</p>
</td>
</tr>
</table>
";
}
?>[/php:1:caa73ff5fb]

Podejrzewam, że błąd jest bardzo błachy, ale jakoś sobie z nim nie mogłem poradzić. rolleyes.gif Chodzi o to, aby wyświetlało ilość komentarzy. Sprawdźcie to, będę bardzo wdzięczny.
party
Zmienną $ilość wrzuć najpierw do mysql_query(), a dopiero potem do mysql_num_rows().
cboot
Ale najlepiej nie używaj mysql_num_rows, tylko zlicz to już na poziomie bazy danych countem, tak będzie szybciej działać :wink:
[php:1:30111dd87f]<?php
$ilosc = "SELECT count(*) FROM comments WHERE subid=$wiersz['id']";
$ilosc = mysql_fetch_row(mysql_query($ilosc));
$komentarze = $ilosc[0];
?>[/php:1:30111dd87f]
Chyba jakoś tak to się pisało :?
Majdan
cboot, mój post wyżej.
cboot
Cytat
cboot, mój post wyżej.

Post postem, ale on i tak po Twoim poście napisał bez counta, to zwróciłem uwagę, że tak będzie jednak szybciej. No i podałem cały fragment kodu, a nie tylko ideę :wink:

PS: i nie napisałem FORM tylko FROM tongue.gif :wink:

pozdrawiam
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.