UPDATE met loop
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
if ($_POST["toevoegen"]) {
$tabel = $_POST["tabel"];
$woord = $_POST["woord"];
$nieuwwoord = $_POST["nieuwwoord"];
$sql = "SELECT * FROM $tabel WHERE Zoekwoorden LIKE '%$woord%'";
$result = mysql_query($sql);
while ($row = mysql_fetch_array($result)) {
$inhoud = "".$row['Zoekwoorden']."$nieuwwoord";
$sql_update = "UPDATE Filmpjes SET Zoekwoorden = '$inhoud' WHERE Zoekwoorden LIKE '%$woord%'";
mysql_query($sql_update);
}
}
$tabel = $_POST["tabel"];
$woord = $_POST["woord"];
$nieuwwoord = $_POST["nieuwwoord"];
$sql = "SELECT * FROM $tabel WHERE Zoekwoorden LIKE '%$woord%'";
$result = mysql_query($sql);
while ($row = mysql_fetch_array($result)) {
$inhoud = "".$row['Zoekwoorden']."$nieuwwoord";
$sql_update = "UPDATE Filmpjes SET Zoekwoorden = '$inhoud' WHERE Zoekwoorden LIKE '%$woord%'";
mysql_query($sql_update);
}
}
De bedoeling is dat er in de kolom 'Zoekwoorden' nieuwe zoekwoorden toegevoegd moeten worden. De woorden die al in die kolom staan moeten er blijven staan, er moet dus alleen wat nieuws bij. Stel dat een aantal rijen in de kolom 'zoekwoorden' het woord 'patat' hebben staan, en ik wil dat in iedere rij waar dat staat het woord 'friet' toevoegen.
Ik heb al uren zitten klungelen met de code, maar het wil niet vlotten. Het nieuwe woord wordt wel aan de kolom toegevoegd, maar de overige zoekwoorden die al in de kolom staan worden overal vervangen door de overige zoekwoorden in van eerste kolom. Dus als voorbeeld:
Zoekwoorden kolom 1 = patat, mayonaise, appelmoes
kolom 2 = patat, curry, appelmoes
kolom 3 = patat, pindasaus, ketchup
wordt als ik deze code gebruik om 'friet' toe te voegen:
kolom 1 = patat, mayonaise, appelmoes, friet
kolom 2 = patat, mayonaise, appelmoes, friet
kolom 3 = patat, mayonaise, appelmoes, friet
Wat doe ik verkeerd?
Gewijzigd op 01/01/1970 01:00:00 door Marlies Maalderink
Quote:
Je slaat meerdere zoekwoorden op in 1 veld. Dat is niet juist en duidt op een incorrect datamodel...Wat doe ik verkeerd?
Je hoort namelijk voor elk zoekwoord een apart record aan te maken dat je via een koppeltabel aan een filmpje koppelt. Op die manier is het toevoegen van zoekwoorden ook heel eenvoudig, je maakt namelijk gewoon een nieuw record aan...
Dus:
filmpjes
----------
id
,,,
zoekwoorden
zoekwoorden
----------------
id
zoekwoord
filmpjes_zoekwoorden
--------------------------
id_filmpje
id_zoekwoord
Dit lijkt wat ingewikkeld, maar een paar foreignkey's doen wonderen en maken vervolgens de boel een heel stuk sneller en flexibeler.
In MySQL zul je wel de innoDB-engine moeten gebruiken, maar dat is toch al de enige engine die bruikbaar is.
Kortom, even normaliseren.
Edit: Dat zeg ik.... we zijn het weer aardig met elkaar eens, zoals wel vaker het geval is ;)
Gewijzigd op 01/01/1970 01:00:00 door Frank -
Heel erg bedankt!
pgFrank schreef op 01.11.2007 11:35:
Het datamodel is niet goed, gebruik een aparte tabel om de zoekwoorden op te slaan en een koppeltabel tussen 'filmpjes' en de tabel 'zoekwoorden' om zo per film een verband tussen de zoekwoorden te kunnen leggen.
Dit lijkt wat ingewikkeld, maar een paar foreignkey's doen wonderen en maken vervolgens de boel een heel stuk sneller en flexibeler.
In MySQL zul je wel de innoDB-engine moeten gebruiken, maar dat is toch al de enige engine die bruikbaar is.
Kortom, even normaliseren.
Edit: Dat zeg ik.... we zijn het weer aardig met elkaar eens, zoals wel vaker het geval is ;)
Dit lijkt wat ingewikkeld, maar een paar foreignkey's doen wonderen en maken vervolgens de boel een heel stuk sneller en flexibeler.
In MySQL zul je wel de innoDB-engine moeten gebruiken, maar dat is toch al de enige engine die bruikbaar is.
Kortom, even normaliseren.
Edit: Dat zeg ik.... we zijn het weer aardig met elkaar eens, zoals wel vaker het geval is ;)
Je vergat je standaard link! :P
Jurgen schreef op 01.11.2007 12:13:
Ik had gehoopt dat Bas een automatische link naar deze fraaie tutorial maakt zodra het woord 'normaliseren' valt. We zullen nog even geduld moeten hebben!Je vergat je standaard link! :P