Sql eenmalige insert?
Ik heb een pageview script gemaakt.
Als er nog niks in de db. staat insert hij het ip etc..
Wanneer ik via een andere pc(anderip)dit script laat werken insert er niks in de db?
Maar echter, als ik de aantal bekeken wil update via de eerste browser werkt het wel.
Of terwijl als er 1 record in de db ge-insert is. Insert hij(geen nieuwe)niks meer, maar update wel.
Als er nog niks in de db. staat insert hij het ip etc..
Wanneer ik via een andere pc(anderip)dit script laat werken insert er niks in de db?
Maar echter, als ik de aantal bekeken wil update via de eerste browser werkt het wel.
Of terwijl als er 1 record in de db ge-insert is. Insert hij(geen nieuwe)niks meer, maar update wel.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
$sql = mysql_query ("SELECT ip FROM pageviews WHERE ip= '". $ip . "' OR datum= '". $datum . "'");
$controle = mysql_fetch_array($sql);
if($controle != 0) // Kijken of deze bezoeker pagina al eens heeft bezocht.
{
$sql = mysql_query ("SELECT * FROM pageviews WHERE ip='". $ip . "' OR datum='". $datum . "'");
while ($row = mysql_fetch_assoc($sql))
{
$naantal = $row['o_bekeken'] + 1;
}
mysql_query("UPDATE pageviews SET o_bekeken = '". $naantal ."' WHERE ip = '".$ip."' AND datum = '".$datum."' "); //ja + o_bekeken
}
else
{
mysql_query("INSERT INTO pageviews (ip, url, o_bekeken, datum) VALUES ('" . $ip . "', '" . $hpagina . "', '1', '". $datum . "')"); // Nee, update de db, zet er nieuwe gegevens in.
}
?>
$sql = mysql_query ("SELECT ip FROM pageviews WHERE ip= '". $ip . "' OR datum= '". $datum . "'");
$controle = mysql_fetch_array($sql);
if($controle != 0) // Kijken of deze bezoeker pagina al eens heeft bezocht.
{
$sql = mysql_query ("SELECT * FROM pageviews WHERE ip='". $ip . "' OR datum='". $datum . "'");
while ($row = mysql_fetch_assoc($sql))
{
$naantal = $row['o_bekeken'] + 1;
}
mysql_query("UPDATE pageviews SET o_bekeken = '". $naantal ."' WHERE ip = '".$ip."' AND datum = '".$datum."' "); //ja + o_bekeken
}
else
{
mysql_query("INSERT INTO pageviews (ip, url, o_bekeken, datum) VALUES ('" . $ip . "', '" . $hpagina . "', '1', '". $datum . "')"); // Nee, update de db, zet er nieuwe gegevens in.
}
?>
Gewijzigd op 19/02/2011 19:38:52 door Ocirina Ocirina
misschien slim om heel je script te gegeven?
$datum.....
maak je gebruik van datetime ?
en waarom een while als je maar 1 resultaat verwacht?
$datum.....
maak je gebruik van datetime ?
en waarom een while als je maar 1 resultaat verwacht?
Gewijzigd op 19/02/2011 19:41:21 door Mitchel V
Zeer vage code lijkt mij.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
// Hiermee selecteer je iedereen die vandaag is langsgeweest
$sql = mysql_query ("SELECT ip FROM pageviews WHERE ip= '". $ip . "' OR datum= '". $datum . "'");
$controle = mysql_fetch_array($sql);
// $controle zal geen getal zijn want het is een array()
if($controle != 0) // Kijken of deze bezoeker pagina al eens heeft bezocht.
{
// Hiermee selecteer je iedereen die vandaag is langsgeweest
$sql = mysql_query ("SELECT * FROM pageviews WHERE ip='". $ip . "' OR datum='". $datum . "'");
while ($row = mysql_fetch_assoc($sql))
{
// $naantal zal de waarde hebben van het laatst gevonden record +1
$naantal = $row['o_bekeken'] + 1;
}
// Het kan zijn dat bovenstaande query's meerdere resultaten vinden
// en dat onderstaande query geen enkele match heeft
mysql_query("UPDATE pageviews SET o_bekeken = '". $naantal ."' WHERE ip = '".$ip."' AND datum = '".$datum."' "); //ja + o_bekeken
}
else
{
mysql_query("INSERT INTO pageviews (ip, url, o_bekeken, datum) VALUES ('" . $ip . "', '" . $hpagina . "', '1', '". $datum . "')"); // Nee, update de db, zet er nieuwe gegevens in.
}
?>
// Hiermee selecteer je iedereen die vandaag is langsgeweest
$sql = mysql_query ("SELECT ip FROM pageviews WHERE ip= '". $ip . "' OR datum= '". $datum . "'");
$controle = mysql_fetch_array($sql);
// $controle zal geen getal zijn want het is een array()
if($controle != 0) // Kijken of deze bezoeker pagina al eens heeft bezocht.
{
// Hiermee selecteer je iedereen die vandaag is langsgeweest
$sql = mysql_query ("SELECT * FROM pageviews WHERE ip='". $ip . "' OR datum='". $datum . "'");
while ($row = mysql_fetch_assoc($sql))
{
// $naantal zal de waarde hebben van het laatst gevonden record +1
$naantal = $row['o_bekeken'] + 1;
}
// Het kan zijn dat bovenstaande query's meerdere resultaten vinden
// en dat onderstaande query geen enkele match heeft
mysql_query("UPDATE pageviews SET o_bekeken = '". $naantal ."' WHERE ip = '".$ip."' AND datum = '".$datum."' "); //ja + o_bekeken
}
else
{
mysql_query("INSERT INTO pageviews (ip, url, o_bekeken, datum) VALUES ('" . $ip . "', '" . $hpagina . "', '1', '". $datum . "')"); // Nee, update de db, zet er nieuwe gegevens in.
}
?>
Wat moet ik dan gebruiken ipv de while?
En waarom vage code?
En waarom vage code?
Ocirina - op 20/02/2011 01:23:14:
En waarom vage code?
En waarom vage code?
Zie het commentaar in de code.
je kan het af met 1 query insert on duplicate update en uiteraard fatsoenlijk foutafhandeling




