Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> komentarze w ewsach
invx
post
Post #1





Grupa: Zablokowani
Postów: 655
Pomógł: 0
Dołączył: 28.11.2003
Skąd: Zagórz

Ostrzeżenie: (80%)
XXXX-


robie system newsow, utknolem na zliczaniu komentarzy:
mam taki kod:
[php:1:2f83a9b3f6]<?php
function czytaj_newsa ()
{
mysql_connect("127.0.0.1", "root", "krasnal") or die ("nie można polączyć się z bazą");
mysql_select_db(rcx) or die ("nie można wybrac bazy");

$zapytanie="SELECT * FROM news_a";

$ilosc = "SELECT * FROM comments WHERE subid='".$wiersz['id']."'";

$komentarze = mysql_query($ilosc);

$ilosckomentarzy = mysql_num_rows($komentarze);

$wykonaj=mysql_query($zapytanie);

while($wiersz=mysql_fetch_array($wykonaj))
{
echo "
<center>
<table align='center' width='420' cellspacing='0' cellpadding='0' border='1' style='border-collapse: collapse' bgcolor='#c0c0c0' bordercolor='#111111'>
<tr>
<td class='news'><b>$wiersz[tytul]:</b>$wiersz[data]
</td>
</tr>
</table>
<table>
<tr>
<td width='420' bgcolor='#FFFFFF' align='justify'>$wiersz[tresc]<br><br></td>
</tr>
<tr>
<td width='420' bgcolor='#efefef' align='left'>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dodał:&nbsp;<b><a href='mailto:$wiersz[mailu]'>$wiersz[dodal]</a></b></td>
<tr>
<td>
".$ilosckomentarzy."
</td>
</tr>
</tr>
</table><br>
</center>
";
}

#echo"<a name='dol'></a>";
#echo"<center><font color='#808080' size='2'>";
}
?>[/php:1:2f83a9b3f6]
i nie wykonuje zliczania komentarzy tylko wyswietla tresc zmiennej.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 14)
Puciek
post
Post #2


TAO programowania


Grupa: Zarejestrowani
Postów: 340
Pomógł: 3
Dołączył: 25.03.2003
Skąd: ze słoika

Ostrzeżenie: (30%)
XX---


Niebardzo rozumiem, czy możesz dać dokładny wygląd wygenerowanego blędu, i to czego oczekiwałeś ?
Go to the top of the page
+Quote Post
invx
post
Post #3





Grupa: Zablokowani
Postów: 655
Pomógł: 0
Dołączył: 28.11.2003
Skąd: Zagórz

Ostrzeżenie: (80%)
XXXX-


troszeczke zmienilem kod zeby byl bardziej czytelny
wywala

Kod
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:usrkrasnalwwwrcx-portalnewsodczyt.php on line 19
Go to the top of the page
+Quote Post
Puciek
post
Post #4


TAO programowania


Grupa: Zarejestrowani
Postów: 340
Pomógł: 3
Dołączył: 25.03.2003
Skąd: ze słoika

Ostrzeżenie: (30%)
XX---


I już jasne, wpisujesz złe argumenty dla zapytania SQL. Zła nazwa bazy, tabel lub coś w ten deseń
Go to the top of the page
+Quote Post
djpeterek
post
Post #5





Grupa: Zarejestrowani
Postów: 101
Pomógł: 0
Dołączył: 10.10.2003

Ostrzeżenie: (0%)
-----


[php:1:0a14012926]<?php
$kom = mysql_query ("SELECT * FROM comments WHERE subid='$id';");
?>[/php:1:0a14012926]zmiena $kom wywolujesz sproboj tak
Go to the top of the page
+Quote Post
Liko
post
Post #6





Grupa: Zarejestrowani
Postów: 436
Pomógł: 6
Dołączył: 8.11.2003
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


[php:1:b2a16e1e7e]<?php
$ilosc = "SELECT * FROM comments WHERE subid='".$wiersz['id']."'";
?>[/php:1:b2a16e1e7e]
Moje pytanie jest następujące: Skąd bierzesz zmienną $wiersz['id'] (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) Bo narazie tu nic nie widze, dopiero później wywołujesz pętle w której pojawia się ta zmienna.
Go to the top of the page
+Quote Post
Aiker
post
Post #7





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 9.09.2003
Skąd: K-ce

Ostrzeżenie: (0%)
-----


[php:1:d6f30b19cd]<?php
$ilosc = "SELECT * FROM comments WHERE subid='".$wiersz['id']."'";

$komentarze = mysql_query($ilosc);

$ilosckomentarzy = mysql_num_rows($komentarze);
?>[/php:1:d6f30b19cd]
Te 3 linijki powinny znajdowac się w pętli while
Go to the top of the page
+Quote Post
invx
post
Post #8





Grupa: Zablokowani
Postów: 655
Pomógł: 0
Dołączył: 28.11.2003
Skąd: Zagórz

Ostrzeżenie: (80%)
XXXX-


