Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ 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
Bydlisko: Internet
Príspevok NapísalOffline : 12.01.2009 17:32

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: 404
Témy: 2
Bydlisko: Prešov / Pr...
Príspevok NapísalOffline : 12.01.2009 18:12

    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: 3984
Témy: 96
Príspevok NapísalOffline : 12.01.2009 18:25

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
Bydlisko: Internet
Príspevok Napísal autor témyOffline : 12.01.2009 18:40

- 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: 78
Témy: 0
Príspevok NapísalOffline : 12.01.2009 19:05

...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
Bydlisko: Internet
Príspevok Napísal autor témyOffline : 13.01.2009 19:04

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: 3984
Témy: 96
Príspevok NapísalOffline : 13.01.2009 19:11

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
Bydlisko: Internet
Príspevok Napísal autor témyOffline : 13.01.2009 19:19

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: 3984
Témy: 96
Príspevok NapísalOffline : 13.01.2009 19:27

' .. myslím v SQL dopyte :)


Offline

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

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 13.01.2009 19:30

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
Bydlisko: Internet
Príspevok Napísal autor témyOffline : 13.01.2009 19:33

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: 3948
Témy: 51
Bydlisko: Bratislava
Príspevok NapísalOffline : 16.01.2009 14:27

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







_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
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
Bydlisko: Internet
Príspevok Napísal autor témyOffline : 16.01.2009 15:34

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: 3948
Témy: 51
Bydlisko: Bratislava
Príspevok NapísalOffline : 16.01.2009 15:47

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);
   }
}
?>







_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
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
Bydlisko: Internet
Príspevok Napísal autor témyOffline : 16.01.2009 19:38

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 ?


Odpovedať na tému [ Príspevkov: 15 ] 


Podobné témy

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

v PHP, ASP

6

2723

09.07.2007 18:32

Tominator Zobrazenie posledných príspevkov

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

v PHP, ASP

11

2746

28.10.2008 18:32

Unlink Zobrazenie posledných príspevkov

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

v Redakčné systémy

0

2654

29.05.2007 20:32

raven Zobrazenie posledných príspevkov

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

v Správy pre vedenie fóra

21

2148

16.02.2015 18:55

tarezni Zobrazenie posledných príspevkov

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

v Ostatné

3

2818

01.07.2011 13:52

neostar Zobrazenie posledných príspevkov

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

v Redakčné systémy

2

2710

14.08.2012 13:55

ruza.m Zobrazenie posledných príspevkov

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

v PHP, ASP

1

2417

04.01.2010 21:07

B.A.X.O Zobrazenie posledných príspevkov

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

v Redakčné systémy

2

3511

11.10.2009 19:10

mittnick Zobrazenie posledných príspevkov

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

561

18.02.2010 18:19

AReYco Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Ako najrýchlejšie spraviť komentáre?

v Ostatné

1

702

09.12.2009 20:07

tomxi Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Komentáre ku HTML stránke

v PHP, ASP

4

639

24.06.2012 18:49

ketesh Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Komentáre k zostave do 450 €

v PC zostavy

11

552

16.07.2009 20:41

majo30095 Zobrazenie posledných príspevkov

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

v Ostatné

0

559

22.07.2008 15:20

dsljohn Zobrazenie posledných príspevkov

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

v JavaScript, VBScript, Ajax

5

507

16.07.2011 13:58

emer Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. PHP & MySQL - Články a komentáre

v PHP, ASP

15

1356

26.10.2012 20:15

Ďuri Zobrazenie posledných príspevkov

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

409

29.04.2012 20:09

Black Scorpion Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra