Temat: flex + mysql

Witam,
Do kontrolki DataGrid wczytuje dane z MySQL przy pomocy AmfPHP. O
ile wczytywanie nie jest jakimś poważnym problemem (chociaż
podejrzewam, że da się to prościej zrobić) to ponowny zapis do
bazy już sprawia mi problem.

public function viewStatus() {
$query = 'SELECT * FROM `tabela`';
$result = mysql_query($query);
$re = '';
while($content = mysql_fetch_assoc($result)) {
$re .= ''.$content["id"].''.$content["name"].'';
}
$re .= '';
$re = new SimpleXMLElement($re);
return $re;
}


mx:RemoteObject id="admin" fault="faultHandler(event)"
showBusyCursor="true" source="flex.admin" destination="amfphp"
mx:method name="viewStatus" result="resultalt(event)" /
/mx:RemoteObject
...
private function resultalt(evt:ResultEvent):void {
content.text = evt.message.body.toString();
var resultXML:XML = new XML(evt.result);
dg.dataProvider = resultXML.row;
}
...
mx:DataGrid id="dg" editable="true"
mx:columns
mx:DataGridColumn headerText="id" dataField="id" editable="false"
/
mx:DataGridColumn id="dgc_name" headerText="Name" dataField="name"
editable="false" /
/mx:columns
/mx:DataGrid


Chciałbym aby była możliwość zapisu danych do bazy po edycji
przez kontrolkę DataGrid.
PS.Jest jakiś prostszy sposób na sczytanie danych ?
Michał Zwoliński

Michał Zwoliński vojo w języku
esperanto to droga
:)

Temat: flex + mysql

Jeśli używasz amfphp to nie konwertuj danych z bazy do XML. Do DataGrid wrzuć tablicę, którą otrzymałeś po sfetchowaniu rekordów z bazy danych. Cała idea amf polega na przesyłaniu danych bez zmiany ich typu.

Jeśli leci tablica array z php to dostajesz Array w AS i odwrotnie. Taką tablicę śmiało możesz wrzucić do dataProvidera.

Później po edycji danych w DataGrid wyciągnij to co jest w dataProviderze i wyślij to do php. Zdaje się, że dane są w dataProviderze zmieniane na bieżąco.

Kolejnym etapem jest iteracja po tablicy, którą dostajesz masz już w php i jedziesz po kolei update'y.

Dobrym rozwiązaniem jest event po zmianie danej i wysłanie paczki do zmiany dotyczącej tylko jednego rekordu. Jeden wpis jeden update.

Mam nadzieje, że pomogłem. :)

Temat: flex + mysql

Dzięki wielkie :) Teraz wydaje się to o wiele łatwiejsze :D
Łukasz Błachowicz

Łukasz Błachowicz codziennie wymiatam
i odkurzam

Temat: flex + mysql

Wykorzystaj event ITEM_EDIT_END czy jakos tak, przeslij zmieniony obiekt, ten ktory został edytowany. Przesyłanie całego dataProvider nie ma zbytniego sensu.

i od razu mała uwaga:
http://mooska.flashzone.pl/blog/2007/09/17/cs3-datagri...

Następna dyskusja:

ADOBE FLEX i MySQL - proble...




Wyślij zaproszenie do