[ Príspevkov: 15 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
komentáre k novinkám

Registrovaný: 04.12.07
Prihlásený: 05.11.15
Príspevky: 347
Témy: 51 | 51
Bydlisko: Internet
NapísalOffline : 12.01.2009 17:32 | komentáre k novinkám

cavte mam problém...

Tu je kód:
Kód:

$sql = "SELECT * FROM aktuality ORDER by id DESC";
$sql1 = "SELECT * FROM komentare ORDER by id DESC";

$result = mysql_query($sql, $connect);
$result1 = mysql_query($sql1, $connect);

while ($vypis=mysql_fetch_array($result))

{   

  echo "".$vypis["nadpis"]." <u>".$vypis["datum"]."</u> <>";
 echo "".$vypis["text"]."<br>";
 echo "komentáre : ".mysql_num_rows($result1) ;
 echo "<br>";

 
while ($vypis1=mysql_fetch_array($result1))
{      
echo "".$vypis1["komentár"]."<br>";
}
}


Vysvetlenie:

Mám dve tabuľky - aktuality a komentare.
Na webe by sa mi mali zobrazovat aktuality podla najväčšieho ID
Pod tým ma byť napísané "komentáre: -pocet komentarov-"
a pod tým maju byt komentare.
Pri tomto kode co som tu dal, sa tieto komentare zobrazuju iba pri prvej novinke, pri dalsich uz nie. Mohli by ste mi pls povedat, co tam je chybne, ked chcem, aby tie komentare sa zobrazovali pod kazdu aktualitu ?


Viem, ze kod je velmi na .... a neformatovany, ale chcem zatial iba neformatovanu verziu.
Ktore komentare ku ktorej novinke patria si vyriesim sam ...

ďakujem za každú radu.


Offline

Skúsený užívateľ
Skúsený užívateľ
komentáre k novinkám

Registrovaný: 07.03.06
Prihlásený: 23.01.11
Príspevky: 408
Témy: 2 | 2
Bydlisko: Prešov / Pr...
NapísalOffline : 12.01.2009 18:12 | komentáre k novinkám

    1.) vyberať aktuality podľa najvyšieho id je blbosť. Ak budeš chcieť napríklad upraviť aktualitu a znovu zverejniť na prvom mieste, nebude stačiť upraviť dátum, ale aj id => vyberaj podľa dátumu!
    2.) tie komentáre sa ti zobrazia len pod prvou aktualitou, pretože ich vyberieš naraz všetky. Takže pod prvou aktualitou budeš mať komentáre zo všetkých aktualít. Musíš k tomu dopísať nejaké pravidlo výberu - to čo chceš vyriešiť sám.
    3.) prečo vlastne zobrazuješ komentáre v zozname aktualít. Nebolo by lepšie zobraziť komentáre len pri detaile konkrétnej aktuality?


Ak ale teda chceš v tom zozname vypisovať aj komentáre, urob to nejako takto, že každý komentár má v tabuľke aj id aktuality, ku ktorej je priradený. Tak výber bude vyzerať takto:
Kód:
$sql = "SELECT * FROM aktuality ORDER by id DESC";
$result = mysql_query($sql, $connect); 

while ($vypis=mysql_fetch_array($result))  {   

  echo $vypis["nadpis"]." <u>".$vypis["datum"]."</u> <>";
  echo $vypis["text"]."<br>";
  echo "komentáre : ".mysql_num_rows($result1) ;
  echo "<br>";

  $sql1 = "SELECT * FROM komentare WHERE aktualita_id = '".$vypis["id"]."' ORDER by id DESC";
  $result1 = mysql_query($sql1, $connect);
  while ($vypis1=mysql_fetch_array($result1)) {       
    echo "".$vypis1["komentár"]."<br>";
  }
}
Tento kód predpokladá, že v tabuľke aktualít je aj stĺpec id, ktoré má každá aktualita unikátne a dané id je priradené ku komentáru. Tak potom vyberieš len komentáre patriace k článku pomocou aktualita_id = '".$vypis["id"]."'


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.02.07
Prihlásený: 21.02.10
Príspevky: 3991
Témy: 96 | 96
NapísalOffline : 12.01.2009 18:25 | komentáre k novinkám

tak predsa ...

SELECT na aktuality

nasleduje spraocvanie a vypisanie vo while a tam DRUHY SELECT ale uz aj s konkretnym ID, spracovanie koniec druheho a prveho while


Offline

Užívateľ
Užívateľ
komentáre k novinkám

Registrovaný: 04.12.07
Prihlásený: 05.11.15
Príspevky: 347
Témy: 51 | 51
Bydlisko: Internet
Napísal autor témyOffline : 12.01.2009 18:40 | komentáre k novinkám

