ugrás a tartalomhoz

like - dislike szavazatok kiiratása hozzászólás id-ként.

vtmk · 2014. Júl. 9. (Sze), 20.02
Sziasztok.
Segítséget szeretnék kérni egy még be nem fejezett részhez.
Olyan gondom lenne,hogy írtam nehezen a fórumomhoz egy olyan modot amivel a hozzászólásokat lehet értékelni. Tetszik illetve nem tetszik. Ez meg is volna,de viszont azt szeretném ha kiírná mennyien kattintottak a TETSZIK gombra és a NEM TETSZIK gombra.
// Tetszik nem teszik ez van
if (isset($_POST["gomb1"]))

{ $gomb1 = abs((int)$_GET['gomb1']); //ezt kell a value-hoz

$skulo="UPDATE forum_hsz SET gomb1 =gomb1+1 WHERE id='$gomb1'";

mysql_query($skulo) or die(mysql_error());
 }
if (isset($_POST["gomb2"]))

{ $gomb2 = abs((int)$_GET['gomb2']); //ezt kell a value-hoz
 
$skulo2="UPDATE forum_hsz SET gomb2 =gomb2+1 WHERE id='$gomb2'";

mysql_query($skulo2) or die(mysql_error());
}  
// Tetszik nem tetszik megszamoljuk  
$tnt1 = "SELECT id, gomb1 FROM  forum_hsz WHERE gomb1";
$tnt2 = mysql_num_rows(mysql_query($tnt1));  
$tnt3 = "SELECT id, gomb2 FROM  forum_hsz WHERE gomb2";
$tnt4 =  mysql_num_rows(mysql_query($tnt3));]

Ez pedig a from és a kiiratás rész:
<tr><td align="right"><form method="post"><input type="submit" class="gomb1" name="id" value="<?php $gomb1 ?>" />
<input type="submit" class="gomb2" name="id" value="<? $gomb2 ?>" /></form><br>
<font  color="#FFFFFF">
<label>Ez <font  color="yellow"><?= $tnt2 ?>  </font> embernek tetszett és <font  color="yellow"><?= $tnt4 ?> </font>  embernek nem tetszett.</label>
</font></td> </tr> ]

Ez pedig az adott adatbázis táblám:
-- -- Tábla szerkezet ehhez a táblához: `forum_hsz` --  CREATE TABLE IF NOT EXISTS `forum_hsz` (  
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,  
`topik` int(10) DEFAULT NULL,   `uid` int(10) DEFAULT NULL,
  `uzenet` text,   `ekkor` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',  
`modositva` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',  
`modositotta` int(11) DEFAULT NULL,  
`valasz_erre` int(11) NOT NULL,  
`gomb1` int(11) NOT NULL,  
`gomb2` int(11) NOT NULL,  
PRIMARY KEY (`id`) )
ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=301 ;
 -- -- A tábla adatainak kiíratása `forum_hsz` --]

Köszönöm a segítséget előre.
 
1

Pontosítás.

vtmk · 2014. Júl. 9. (Sze), 20.10
Igazából ezt a részt nem tudom megoldani.:

// Tetszik nem tetszik megszamoljuk  
$tnt1 = "SELECT id, gomb1 FROM  forum_hsz WHERE gomb1";
$tnt2 = mysql_num_rows(mysql_query($tnt1));  
$tnt3 = "SELECT id, gomb2 FROM  forum_hsz WHERE gomb2";
$tnt4 =  mysql_num_rows(mysql_query($tnt3));]

<label>Ez <font color="yellow"><?= $tnt2 ?> </font> embernek tetszett és <font color="yellow"><?= $tnt4 ?> </font> embernek nem tetszett.</label>
[code]
4

lekerdezesek

Poetro · 2014. Júl. 10. (Cs), 14.25
Ha neked ID-nkent kellene a szama, akkor jo lenne, ha a lekerdezesek feltetelebe beleraknad azt az ID-t, amelyikhez kell a darabszam. Vagy ha minden cikkhez kell, de cikkenkent, akkor pedig GROUP BY
2

