Jeg er ved at lave et annonceringssystem, hvor et PHP-script opdaterer et table i en MySQL-database hver gang der klikkes på en annonce, men den vil ikke opdatere.
Tabellen hedder ads, annoncens id er 1 og den linje, hvor klikkene bliver talt hedder clicks.
Kan I se hvad der er galt med scriptet?
<?php
mysql_connect("...","...","...");
mysql_select_db("...");
$clicks = mysql_fetch_array(mysql_query("SELECT clicks FROM ads WHERE id=1"));
$sql = "UPDATE ads SET clicks='$clicks + 1', WHERE id=1";
mysql_query($sql);
header( 'Location: http://miguelproductions.co.cc/' ) ;
?>
På forhånd tak.
Der er to problemer.
Det første er, at du ikke får antallet af clicks her:
$clicks = mysql_fetch_array(mysql_query("SELECT clicks FROM ads WHERE id=1"));
Du får at associativt array hvor et af elementerne (det eneste) er antallet af clicks.
Det næste er, at du har sat singlequotes omkring en værdi, som du vil have udregnet, men MySQL vil se det som en tekst streng.
Et tredje problem er, at du gør alt for meget af arbejdet, som ligeså godt kan lægges over på MySQL. Du har slet ikke brug for at vide antallet af clicks, bare lad MySQL inkrementere værdien:
mysql_query("update ads set clicks=clicks + 1 where id = 1")