- hm, zobrazovanie komentárov som chcel riesit cez JS, kde ked kliknem na
Komentare:(cislo) tak sa mi roztvorí stránka s komentarmi,

- ja som myslel, ze ked nedam podmienku pre zobrazovanie komentarov (pre ktoru novinku) som myslel, ze tieto komentare sa u kazdej novinke zobrazia...

- pri prvej novinke, kde pise pocet komentarov, sa mi zobrazi upozornenie, ktore upozornuje na nevalidny parameter mysql_num_rows(), ale pri dalsich novinkach sa zobrazi uz dobre ...
ked som riadok
Kód:
$result1 = mysql_query($sql1, $connect);

skopiroval pod premenu $result, uz sa zobrazuje bez chyby, ale napise pocet komentarov 0, aj ked tam nejake komentare su a aj ich vypise

//EDIT:


ok, po rozmyslani som prisiel na tento kód:

Kód:
$sql = "SELECT * FROM aktuality ORDER by id DESC";
$result = mysql_query($sql, $connect);




while ($vypis=mysql_fetch_array($result))  {   

  echo $vypis["nadpis"]." <u>".$vypis["datum"]."</u> <>";
  echo $vypis["text"]."<br>";
 
$sql_1 = "SELECT Count(*) as pocet FROM komentare WHERE id = '".$vypis["id"]."' ";
$result_1 = mysql_query($sql_1, $connect);
  while ($vypis_1=mysql_fetch_array($result_1))
{   
echo " Počet záznamov:".$vypis_1["pocet"]."";

}
  echo "<br>";
$sql1 = "SELECT * FROM komentare WHERE id = '".$vypis["id"]."' ORDER by id DESC";
 $result1 = mysql_query($sql1, $connect);
  while ($vypis1=mysql_fetch_array($result1)) {       
    echo "".$vypis1["text"]."<br><hr>";
  }
}




co hovorite na tento kod ?


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 28.12.08
Prihlásený: 12.01.09
Príspevky: 79
Témy: 0 | 0
NapísalOffline : 12.01.2009 19:05 | komentáre k novinkám

...o relacnych databazach nechyrovali ? :lol:
alebo alternativa na dva SQL dopyty...
Citácia:
SELECT * FROM komentare ORDER BY aktualita_id DESC;
SELECT * FROM aktuality;

...a uz len v cykle for vypisat zaradom... :rolleyes:


Offline

Užívateľ
Užívateľ
komentáre k novinkám

Registrovaný: 04.12.07
Prihlásený: 05.11.15
Príspevky: 347
Témy: 51 | 51
Bydlisko: Internet
Napísal autor témyOffline : 13.01.2009 19:04 | komentáre k novinkám

hm, poradite mi este v niecom ?

mam odkaz komentar.php?com=[id_novinky]

v komenatr.php mam toto tu:

Kód:
include ('config.php');
   



$id_novinky = addslashes($_GET['com']);
$napisal = htmlspecialchars($_POST['napisal']);
$komentar = htmlspecialchars($_POST['komentar']);
$datum = date("d. m. Y -  G:i:s");


if ($komentar == "" || $napisal == "" ):


  echo "<center>Vyplnte vsetky políčka <br><br>";
 
else:




$connect = mysql_connect($ip, $user, $pass)  or die ("Spojenie so serverom  nebolo úspešné");
mysql_select_db($realmd, $connect)  or die ("Nepodarilo se spojiť s databázou ");
mysql_query("SET NAMES 'cp1250'");


$sql = "INSERT INTO komenty (id_novinky, napisal, komentar, datum) VALUES ('$id_novinky', '$napisal', '$komentar', '$datum')";
mysql_query($sql, $connect);


echo "Prave ste odoslali komentar ...";






mysql_close();
endif;

// tu dalej je uz iba formular pre premenu napisal a komentar


premenná $id_novinky funguje vsade okrem tej podmienky(kde musi vyplnit urcite plicka) po endif ...

ako urobim, aby tá premennná tam fungovala ? Lebo takto sa mi nechce zapisat do stlpca id_novinky


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.02.07
Prihlásený: 21.02.10
Príspevky: 3991
Témy: 96 | 96
NapísalOffline : 13.01.2009 19:11 | komentáre k novinkám

no tak ja by som ID_novinky preveroval cez is_numeric()

A k problému odstráň úvodzovky pri ID_novinky lebop je to typ int ...


Offline

Užívateľ
Užívateľ
komentáre k novinkám

