Opzoeken en updaten

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Nico V.

Nico V.

06/09/2007 14:45:00
Quote Anchor link
hallo, ik heb een tabel links, die ziet er als volgt uit:

id <-- key
link
tekst
omschrijving
categorie

En categorie is een categorie id uit een andere tabel, maar dat is niet bijzonder belangrijk. Ik wil als ik een query uitvoer om een categorie te verwijderen dat de categorie uit de tabel links naar '0' word gezet. ik heb nu de volgende query:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php

$id
= $_GET['id'];


$query = "UPDATE links SET categorie = '0' WHERE id = $id";
mysql_query($query) or die (mysql_error());

?>


maar hoe regel ik nou dat er word gekeken of de categorie $id is en vervolgens de regels waar dit het geval is veranderen zodat categorie '0' is

Vriendelijke groet, nico
 
PHP hulp

PHP hulp

27/04/2024 06:12:41
 
Matthijs

matthijs

06/09/2007 15:11:00
Quote Anchor link
Probeer dit eens:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$query
= "UPDATE links SET categorie='0' WHERE id='" . $id . "'";
?>
 
Joren de Wit

Joren de Wit

06/09/2007 15:18:00
Quote Anchor link
Dit hoor je niet handmatig te doen, maar automatisch te laten gebeuren door het instellen van de juiste foreign key constraints.

Zorg dat je een foreign key constraint aanbrengt op het id uit de categorieen tabel en de categorie uit de links tabel. Geef dit constraint bijvoorbeeld een ON DELETE SET NULL mee en zodra jij een categorie verwijderd wordt het id in de links tabel autmatisch geupdate.
 
- SanThe -

- SanThe -

06/09/2007 15:21:00
Quote Anchor link
$query = "UPDATE links SET categorie = 0 WHERE categorie = $id";
 
Frank -

Frank -

06/09/2007 15:32:00
Quote Anchor link
Het is al gezegd, maar dit kun je uitsluitend met een foreign key doen. Alle andere 'oplossingen' kunnen grandioos mislukken met als gevolg dat je de database (inhoud) naar de klote helpt.

In MySQL ben je dus verplicht om innoDB te gebruiken, dat is de enige engine van MySQL waarmee je een relationele database kunt opzetten. Bij de overige engines hangen de diverse tabellen als los zand aan elkaar. Daar kun je dus niet op vertrouwen.
 



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.