scootergrisen forklarede:
> Koden er indtil videre sᅵdan her :
http://netkoder.dk/test/test0206.php
>
> I skal vᅵre velkommen til at komme med forbedringer.
Du skal naturligvis have et unikt index pᅵ url
Hvis du er ligeglad med at fᅵ at vide om siden er ratet fᅵr eller ej,
kan du bruge dette:
INSERT INTO $tablenavn (count, totalrating, url) VALUES (1, 5, '$url')
ON DUPLICATE KEY UPDATE count=count+1,totalrating=totalrating+5
Og du skal naturligvis bruge en "prepared statement"
$stmt = $mysqli->prepare("INSERT INTO $tablenavn (count, totalrating,
url) VALUES (?,?,?) ON DUPLICATE KEY UPDATE
count=count+?,totalrating=totalrating+?");
$stmt->bind_param('iisii', $count,$rating,$url,$count,$rating);
$stmt->execute();
(Jeg er faktisk ikke sikker pᅵ at man kan bind'e den samme variabel
flere gange i samme bind_param)
Jeg ville foretrᅵkke at bruge PDO i stedet for mysqli, der kan man
navngive variablene til queryet, og skal ikke skrive dem flere gange,
selvom de bruges flere gange.
$stmt=$dbh->prepare("INSERT INTO $tablenavn (count, totalrating, url)
VALUES (:count,:rating,:url) ON DUPLICATE KEY UPDATE
count=count+:count,totalrating=totalrating+:rating");
$stmt->execute(array('count' => $count,'rating' => $rating, 'url' =>
$url));
Det gᅵr queryet mere lᅵstbart at man kan bruge navne i stedet for at
skulle tᅵlle spᅵrgsmᅵlstegn.
Leif
--
Husk kᅵrelys bagpᅵ, hvis din bilfabrikant har taget den idiotiske
beslutning at undlade det.