Registrovaný: 04.12.07
Prihlásený: 05.11.15
Príspevky: 347
Témy: 51 | 51
Bydlisko: Internet
Napísal autor témyOffline : 13.01.2009 19:19 | komentáre k novinkám

ake uvodzovky mam pri ID_novinky ?


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.02.07
Prihlásený: 21.02.10
Príspevky: 3991
Témy: 96 | 96
NapísalOffline : 13.01.2009 19:27 | komentáre k novinkám

' .. myslím v SQL dopyte :)


Offline

Čestný člen
Čestný člen
komentáre k novinkám

Registrovaný: 11.08.07
Príspevky: 4110
Témy: 30 | 30
Bydlisko: Brno
NapísalOffline : 13.01.2009 19:30 | komentáre k novinkám

Tominator píše:
no tak ja by som ID_novinky preveroval cez is_numeric()
Mne sa ale zda, ze to, co sa vybera z $_GET, je vzdy string. Cize to ti nepomoze. To znamena radsej pouzit nieco ine...preg_match('/^[0-9]+$/D',$_GET['com']) napriklad?


Offline

Užívateľ
Užívateľ
komentáre k novinkám

Registrovaný: 04.12.07
Prihlásený: 05.11.15
Príspevky: 347
Témy: 51 | 51
Bydlisko: Internet
Napísal autor témyOffline : 13.01.2009 19:33 | komentáre k novinkám

Tominator - hm, ale tymto predsa nic nevyriesim ...

Kód:
include ('config.php');
   



$id_novinky = addslashes($_GET['com']);
$napisal = htmlspecialchars($_POST['napisal']);
$komentar = htmlspecialchars($_POST['komentar']);
$datum = date("d. m. Y -  G:i:s");

// echo "$id_novinky"; - vypise sa to ID

if ($komentar == "" || $napisal == "" ):

// echo "$id_novinky"; - nevypise sa to ID
  echo "<center>Vyplnte vsetky políčka <br><br>";
 
else:


// echo "$id_novinky"; - nevypise sa to ID

$connect = mysql_connect($ip, $user, $pass)  or die ("Spojenie so serverom  nebolo úspešné");
mysql_select_db($realmd, $connect)  or die ("Nepodarilo se spojiť s databázou ");
mysql_query("SET NAMES 'cp1250'");


$sql = "INSERT INTO komenty (id_novinky, napisal, komentar, datum) VALUES ('$id_novinky', '$napisal', '$komentar', '$datum')";
mysql_query($sql, $connect);


echo "Prave ste odoslali komentar ...";






mysql_close();
endif;

// echo "$id_novinky"; - vypise sa to ID

// tu dalej je uz iba formular pre premenu napisal a komentar


a proste, tam kde je napisane "nevypise sa to ID", chcem aby vypisalo to ID ... lebo ked nevypise cez echo, predsa sa ani nezapise do DB ...


Offline

Správca fóra
Správca fóra
komentáre k novinkám

Registrovaný: 27.07.07
Príspevky: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 16.01.2009 14:27 | komentáre k novinkám

kde kontrolujes, ci bol formular odoslany? mas zapnute zobrazovanie vsetkych chyb?


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

Užívateľ
Užívateľ
komentáre k novinkám

Registrovaný: 04.12.07
Prihlásený: 05.11.15
Príspevky: 347
Témy: 51 | 51
Bydlisko: Internet
Napísal autor témyOffline : 16.01.2009 15:34 | komentáre k novinkám

hm, nestaci

Kód:
if ($komentar == "" || $napisal == "" ):

echo "<center>Vyplnte všetky políčka <br><br>";


 else:


Nestačí tak ??

ved ked bude aspon jedna s týchto dvoch premennych prázdna, predsa sa vráti k formuláru a neodošle ho ...
A ked budu vyplnene obidva políčka, pojde dalej, kde je pripojenie k mysql a pod ...


Offline

Správca fóra
Správca fóra
komentáre k novinkám

Registrovaný: 27.07.07
Príspevky: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 16.01.2009 15:47 | komentáre k novinkám

Ked prides prvykrat na stranku, tak POST premenna este neobsahuje ziadne udaje a ty uz s nimi tak povediac ratas... to iste plati aj pre $id_novinky, treba jej hodnotu poriadne skontrolovat, ale to si uz doplnis hadam sam...

Vyskusaj nasledujuci kod:
Kód:
<?php
include ('config.php');

