Ik heb een SQL tabel met daarin een kolom 'id', een kolom 'title' en een kolom 'text'. De kolom met 'id' is een auto-incrementing primary key. Met het Update commando probeer ik 2 'id' met elkaar te wisselen zodat een gebruiker straks zelf een volgorde kan bepalen.

Die krijgt een form te zien met daarin de invulvelden 'swap1' en 'swap 2'. Hierin kan de gebruiker invullen welke twee 'id' er gewisseld moeten worden. In dit script...

<?php
$swap3 = $swap1;
$swap4 = $swap2;
echo"swap 3 = $swap3<br>";
echo"swap 4 = $swap4<br>";

$query = "UPDATE content SET id = $swap4 WHERE id = $swap1";
mysql_query($query) or die ("Zoekopdracht is mislukt: deel1");

$query = "UPDATE content SET id = $swap3 WHERE id = $swap2";
mysql_query($query) or die ("Zoekopdracht is mislukt: deel2");

?>


... krijg ik steeds een foutmelding, wellicht omdat 'SET id = $swap3' incorrecte syntax is. Moet ik dat fetchen? En hoe doe ik dat dan? Het idee van bovenstaand script is:

> Bewaar de waarden van 1 + 2 als 3 + 4
> Geef 1 de waarde van 3
> Geef 2 de waarde van 4
Die auto_increment kan er dus uit.


NEE zeker niet eruithalen!

je moet ziezo een ID geven aan elke row. Hier baseer je je sleutel van je tabel op. Anders zal je database op een gegeven moment ook weer in elkaar lopen.

dus alleen een kolom toevoegen zoals al eerder vermeld, verder alles met rust laten.
Verder mag ik hopen dat je mij eens verteld wat de innoDB-engine van MySQL is en hoe je de queries in een TRANSACTION zet...! ;-)
Helaas, dat ga ik niet voor je doen, dat mag je zelf uitzoeken. Ik wil je wel even een zetje in de juiste richting geven:

Wikipedia
MySQL-handleiding

Succes!

Ps. innoDB is de enige engine van MySQL die (enigzins) als relationele database bruikbaar is. De rest is volkomen onbetrouwbaar en mag de naam database (als in DBMS) eigenlijk niet hebben. Tip: Gebruik PostgreSQL, dat werkt vele malen beter en vooral veiliger.
@Frank: Heb je soms aandelen bij PostgreSQL......LoL ;-))
Die website heb ik eens gelezen maar ik heb er niet veel aan. Wij hebben geen eigen server op ons reclamebureau dus we moeten het doen met de 'gewone' MySQL die bij de meeste cheapo hostingbedrijven te krijgen zijn.

Tja en verder... mijn probleem is nog steeds niet opgelost, ik vind PHP inmiddels uitermate frustrerend en omslachtig (vergeleken bij ActionScript) om zelf te schrijven. Ik heb na uren klooien geen zin meer om me hier nog verder in te verdiepen.

Ik ben best leergierig, maar het is voor ons als bedrijf de moeite gewoon niet waard om zelf te gaan zitten prutsen, als dit al 100 keer door een ander (met meer kennis) verzonnen is. Ik installeer Joomla wel, dan kan ik tenminste meteen aan de slag met het ontwerp (CSS) zonder me druk te hoeven maken over een om zeep te helpen database.

Reageren