Für ein Datensatz einen Wert ändern

26toto26

Mitglied
Hallo an alle,

ich habe ein Problem...

Ich möchte nach drücken eines Links (dieser ist der der mir auch die meisten Besucher sendet) den Wert "count" um eins kleiner machen. Leider erzeugt mein Script bei allen Daten in der Tabelle den Wert um -1.

Wie finde ich die richtige Zeile

PHP:
// Verbindung zum MySQL-Server aufbauen
$db = mysql_connect($host, $user, $pass);
mysql_select_db($datab, $db);

$sql = "SELECT * FROM $table ORDER BY `result` DESC LIMIT 0,1";
$result = mysql_query($sql) OR die(mysql_error());
$row = mysql_fetch_assoc($result);
$ergeb = "UPDATE $table SET count = count -1 ";
$resu = @mysql_query($ergeb);

Header("Location: " . $row['url']);

Danke und Gruß

Toto
 
Dir fehlt eine Bedingung damit es nur einen Datensatz betrifft.
Dabei musst du natürlich irgendwie eine Bedingung übergeben, üblicherweise ist das eine ID.

SQL:
UPDATE `table` 
SET count = count - 1
WHERE id = '1'
 
Hallo Felix,

danke für die schnelle Antwort.
Wie finde ich die richtige ID?

Ich habe ja mit
PHP:
$sql = "SELECT * FROM $table ORDER BY `result` DESC LIMIT 0,1";
$result = mysql_query($sql) OR die(mysql_error());
$row = mysql_fetch_assoc($result);

den Datensatz mit dem höchsten Wert aus meinen Datensatz gesucht.
mit

PHP:
$ergeb = "UPDATE $table SET count = count -1 WHERE username ='$username'";

geht es leider nicht

Gruß
Toto
 
ich möchte damit ein Besucher tausch machen

Bei eingehenden Besuchern wird der Wert um eins rauf gesetzt. Geht auch ohne Probleme. Wenn der User einen Besucher von mir bekommt soll der Wert um eins runter gesetzt werden. Dafür habe ich dieses Script

PHP:
// Verbindung zum MySQL-Server aufbauen
$db = mysql_connect($host, $user, $pass);
mysql_select_db($datab, $db);

$sql = "SELECT * FROM $table ORDER BY `result` DESC LIMIT 0,1";
$result = mysql_query($sql) OR die(mysql_error());
$row = mysql_fetch_assoc($result);
$ergeb = "UPDATE $table SET count = count -1";
$resu = @mysql_query($ergeb);

Header("Location: " . $row['url']);

Leider werden alle Datensätze in der DB um eins runtergesetzt...

Wie bekomme ich den richtigen Wert für die Where Anweisung
 
PHP:
$ergeb = "UPDATE $table SET count = count -1 WHERE url = '".$row['url']."'";

Versuch es einmal so.
 
Zurück