Ezzel a megoldással

vtmk · 2014. Júl. 9. (Sze), 20.32
Ezzel a megoldással próbálkoztam,de csak fehér kép jött be:

// Tetszik nem tetszik megszamoljuk

$megquery = "SELECT SUM(gomb1) AS likes, SUM(gomb2) AS dislikes FROM forum_hsz WHERE id = ".((int) $data["id"]);
  $elresult = mysql_query($megquery) or die(mysql_error());
  $likeData = mysql_fetch_array($elresult);



<label>Ez <font  color="yellow"><? $likeData 'likes' ?>  </font> embernek tetszett és <font  color="yellow"><? $likeData 'dislikes' ?> </font>  embernek nem tetszett.</label>
3

Hibakezelés?

Vilmos · 2014. Júl. 10. (Cs), 11.57
Ha látni akarod mi baja a programodnak, írasd ki, persze csak teszt üzemben. Másrészt, a fetch_array tömböt ad vissza. Helyesen így éred el a tömb elemet:

error_reporting( E_ALL );          // Report all errors
ini_set( 'display_errors','On');   // Display error message

$likeData['dislikes']
Alap tudnivalók
5

Így lehetséges? $id =

vtmk · 2014. Júl. 10. (Cs), 20.59
Így lehetséges?


$id = $_GET['gep_id']; //ez a forum_hsz-ban az 'id'
// Tetszik nem tetszik megszamoljuk
$tnt1 = "SELECT id, gomb1 FROM forum_hsz WHERE id = '$id' ";
$tnt2 = mysql_num_rows(mysql_query($tnt1));

$tnt3 = "SELECT id, gomb2 FROM forum_hsz WHERE id = '$id' ";
$tnt4 = mysql_num_rows(mysql_query($tnt3));


Most mindenhol 0-át ír ki....
6

Biztonság

bamegakapa · 2014. Júl. 10. (Cs), 21.09
Azért vigyázz, mert ez a kód kapásból érzékeny az SQL injection támadásokra.
7

szintaxis?

Vilmos · 2014. Júl. 11. (P), 07.12
Elvileg lehetséges, bár így szokták használni (okkal alighanem):

$result = mysql_query("SELECT * FROM table");
$numrows = mysql_num_rows($result);
Az id tipikusan auto increment mező, és ennél fogva numerikus. A mintádban karakteres inputként szerepel. Próbáld így:

$tnt1 = "SELECT id, gomb2 FROM forum_hsz WHERE id =". $id;
8

Szia . Hibát nem ír ki,de

vtmk · 2014. Júl. 12. (Szo), 12.16
Szia . Hibát nem ír ki,de sajnos 0,0 találatot ír ki a fórumon.
Az adatbázisban pedig vannak számok.
9

Annyit megpróbálhatnál, nem a

Vilmos · 2014. Júl. 12. (Szo), 12.51
Annyit megpróbálhatnál, nem a _GET[] változóból veszed az ID-t, hanem fixen beírod a lekérdezésbe, olyat ami biztosan van a táblába.
Ha 0 a találat, akkor algoritmus hibád lehet, vagy az sql kifejezés nem jó.
Ha van találat, valami egyszerűbb programhibád van.
10

Nem tudom mit írjak már át

vtmk · 2014. Júl. 12. (Szo), 17.53
Nem tudom mit írjak már át sehogy sem akarja az igazat...


http://data.hu/get/7874451/forum_topik.rar
11

Más se

Vilmos · 2014. Júl. 12. (Szo), 23.56
A Mágiügyi Minisztérium egyből megoldaná. Sajnos nem foglalkoznak mugli ügyekkel.
12

Kössz

vtmk · 2014. Júl. 13. (V), 12.54
Kössz