if(!empty($_POST)) {   
   $id_novinky = !empty($_GET['com']) ? addslashes($_GET['com']) : "";
   $napisal = !empty($_POST['napisal']) ? htmlspecialchars($_POST['napisal']) : "";
   $komentar = !empty($_POST['komentar']) ? htmlspecialchars($_POST['komentar']) : "";
   $datum = date("d. m. Y -  G:i:s");

   if($komentar == "" || $napisal == "" ) {
      echo "<center>Vyplnte vsetky políčka <br><br>";
   } else {
      $connect = mysql_connect($ip, $user, $pass)  or die ("Spojenie so serverom  nebolo úspešné");
      mysql_select_db($realmd, $connect)  or die ("Nepodarilo se spojiť s databázou ");
      mysql_query("SET NAMES 'cp1250'");

      $sql = "INSERT INTO komenty (id_novinky, napisal, komentar, datum) VALUES ('$id_novinky', '$napisal', '$komentar', '$datum')";
      mysql_query($sql, $connect);
      
      mysql_close($connect);
   }
}
?>


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

Užívateľ
Užívateľ
komentáre k novinkám

Registrovaný: 04.12.07
Prihlásený: 05.11.15
Príspevky: 347
Témy: 51 | 51
Bydlisko: Internet
Napísal autor témyOffline : 16.01.2009 19:38 | komentáre k novinkám

Mám jednu otázku:
Tu čo som rozpísal zdrojový kód, zapamätanie ID novinyk mám cez GET.
Keďže GET sa zobrazí na adrese, nerád by som to použil.
Skúšal som cez SESSION, ale v pohode mi to zapíše, ale sa to vždy zapamätá ta hodnota.
Napr. mám dve novinky, s ID 1 a ID 2.
Kliknem pridať komentár na novinku s ID1, v pohode sa mi zapíše.
Keď vyplnil úspešne odoslal, mam tam príkaz na vyprázdnenie toho SESSION, a ked kliknem na novinku s ID2, ulozí sa mi, ze komentár písem pre novinku s ID1.
Da sa urobit aj iným sposobom, ked chcem, aby si pamätalo novinku s daným ID ?? Alebo upravit nejako cez ten Session ?


 [ Príspevkov: 15 ] 


komentáre k novinkám



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

Komentáre

v Redakčné systémy

0

485

29.05.2007 20:32

raven

V tomto fóre nie sú ďalšie neprečítané témy.

Komentare

v PHP, ASP

6

517

09.07.2007 18:32

Tominator

V tomto fóre nie sú ďalšie neprečítané témy.

Komentáre

v PHP, ASP

11

500

28.10.2008 18:32

Unlink

V tomto fóre nie sú ďalšie neprečítané témy.

Wordpress komentáre

v Redakčné systémy

2

534

14.08.2012 13:55

ruza.m

V tomto fóre nie sú ďalšie neprečítané témy.

Nevidim komentáre

v Správy pre vedenie fóra

21

418

16.02.2015 18:55

tarezni

V tomto fóre nie sú ďalšie neprečítané témy.

Facebook komentare

v Ostatné

3

593

01.07.2011 13:52

neostar

V tomto fóre nie sú ďalšie neprečítané témy.

Ako na komentare?

v PHP, ASP

1

298

04.01.2010 21:07

B.A.X.O

V tomto fóre nie sú ďalšie neprečítané témy.

Komentáre na web

v Redakčné systémy

2

1273

11.10.2009 19:10

mittnick

V tomto fóre nie sú ďalšie neprečítané témy.

Nesiem zodpovednosť za komentáre?

v Obchody, reklamácie a právo

2

375

18.02.2010 18:19

AReYco

V tomto fóre nie sú ďalšie neprečítané témy.

Ako najrýchlejšie spraviť komentáre?

v Ostatné

1

326

09.12.2009 20:07

tomxi

V tomto fóre nie sú ďalšie neprečítané témy.

Komentáre ku HTML stránke

v PHP, ASP

4

323

24.06.2012 18:49

ketesh

V tomto fóre nie sú ďalšie neprečítané témy.

Komentáre k zostave do 450 €

v PC zostavy

11

276

16.07.2009 20:41

majo30095

V tomto fóre nie sú ďalšie neprečítané témy.

Porta a komentare k obrazkom

v Ostatné

0

334

22.07.2008 15:20

dsljohn

V tomto fóre nie sú ďalšie neprečítané témy.

komentare na sposob sme.sk

v JavaScript, VBScript, Ajax

5

302

16.07.2011 13:58

emer

V tomto fóre nie sú ďalšie neprečítané témy.

Joomla 1.5 komentáre k článkom

v Redakčné systémy

0

234

29.04.2012 20:09

Black Scorpion

V tomto fóre nie sú ďalšie neprečítané témy.

PHP & MySQL - Články a komentáre

v PHP, ASP

15

930

26.10.2012 20:15

Ďuri



© 2005 - 2017 PCforum, edited by JanoF