Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem PHP error při "lajkování"

Zdravím, mám kód, je to počítadlo Likování a Dislikování, funguje to, jenže vždycky při spuštění mi to vypíše error

 <?php
 if ($_POST['like']) {                           ...prvni error
   mysql_query("UPDATE `likes` SET `clicks` = `clicks` + 1 WHERE `action`='like'");          
   } else if ($_POST['dislike']) {               ...druhy error
   mysql_query("UPDATE `likes` SET `clicks` = `clicks` + 1 WHERE `action`='dislike'");
   }
  ?>

A vypíše to Notice: Undefined index: like in C:\....
Nevíte co tam je špatně? Díky.

Předmět Autor Datum
Zkus změnit if ($_POST['like']) na if (isset($_POST['like']))
Banshee 07.05.2013 21:29
Banshee
Moc děkuji. :-)
Jirka T. 07.05.2013 21:40
Jirka T.
naco tam davas tie spatne apostrofy na nazov tabulky a nazvy stlpcov? zbytocne si to len zneprehladn…
wam_Spider007 07.05.2013 21:39
wam_Spider007
A ještě jeden dotázek bych měl... Když chci to "likování" u každé položky na stránce od nuly, musím…
Jirka T. 07.05.2013 21:56
Jirka T.
1) Nepoužívej * při SELECTu vždy vyjmenuj ty sloupce které chceš vybrat, je to rychlejší pro databáz… poslední
Vasekdvor 07.05.2013 22:16
Vasekdvor

naco tam davas tie spatne apostrofy na nazov tabulky a nazvy stlpcov? zbytocne si to len zneprehladnujes. Pokial pole alebo nazov tabulky nie je zhodne s niektorym rezervovanym slovom, tak to nema zmysel.

A ještě jeden dotázek bych měl...
Když chci to "likování" u každé položky na stránce od nuly, musím mít pro každou tu stránku vytvořenou novou databázi(resp. tabulku) nebo lze nějak provést, že by se to na každé jiné stránce bylo od nuly aniž bych měl další tabulky? Kdyžtak kód

  <?php
 if (isset($_POST['like'])) {
   mysql_query("UPDATE `likes` SET `clicks` = `clicks` + 1 WHERE `action`='like'");
   } else if (isset($_POST['dislike']))  {
   mysql_query("UPDATE `likes` SET `clicks` = `clicks` + 1 WHERE `action`='dislike'");
   }
  ?>
  
  <?php
   $like = mysql_fetch_assoc(mysql_query("SELECT * FROM `likes` WHERE `action`='like'")); 
   $dislike = mysql_fetch_assoc(mysql_query("SELECT * FROM `likes` WHERE `action`='dislike'")); 
  
   echo "<font color='green'>+$like[clicks]</font>";
   echo "<br />";
   echo "<font color='red'>-$dislike[clicks]</font>";
  ?>

1) Nepoužívej * při SELECTu vždy vyjmenuj ty sloupce které chceš vybrat, je to rychlejší pro databázi.

2)

WHERE `action`=`like`");

A promiň už si vyřešil tim issetem,tak je to OK, tohle to dělá furt tyto NOTICE já ignoruju napsáním tohoto na začátek skriptu a pak už nepotřebuješ u ničeho dávat isset(), (vypne to všechny NOTICE hlášky):

error_reporting(E_ALL ^ E_NOTICE);

3) Udělej si jen jednu tabulku a sloupce pojmenuj třeba ID_stranky , LIKE , DISLIKE atd.. a pak jen měň hodnoty v daných sloupcích a řádcích.

| ID_stranky | LIKE  | DISLIKE |
|     1      |   1   |    0    |
|     2      |   0   |    1    |
|     3      |   2   |    0    |
.
.
.
.
.

Zpět do poradny Odpovědět na původní otázku Nahoru