Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> a dlaczego to nie dziala ??
boya
post 23.06.2003, 18:33:51
Post #1





Grupa: Zarejestrowani
Postów: 287
Pomógł: 0
Dołączył: 26.02.2003
Skąd: Ow/Pn

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


Mam problem sad.gif

Poniższy kod:

Kod
<?php

@mysql_connect( "localhost", "boya", "boy2ost" );

@mysql_select_db( "boya" );

$wykonaj = mysql_query( "SELECT news.kto kto, news.text text, news.kiedy kiedy, count(k.*) ilosc

FROM komentarze k

LEFT JOIN knews ON (k.news_id=news.id)

GROUP BY k.news_id

LIMIT 10;" );

while( $wiersz = @mysql_fetch_array( $wykonaj ) ) {

print $wiersz['kto']."n";

print $wiersz['text']."n";

print $wiersz['kiedy']."n";

print $wiersz['ilosc']."n";

}

?>


teraz opis co ma robic ten skrypt

laczy sie z baza danych boya gdzie sa dwie tabele knews i komentarze

struktury tabeli

knews
id | kto | kiedy | text |
komentarze
id | id_news | kto | kiedy | gg | mail |

wyswietla mi na stronie glownej newsy wraz z licza komentarzy, problem w tym ze ten skrypt nic nie wyswietla i dlaczego moze ktos z was wie questionmark.gif a moze macie inny sposob zeby rpzwiazac to wyswietlanie ktore wyglada tak

Strona Glowna


to z tabeli knews kto text kiedy
automatycznie do tego dodaje komentarze (***) komentuj

jak widzicie w nawiasie wyzej sa gwiazdki i tam ma byc ilosc komentarzy o konkretnym id (suma komentarzy np o id=12) jak mam napisac skrypt zeby to dzialalo bo rece mi opadaja juz....

POMOCY


--------------------
Reklamowa Oklejanie Samochodów: oklejanie pojazdów / tel. 62 597 74 48
Go to the top of the page
+Quote Post
kurtz
post 24.06.2003, 11:22:41
Post #2





Grupa: Przyjaciele php.pl
Postów: 786
Pomógł: 0
Dołączył: 18.03.2002
Skąd: Wroclaw/Warszawa

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


Cytat
jak widzicie w nawiasie wyzej sa gwiazdki i tam ma byc ilosc komentarzy o konkretnym id (suma komentarzy np o id=12) jak mam napisac skrypt zeby to dzialalo bo rece mi opadaja juz....
uf. ok troszke sie tego zebralo.

najpierw co wg mnie jest niepoprawnie
1) count(k.*) jest niepoprawne - skoro grupujesz po kolumnie to i count'uj po niej - to wazny blad.
2) troszke nie tak masz tego joina - chyba chciales odwrotnie - newsy i do nich przywiazywac komentarze - a konkretnie ich ilosc. - to tez istotny blad - ale juz projektowy
3) w tym zapytaniu co napisales masz male babole - podczas przepisywania? - (k.news_id=news.id) - a nigdzie nie ma news - wyglada na to ze chodzilo o tabelke knews ktora nie zaliasowales.

ergo: poprawilem zapytanie:
Kod
SELECT

    news.kto kto,

    news.text text,

    news.kiedy kiedy,

    count(k.id_news) ilosc

FROM

   knews news

LEFT JOIN komentarze k

   ON (k.id_news = news.id)

GROUP BY

    k.id_news

LIMIT 0, 30



pozdrawiam


--------------------
.. make web your home ..
Go to the top of the page
+Quote Post
kurtz
post 24.06.2003, 11:24:30
Post #3





Grupa: Przyjaciele php.pl
Postów: 786
Pomógł: 0
Dołączył: 18.03.2002
Skąd: Wroclaw/Warszawa

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


Cytat
najpierw co wg mnie jest niepoprawnie
aha: najlepiej jest testowac swoje zpaytania nim wrzucimy je do php - najprosicej phpmyadminem ktorego chyba kazdy ma ;)

mozesz tez pokusic sie o wizualnego klienta ktory niczym Enterprise Manager pokaze ci ktory klucz do czego sie odwoluje ;)


pozdrawiam


--------------------
.. make web your home ..
Go to the top of the page
+Quote Post
boya
post 24.06.2003, 12:19:01
Post #4





Grupa: Zarejestrowani
Postów: 287
Pomógł: 0
Dołączył: 26.02.2003
Skąd: Ow/Pn

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


dzieki uprzejmosci BzikOS-a mam takie cos

Cytat
<?php
@mysql_connect( "localhost", "boya", "boy2ost" );
@mysql_select_db( "boya" );
$sql = mysql_query( "SELECT id, kto, text, kiedy FROM knews LIMIT 10" );
while($wiersz = @mysql_fetch_array( $sql ) ) {
list($ilosc) = @mysql_query("SELECT count(*) FROM komentarze WHERE news_id=".$wiersz['id']."");
print $wiersz['kto']."n";
print $wiersz['text']."n";
print $wiersz['kiedy']."n";
print $ilosc."n";
}
?>


problem w tym ze to mi nie wyswietla $ilosc
moze widziec co jest nie tak questionmark.gif?


--------------------
Reklamowa Oklejanie Samochodów: oklejanie pojazdów / tel. 62 597 74 48
Go to the top of the page
+Quote Post
BzikOS
post 24.06.2003, 13:28:54
Post #5





Grupa: Przyjaciele php.pl
Postów: 660
Pomógł: 0
Dołączył: 28.08.2002
Skąd: Starachowice

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


Cytat
dzieki uprzejmosci BzikOS-a mam takie cos

Cytat
<?php
// ...
list($ilosc) = @mysql_fetch_row(@mysql_query("SELECT count(*) FROM komentarze WHERE news_id=".$wiersz['id'].""));
// ...
}
?>


Tak być powinno.
Go to the top of the page
+Quote Post
kurtz
post 24.06.2003, 13:55:59
Post #6





Grupa: Przyjaciele php.pl
Postów: 786
Pomógł: 0
Dołączył: 18.03.2002
Skąd: Wroclaw/Warszawa

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


Cytat
Cytat
dzieki uprzejmosci BzikOS-a mam takie cos

Cytat
<?php
// ...
list($ilosc) = @mysql_fetch_row(@mysql_query("SELECT count(*) FROM komentarze WHERE news_id=".$wiersz['id'].""));
// ...
}
?>


Tak być powinno.
eh a mozna bylo wszystko jednym zapytaniem bylo zrobic...


pozdrawiam


--------------------
.. make web your home ..
Go to the top of the page
+Quote Post
BzikOS
post 24.06.2003, 14:02:37
Post #7





Grupa: Przyjaciele php.pl
Postów: 660
Pomógł: 0
Dołączył: 28.08.2002
Skąd: Starachowice

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


Cytat
eh a mozna bylo wszystko jednym zapytaniem bylo zrobic...
Można...
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 6.07.2025 - 16:34