Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Ranking
Forum PHP.pl > Forum > Bazy danych > MySQL
lukasz2006
Witam

robię ranking i mam pewien problem.

zrobiłem tabelę 'ranking' w której są pola: 'id' 'dj' i 'punkty'

kod strony z rankingiem:

Kod
<table>
<tr><td width='120'>  <center> DJ </center>  </td><td width='50'>  <center> Głosów  </center> </td> <td width='50'> </td>   </tr>

<?</P> <P>$query = "SELECT dj, punkty FROM ranking ORDER by punkty DESC LIMIT 5 ";
$result = mysql_query($query);</P> <P>while($row = mysql_fetch_array($result, MYSQL_ASSOC))</P> <P>{</P> <P>echo "       <table></P> <P> </P> <P><tr><td width='120'> </P> <P> {$row['dj']}  
</td>
<td width='50'> <center>  {$row['punkty']} </center>  </td></P> <P><td width='50'> <center> <a href='add.php'>Głosuj</a> </td></P> <P>
</tr></P> <P></table>
";
}
  
   ?>


plik add.php

Kod
<?php
$host="xxx";
$db_user="xxx";
$db_password="xxx";
$database="xxx";</P> <P>$connection = @mysql_connect($host, $db_user, $db_password) or die ('Brak poł?czenia z baz? MySQL');
$db = @mysql_select_db($database, $connection) or die ('Nie mogę poł?czyć się z baz? danych');
mysql_query("SET NAMES utf8;");
?>
<?php
mysql_query("UPDATE ranking SET punkty = punkty+1 ");

echo " Głos został oddany ";
?>


ranking wygląda tak:

DJ Punkty
-------------------------
DJ1 3 Głosuj
DJ2 2 Głosuj
DJ3 1 Głosuj
DJ4 1 Głosuj
..... ... .......

Problem polega na tym, że gdy klikne na Głosuj to we wszystkich rekordach w polu 'punkty' zostaje dodany 1 punkt.

Co muszę zmienić?
vokiel
UPDATE ranking SET punkty = punkty+1 where ID = questionmark.gif
Musisz przede wszystkim określić czyje punkty chcesz zmieniać

Miejsca edycji:
1. SELECT id,dj, punkty FROM ranking ORDER by punkty DESC LIMIT 5
2. add.php?id={$row['id']}
add.php
3. $id = intval($_GET['id'])
4. UPDATE ranking SET punkty = punkty+1 where ID = $id

Sam dopasuj w kodzie miejsca edycji :-)
lukasz2006
Dodałem to co napisałeś.

Teraz kod wygląda tak:

Kod
<table>
<tr><td width='120'>  <center> DJ </center>  </td><td width='50'>  <center> Głosów  </center> </td> <td width='50'> </td>   </tr>

<?</P> <P>$query = "SELECT id, dj, punkty FROM ranking ORDER by punkty DESC LIMIT 5 ";
$result = mysql_query($query);</P> <P>while($row = mysql_fetch_array($result, MYSQL_ASSOC))</P> <P>{</P> <P>echo "       <table></P> <P> </P> <P><tr><td width='120'> </P> <P> {$row['dj']}  
</td>
<td width='50'> <center>  {$row['punkty']} </center>  </td></P> <P><td width='50'> <center> <a href='add.php?id={$row['id']}'>Głosuj</a> </td></P> <P>
</tr></P> <P></table>
";
}
  
   ?>


add.php

Kod
<?php
$host="xxx";
$db_user="xxx";
$db_password="xxx";
$database="xxx";</P> <P>$connection = @mysql_connect($host, $db_user, $db_password) or die ('Brak poł?czenia z baz? MySQL');
$db = @mysql_select_db($database, $connection) or die ('Nie mogę poł?czyć się z baz? danych');
mysql_query("SET NAMES utf8;");
?>
<?php

$id = intval($_GET['id'])

mysql_query("UPDATE ranking SET punkty = punkty+1 WHERE id = $id ");

echo " Głos został oddany ";
?>


Teraz po naciscięciu na Głosuj wywala błąd:

Kod
Parse error: syntax error, unexpected T_STRING in /*****/add.php on line 20
erix
Czy moglibyście obaj używać (prawidłowego) bbcode...?

Cytat
Teraz po naciscięciu na Głosuj wywala błąd:

Odpal sobie jakieś IDE ze sprawdzaniem składni.
vokiel
Błędy składniowe mógłbyś już sam odnajdywać...
  1. <?php
  2. // średnik po
  3. $id = intval($_GET['id']);
  4. ?>


@erix racja, już się poprawiam
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.