Archief - FLASH: Delete records from database

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Morre1977

Legacy Member
Hallo,

ik vroeg me af op welke manier ik via knoppen in flash records uit mijn db kan wissen. bvbknop1 wist record 1, knop 2 wist record 2 etc ...

iemand die me op weg kan helpen hiermee ?

Gerritn

Legacy Member
Ik neem aan dat je nog met AS2 werkt?

Code:
var recordToDelete:Number = 0;

knop1_mc.onRelease = function():Void {
  recordToDelete = 1;
  getURL("delete.php?recordid=" + recordToDelete, "_blank");
}

Zoiets dus.

Morre1977

Legacy Member
en hoe ziet het php gedeelte er dan uit ?

je zegt ook iets van delete recordid. Is het niet zo dat bvb record 1 id 1 is, record 2 id 2 en record 3 id 3,
maar als ik record 2 wis dat record3 dan record 2 wordt, maar dat het id 3 blijft ?

Smoerf

Legacy Member
unk?

Je datastructuur in je db doet er nie toe, je id's kunnen van 1 naar 18 en dan naar 44, 45, 46, 93 veranderen, das gewoon een unieke key om je record te onderscheiden van die 2000 andere.

Je php gedeelte? Iets zoals dit, kunnen fouten inzitten:

PHP:
<?php
if (isset($_GET['id']) && !empty($_GET['id'])){
   $conn = mysql_connect("localhost", "root", "pass");
   $acdb = mysql_select_db("database");
   $sql = "DELETE FROM tabelnaam WHERE id = " . mysql_escape_string($_GET['id']);
   $qry = mysql_query($sql);
}
?>

Morre1977

Legacy Member
ok thx alvast ik bekijk het even en laat wel weten of het lukt ;)

Morre1977

Legacy Member
Smoerf zei:
unk?

Je datastructuur in je db doet er nie toe, je id's kunnen van 1 naar 18 en dan naar 44, 45, 46, 93 veranderen, das gewoon een unieke key om je record te onderscheiden van die 2000 andere.

dus het is toch zo dat als ik "recordToDelete = 5;" specifieer hij echt het 5de record gaat deleten, en niet het record met id 5 ?

orez

Legacy Member
Morre no offence maar ik ga uw threadtitels niet blijven aanpassen...
Je ziet toch ook zelf dat de prefixes hier niet tussen vierkante haakjes staan... Volg gewoon zoals het is.

En kvraag mij ook af waar onze prefix vBB mod naartoe is -_-

Smoerf

Legacy Member
euhm, ik stel voor dat je er eens de sql handleiding op naleest of toch minstens een kijkje neemt op w3schools...

Je bent bezig met je database te beheren vanuit een flash applicatie maar ik stel me toch vragen bij je kennis ervan...

als je het id meegeeft als querystring en die doorgeeft aan je sql instructie wordt de record met dat ID verwijderd, lijkt me redelijk logisch

"SELECT naam FROM leden WHERE id = 2"

zal de record verwijderen met id 2
"SELECT naam FROM leden LIMIT 2, 1"
zal het 2de record uitlezen uit je db

Het is echter aan te raden om bewerkingen op je data via id oid uit te voeren, want hoe weet je anders welke record op de 2de rij staat? Wat is anders het nut van databases? Je kan het evengoed opslaan in een tekstbestand en de 2de lijn verwijderen inclusief newline...

Morre1977

Legacy Member
Kan dat niet dan. Ik sorteer bvb op sleutel en ik zeg. delete record 1 dat hij dan het eerste record (TOP) gewoon delete, maakt niet uit welk id dat heeft ?

Morre1977

Legacy Member
de bedoeling is een nieuwssysteempje te bouwen. Ik kan via flash al records ingeven. die worden op hun beurt op het scherm getoverd.

dus vandaag geef ik bericht 1 in. bericht 1 komt op de eerste regel in mijn scherm te staan met daarnaast een standaard knop ( wis record 1 in db ).

Morgen geef ik bericht 2 in. bericht 2 komt op de eerste regel te staan. bericht 1 schuift naar regel 2 eronder.

regel 2 heeft ook een knop. ( wis record 2 in db )

enz

omdat bericht 2 vandaag ingegeven is, staat dat op de eerste plaats in de db.
(daarom ook de knop wis record 1 ).

Als ik dat wis komt mijn eerste record weer op de 1e plaats te staan. ( naast knop wis record 1 ).

Smoerf

Legacy Member
waarom het zo ingewikkeld maken?

in je tabel zit dit:

Code:
id    |  titel
-----+-----------
1     | test titel 1
2     | dit is titel 2
4     | dit is titel 4
5     | dit is een andere titel

Op je flash interface zie je dit
dit is een andere titel [delete]
titel 4 [delete]
titel 2 [delete]
titel 1 [delete]

de id is niet gelijk aan de positie van de record in de db, dus moet je je id meegeven aan je actie. Als je "dit is een andere titel" wilt verwijderen, roep je die functie aan en is je id 5. zo zal het record met id 5 verwijderd worden uit je db.

Morre1977

Legacy Member
ok ik ben nog wat nieuw met dbs en weet ook niet de beste manier van werken. Het is vaak nogal warrig in mijn hhoofd en dat zet ik dan ook zo op het scherm :)

ik heb nu dus een xml die het veld titel in flash inlaadt, de id laat ik weg.

hoe het dan moet. ik maak gewoon mijn xml aan MET de unieke id van de database. die laadt ik dan ook in flash in.

interface is dan bvb:

id titel

7 laatste nieuwe titel [delete]
5 dit is een andere titel [delete]
1 test titel 1 [delete]

dan zet ik op de knop de actie om het dynamische veld met het id uit te lezen en opnieuw als id van de database te zien.

goed zo ? :)

Morre1977

Legacy Member
ok ik loop tegen een nieuw probleem aan. Nu zou ik graag loadVars gaan gebruiken.

Ik heb dus om te testen een input txtveld (idField) gemaakt dat de var id naar mijn php stuurt.

Code:
var myLoadVars:LoadVars = new LoadVars();
deleteknop.onRelease = function(){
       myLoadVars.id = this.idField.text;
       myLoadVars.sendAndLoad("delete.php", myLoadVars, "POST");
       gotoAndStop(2);
}

als ik een trace doe van id geeft hij de waarde van het idField, maar hij stuurt blijkbaar het id niet goed door. moet ik de php dan ook aanpassen ?

Gerritn

Legacy Member
deleteknop>onRelease

Die > moet een . zijn, of was dit gewoon een fout door over te tikken.
en moet het zijn this.idField.text zijn?

Morre1977

Legacy Member
typfoutje ja.

en this.idField.text is goed.
de trace van id erna geeft toch de waarde van het veld

Morre1977

Legacy Member
moet ik nergens specifieren dat het nummer in het idveld een INTEGER is ?

Morre1977

Legacy Member
PHP:
<?php
if (isset($_POST['id']) && !empty($_POST['id'])){
   $connection = mysql_connect("localhost", "root", "pass");
    mysql_select_db("database");
   
    $query = "DELETE FROM tabelnaam WHERE id = " . mysql_escape_string($_POST['id']);
   $results = mysql_query($query);
}
?>

Gerritn

Legacy Member
Kijk es na of al je variabelen juist staan. Echo es je $_POST['id'] om te kijken of ie hem wel goed ontvangt in php.

Morre1977

Legacy Member
ok ik weet hoe ik die echo zet maar hoe kan ik die echo nakijken als eerst flash de waarde moet zenden ?
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan