Sql eenmalige insert?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ocirina Ocirina

Ocirina Ocirina

19/02/2011 19:38:15
Quote Anchor link
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.


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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.
}
?>
Gewijzigd op 19/02/2011 19:38:52 door Ocirina Ocirina
 
PHP hulp

PHP hulp

08/01/2025 19:20:04
 
Mitchel V

Mitchel V

19/02/2011 19:40:32
Quote Anchor link
misschien slim om heel je script te gegeven?
$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
 
- SanThe -

- SanThe -

19/02/2011 19:54:01
Quote Anchor link
Zeer vage code lijkt mij.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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.
}
?>
 
Ocirina Ocirina

Ocirina Ocirina

20/02/2011 01:23:14
Quote Anchor link
Wat moet ik dan gebruiken ipv de while?
En waarom vage code?
 
- SanThe -

- SanThe -

20/02/2011 09:45:01
Quote Anchor link
Ocirina - op 20/02/2011 01:23:14:

En waarom vage code?


Zie het commentaar in de code.
 
Noppes Homeland

Noppes Homeland

20/02/2011 09:48:21
Quote Anchor link
je kan het af met 1 query insert on duplicate update en uiteraard fatsoenlijk foutafhandeling
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.