faktycznie taki blad :oops:
[php:1:a0404dd311]<?php
function czytaj_newsa ()
{
mysql_connect("127.0.0.1", "root", "krasnal") or die ("nie można polączyć się z bazą");
mysql_select_db(rcx) or die ("nie można wybrac bazy");

$zapytanie="SELECT * FROM news_a";



$wykonaj=mysql_query($zapytanie);

while($wiersz=mysql_fetch_array($wykonaj))
{
$ilosc = "SELECT * FROM news_b WHERE id_news='wiersz[id]'";
$komentarze = mysql_query($ilosc);
$ilosckomentarzy = mysql_num_rows($komentarze);

echo "
<center>
<table align='center' width='420' cellspacing='0' cellpadding='0' border='1' style='border-collapse: collapse' bgcolor='#c0c0c0' bordercolor='#111111'>
<tr>
<td class='news'><b>$wiersz[tytul]:</b>$wiersz[data]
</td>
</tr>
</table>
<table>
<tr>
<td width='420' bgcolor='#FFFFFF' align='justify'>$wiersz[tresc]<br><br></td>
</tr>
<tr>
<td width='420' bgcolor='#efefef' align='left'>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dodał:&nbsp;<b><a href='mailto:$wiersz[mailu]'>$wiersz[dodal]</a></b></td>
<tr>
<td>
".$ilosckomentarzy."
</td>
</tr>
</tr>
</table><br>
</center>
";
}

#echo"<a name='dol'></a>";
#echo"<center><font color='#808080' size='2'>";
}
?>[/php:1:a0404dd311]
ale teraz dla kazdego newsa pokazuje ta sama liczbe komentarzy.
Go to the top of the page
+Quote Post
Aiker
post
Post #9





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 9.09.2003
Skąd: K-ce

Ostrzeżenie: (0%)
-----


Moze podal bys wiecej szczegolow np strukture bazy danych itp... bo z tego co pokazales to trudno jest ci pomoc
Go to the top of the page
+Quote Post
invx
post
Post #10





Grupa: Zablokowani
Postów: 655
Pomógł: 0
Dołączył: 28.11.2003
Skąd: Zagórz

Ostrzeżenie: (80%)
XXXX-


[sql:1:64b1d3e875]#
# Struktura tabeli dla `news_a`
#

CREATE TABLE `news_a` (
`id` int(8) NOT NULL auto_increment,
`data` date NOT NULL default '0000-00-00',
`tytul` blob NOT NULL,
`tresc` blob NOT NULL,
`dodal` varchar(255) NOT NULL default '',
`ukrywanie` char(1) NOT NULL default '0',
`mailu` varchar(255) NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=40 ;

#
# Zrzut danych tabeli `news_a`
#

INSERT INTO `news_a` VALUES (39, '0000-00-00', '', '', 'ttrrrrrrrrrrrrrr', '0', 'tttttttt');
INSERT INTO `news_a` VALUES (35, '0000-00-00', 0x5757575757, 0x57575757575757, 'WWWWWWWWWWW', '0', 'WWWWWWWWWWWWWWW');
INSERT INTO `news_a` VALUES (36, '0000-00-00', 0x57575757545, 0x5755757575745454520, 'WWWWWWWWEEE', '0', 'WWWWWWWWEEE');
[/sql:1:64b1d3e875]

[sql:1:64b1d3e875]

#
# Struktura tabeli dla `news_b`
#

CREATE TABLE `news_b` (
`id` int(8) NOT NULL auto_increment,
`id_news` varchar(8) NOT NULL default '',
`temat` text NOT NULL,
`tresc` blob NOT NULL,
`nick` varchar(255) NOT NULL default '',
`data` datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=3 ;

#
# Zrzut danych tabeli `news_b`
#

INSERT INTO `news_b` VALUES (1, '1', 'sgs geqwt qe rt', '', 'et wet w', '0000-00-00 00:00:00');
INSERT INTO `news_b` VALUES (2, '1', 'sgwet we', '', 'et ew', '0000-00-00 00:00:00');
[/sql:1:64b1d3e875]
Go to the top of the page
+Quote Post
Aiker
post
Post #11





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 9.09.2003
Skąd: K-ce

Ostrzeżenie: (0%)
-----


Po pierwsze to id_news musi sie zgadzac z id newsa bo u ciebie sie nie zgadza a pozatym zapomniales dodac w twoim kodzie takiego znaczka $ przy wiersz[id]
Go to the top of the page
+Quote Post
invx
post
Post #12





Grupa: Zablokowani
Postów: 655
Pomógł: 0
Dołączył: 28.11.2003
Skąd: Zagórz

Ostrzeżenie: (80%)
XXXX-


jak sie nie zgadza ?
[php:1:f2d3a730bc]<?php
$ilosc = "SELECT * FROM news_b WHERE id_news='$wiersz[id]'";
?>[/php:1:f2d3a730bc]
Go to the top of the page
+Quote Post
Aiker
post
Post #13





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 9.09.2003
Skąd: K-ce

Ostrzeżenie: (0%)
-----


Spojrz sobie na zrzuty z bazy danych newsy maja id 35,36 itd.... a w news_b id_news tylko 1 dlatego wyswietla ci ze jest 0
Go to the top of the page
+Quote Post
invx
post
Post #14





Grupa: Zablokowani
Postów: 655
Pomógł: 0
Dołączył: 28.11.2003
Skąd: Zagórz

Ostrzeżenie: (80%)
XXXX-


dzieki, jakos to przeoczylem... :?
Go to the top of the page
+Quote Post
rogrog
post
Post #15





Grupa: Zarejestrowani
Postów: 602
Pomógł: 1
Dołączył: 3.04.2004
Skąd: Trójmiasto (Gdańsk)

Ostrzeżenie: (0%)
-----


A ja proponuję tak :

[php:1:d19e410e29]
$ilosc = "SELECT count(*) as ilosc_komentow FROM news_b WHERE id_news='$wiersz[id]'";
[/php:1:d19e410e29]

dalej

[php:1:d19e410e29]
$komentarze = mysql_query($ilosc);
$ilosckomentarzy = $komentarze[ilosc_komentow];
[/php:1:d19e410e29]
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 19:25