Sql eenmalige insert?
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
$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
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.
}
?>
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