check of row al bestaat in de database
ik ben bezig met een functie binnen de website waarbij je favorieten kan toevoegen in de database. maar hoe zorg ik ervoor dat je een favoriet alleen maar kan toevoegen aan de database als deze nog niet in de database staat.
zoiets had ik in gedachte
Code (php)
alvast bedankt
Henk de Vries op 15/03/2012 14:33:38:
.... maar hoe zorg ik ervoor dat je een favoriet alleen maar kan toevoegen aan de database als deze nog niet in de database staat ....
Het databaseveld UNIQUE maken.
id, naam, link
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
$row = "dat_ding_dat_je_bedoelt";
$query = mysql_query("SELECT link FROM tabel")
while ($rij = mysql_fetch_row(@query))
{
if ($row!=$rij[0])
{
mysql_query("INSERT INTO tabel etcc......")
}
}
?>
$row = "dat_ding_dat_je_bedoelt";
$query = mysql_query("SELECT link FROM tabel")
while ($rij = mysql_fetch_row(@query))
{
if ($row!=$rij[0])
{
mysql_query("INSERT INTO tabel etcc......")
}
}
?>
bijvoorbeeld
persoon1 - voegt fiets met id 30 toe aan favorieten
persoon2 - voegt fiets met id 30 toe aan favorieten
Code (php)
1
2
3
4
5
6
2
3
4
5
6
CREATE TABLE
user_favs (
user_id INT(11),
fav_id INT(11),
PRIMARY KEY (user_id, fav_id))
ENGINE = INNODB
user_favs (
user_id INT(11),
fav_id INT(11),
PRIMARY KEY (user_id, fav_id))
ENGINE = INNODB
Toevoeging op 15/03/2012 14:51:58:
Henk de Vries op 15/03/2012 14:47:55:
ok maar krijg ik dan niet het probleem dat als een andere user hetzelfde product wil toevoegen, dat deze dan een foutmelding krijgt?
bijvoorbeeld
persoon1 - voegt fiets met id 30 toe aan favorieten
persoon2 - voegt fiets met id 30 toe aan favorieten
bijvoorbeeld
persoon1 - voegt fiets met id 30 toe aan favorieten
persoon2 - voegt fiets met id 30 toe aan favorieten
Als je het op bovenstaande manier oplost niet
@Albert: Op jouw manier wordt het een puinhoop. Stel dat de SELECT 100 records vindt waarvan één de inhoud heeft van $row. Dan doe jij 99 keer een INSERT.
mijn tabel heeft 3 velden.
id (auto increment)
user_id (hier komt het id van de user)
product_id (hier komt het id van het product)
op het moment kan een gebruiker oneindig vaak hetzelfde product toevoegen aan de lijst, wat de database heel erg vol gooit. Ik wil het graag zo hebben dat de gebruiker maar 1x bijv het product fiets kan toevoegen. niet vaker.
andere gebruikers maken gebruik van dezelfde tabel.
voorbeeld in tabel:
id | user_id | product_id
1 | 76 | 87
2 | 43 | 45
Gewijzigd op 15/03/2012 15:02:30 door Henk de Vries
Je kan ook user_id en product_id samen UNIQUE maken.
Daarna bij je insert statement een ignore keyword toevoegen. Hiermee onderdruk je de waarschuwing als een gebruiker het twee keer probeert en het record wordt niet ingeveoegd door de unique key. Daarna het aantal aangepaste rijen controleren en je weet of er een record is ingevoegd of niet.
- SanThe - op 15/03/2012 14:56:20:
@Albert: Op jouw manier wordt het een puinhoop. Stel dat de SELECT 100 records vindt waarvan één de inhoud heeft van $row. Dan doe jij 99 keer een INSERT.
sorry klopt idd haha....
stomme fout
ik heb het voor elkaar hartstikke bedankt!