21. april 2004 - 09:57Der er
20 kommentarer og 1 løsning
gem og hent fra mysql
jeg har en mysql tabel med navnet download, indeholdene punkterne "ip" og "tal". jeg skal bruge en funktion der kan gemme : ip under ip og lægge 1 til "tal" sådan at hvis den bliver oprettet står der 1.
en anden funktion skal trække 1 fra "tal", og gemme dette hvis brugerens ip findes i tabellen.
Ved ikke om det er sjovt, men jeg kan ikke finde noget dokumentation (og dev.mysql.com er belejligt nok nede) på den syntax. Og hvis han nogensinde kommer til at arbejde med andre databaser end mysql, så virker den slags jo ikke.
Jeg vil til enhvertid fortrække at bruge det der ligner/er standarden, så kan man jo altid bevist lave et valg hvis man bryder den.
Ja, men jeg kunne godt tænke mig at se i dokumentationen. Hvis det ikke står der, så kan det jo tænkes at det noget der kunne forsvinde igen ved nye versioner.
Anyway, det må være simon der tager den beslutning :)
undskyld havde glemt at skrive at jeg er dum til php, men i kort form vil jeg have :
funktion 1 åben database if $ip exist i tabel then skal der bare ligges en til $tal under den ip } else{ $ip = $_SERVER[REMOTE_ADDR]; opret ny linie i tabel hvor ip = $ip og tal = 1 } luk database
funktion 2 åben database if ip exist i tabel og tal > 0 { der skal trækkes en fra tal i tabellen load side //kan jeg godt } else{ echo "access denied"; } luk database
$ip = $_SERVER['REMOTE_ADDR']; $res = mysql_query("UPDATE download SET tal=tal+1 WHERE ip='$ip'") or die(mysql_error());
if( mysql_affected_rows($res) == 0 ) { mysql_query("INSERT INTO download(ip,tal) VALUES('$ip',1)") or die(mysql_error()); }
funktion2: $ip = $_SERVER['REMOTE_ADDR']; $res = mysql_query("SELECT 1 FROM download WHERE ip = '$ip' AND tal > 0") or die(mysql_error()); if( $row = mysql_fetch_row($res) ) { mysql_query("UPDATE download SET tal=tal-1 WHERE ip = '$ip'") or die(mysql_error()); } else { echo "Access denied"; }
den melder om fejl i kommandoen if( mysql_affected_rows($res) == 0 ) { den skriver : Warning: mysql_affected_rows(): supplied argument is not a valid MySQL-Link resource findes der en anden løsning ?
$res = mysql_query("UPDATE download SET tal=tal+1 WHERE ip='$ip'") or die(mysql_error());
if( mysql_affected_rows($res) == 0 ) { mysql_query("delete from download where ip = '$ip'"); mysql_query("INSERT INTO download(ip,tal) VALUES('$ip',1)") or die(mysql_error()); }
for ellers skriver den en ny linie hver gang :/ så det ser således ud : 192.168.0.1 | 1 192.168.0.1 | 2 192.168.0.1 | 3 192.168.0.1 | 4 og det er jo ikke det der er meningen ...
prøv at skrive $res ud, sådan i stil m ed print "res: $res<br/>"; før den if-sætning
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.