Ok.
Poszukałem, popróbowałem i teraz mam coś takiego:
W head:
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script> <script type="text/javascript"> function plus(id){
$("#plus").load("vote.php?jak=plus&id="+id);
}
function minus(id){
$("#plus").load("vote.php?jak=minus&id="+id);
}
wywołuję to przy pomocy:
echo '<a href="java script:plus('."'".$row['id']."'".')">plus</a>'; echo ' <b id="plus">'.$row['ocena'].'</b> '; echo '<a href="java script:minus('."'".$row['id']."'".')">minus</a>';
Oczywiście ten fragment jest w pętli i jest wiele takich elementów.
Jeśli zaś chodzi o kod pliku vote.php, wygląda on tak:
include 'config.php'; // łączenie z bazą danych
$ip = $_SERVER['REMOTE_ADDR'];
$id = $_GET['id'];
$ip_sql=mysql_query("SELECT ip FROM adresy WHERE plik='$id' and ip='$ip'");
if ($count == 0)
{
if ($_GET['jak'] == 'plus')
{
mysql_query("UPDATE tekst SET ocena=ocena+1 WHERE id = '$id'"); mysql_query("INSERT INTO adresy VALUES('', '$id', '$ip')"); $query = mysql_query("SELECT ocena FROM tekst WHERE id = '$id'"); }
if ($_GET['jak'] == 'minus')
{
mysql_query("UPDATE tekst SET ocena=ocena-1 WHERE id = '$id'"); mysql_query("INSERT INTO adresy VALUES('', '$id', '$ip')"); $query = mysql_query("SELECT ocena FROM tekst WHERE id = '$id'"); }
}
else
{
echo 'już oddałeś głos!'; }
Całość działa świetnie, ale tylko wtedy, gdy jest tylko jeden rekord w pętli. Jeśli jest kilka, to działa tylko pierwszy.
To znaczy, przy reszcie zmieniają się wartości, ale dopiero po przeładowaniu to widać, natomiast przy pierwszym wywala informację 'już oddałeś głos'.
Może mi ktoś z tym pomóc?