PDA

Volledige versie bekijken : MySQL gegevens in flash map weergeven


KrisL
%Europe/Berlin %627 %2009, 16:03
Hoi allen,

Om maar met de deur in huis te vallen: ik heb ervaring met PHP, MySQL, HTML, CSS ... maar qua flash heb ik enkel ooit een basis cursus gehad, waar helaas niet al te veel van is blijven hangen.

Nu, mijn MySQL database heeft de volgende structuur:

+----+----------+----------+---------+---------+
| id | Afdeling | Server1 | Server2 | Server3 |
+----+----------+----------+---------+---------+
| 1 | Genk | online | online | online |
| 2 | Hasselt | online | online | online |
+----+----------+----------+---------+---------+"online" kan uiteraard ook "offline" worden, de verbinding wordt om de x-minuten getest d.m.v. een PHP scriptje, maar dat valt buiten mijn vraag ...

Nu wilde ik de status van deze servers grafisch voorstellen. Dus dacht ik om een kaartje van Limburg te tekenen met daarop Genk en Hasselt aangeduid. Tot hier geen probleem.

Die kaart zou ik echter willen importeren in Flash, zodat ik er buttons op kan plaatsen die van kleur veranderen, naargelang de servers op de afdeling online of offline zijn. Hier zit ik vast.

Hoe kan ik dit bekomen? Ik heb al gelezen over een XML bestand uit te lezen, maar hoe verder? In actionscript ben ik totaal niet thuis.

Het zou super zijn moest iemand me hierbij kunnen helpen of een voorbeeldje weten staan op het internet.

Alvast vriendelijk bedankt.
Kris

Midas
%Europe/Berlin %642 %2009, 16:25
Maak dan een PHP script dat de statussen opvraagt vanuit de MySQL database en laadt die variables in Flash.
http://www.google.com/search?q=php%20variables%20to%20flash

Welkom op het forum. :)

KrisL
%Europe/Berlin %655 %2009, 16:43
Bedankt Midas :)

Ik heb nu dit:

myVars = new LoadVars();
myVars.onLoad = function(success){
if(success){
trace(this.afdeling);
trace(this.server1);
trace(this.server2);
}
}
myVars.load("http://localhost/ping/output.php");


afdeling, server1 en server2 zijn mijn variabelen binnen output.php.

Hoe kan ik dit dan weergeven door bv over een knop te gaan?

Met dank.
Kris

Midas
%Europe/Berlin %672 %2009, 17:08
var servers:Array = new Array();
var myVars:LoadVars = new LoadVars();
myVars.onLoad = function(success) {
if (success) {
servers[1] = this.server1;
servers[2] = this.server2;
}
}
myVars.load("http://localhost/ping/output.php");
knop_btn.onRollOver = function() {
trace(servers[1]);
}

KrisL
%Europe/Berlin %694 %2009, 17:39
Hmmm...

Hoe ik het ook ophaal, ik krijg steeds "undefined" geprint.
Hoe moet de array binnen PHP er precies uitzien?

Met dank.
Kris

Midas
%Europe/Berlin %697 %2009, 17:44
Hoe moet de array binnen PHP er precies uitzien?
Geen array, gewoon variabelen.

KrisL
%Europe/Berlin %710 %2009, 18:03
Met een gewone variabele doet hij het ook niet:

while ($obj = mysql_fetch_object($qResult) )
{
$server1 = $obj -> Server1;
$server2 = $obj -> Server2;
}Of zie ik nu iets over het hoofd?

Met dank.
Kris

KrisL
%Europe/Berlin %772 %2009, 19:32
Ik ben ondertussen een stapje verder. In het PHP script had ik vergeten toe te voegen:

while ($obj = mysql_fetch_object($qResult) )
{
$server1 = $obj -> Server1;
$server2 = $obj -> Server2;
}

echo "server1=$server1&server2=$server2";


Hoe kan ik nu verder in Flash? De bedoeling is dat al de gebruiker met de muis over een button beweegt, hij een soort van "tooltip" te zien krijgt met de status van de server.

Met dank.
Kris

Midas
%Europe/Berlin %789 %2009, 19:56
Ben iets aan het maken... :)

KrisL
%Europe/Berlin %793 %2009, 20:02
Super, ik kijk ernaar uit! :)

Dank je.
Kris

Midas
%Europe/Berlin %807 %2009, 20:22
Ik wil wel even zeggen dat het een beter idee is 1 en 0 te gebruiken in de database ipv 'online' en 'offline'. :)

KrisL
%Europe/Berlin %808 %2009, 20:23
Dat doe ik, maar om het hier overzichtelijk te houden gebruikte ik in men eerste post "online" en "offline".

Voor online gebruik ik "1", voor offline de huidige time() zodat ik kan zien wanneer het systeem offline gegaan is.

Het gaat ook niet over servers maar over faxen, printers, switchen, routers, UPS's ...

Om een stuk van de reële database te geven:

+----+------------+----------+---------+------------+
| id | Department | Cp | Pr | Sw |
+----+------------+----------+---------+------------+
| 1 | 123 | 1 | 1 | 1247995044 |
| 2 | 789 | 1 | 1 | 1 |
+----+------------+----------+---------+------------+
Toch bedankt voor de tip ;)

Kris

Midas
%Europe/Berlin %825 %2009, 20:48
Klaar [:o)]

KrisL
%Europe/Berlin %826 %2009, 20:50
Super, bedankt Midas!
Ik ga het meteen bekijken :)

Kris

KrisL
%Europe/Berlin %841 %2009, 21:12
Oei oei, je hebt rekening gehouden met de online/offline. Ik zie dat ik beter onmiddellijk de hele database structuur had moeten weergeven. :)

Is het ook mogelijk om zo per punt (punt = een afdeling), in een popupje weer te geven of de fax, printer, switch ... online of offline is?

Met dank.
Kris

Midas
%Europe/Berlin %847 %2009, 21:19
Is het ook mogelijk om zo per punt (punt = een afdeling), in een popupje weer te geven of de fax, printer, switch ... online of offline is?
Maak in Flash een array met je punten:
var points:Array = new Array("fax", "printer", "switch");
tip.caption.text = points[this.id] + " [" + servers[this.id] + "]";

KrisL
%Europe/Berlin %865 %2009, 21:45
Men excuses voor de wellicht domme vraag, maar waar dien ik het juist te plaatsen?

Met dank.
Kris

Midas
%Europe/Berlin %885 %2009, 22:15
attachMovie("tooltip", "tip", 1);
tip._visible = false;
tip.onEnterFrame = function() {
this._x = _xmouse;
this._y = _ymouse;
}
var points:Array = new Array("fax", "printer", "switch");
var servers:Array = new Array();
var myVars:LoadVars = new LoadVars();
myVars.onLoad = function(success) {
if (success) {
servers[1] = this.server1;
servers[2] = this.server2;
servers[3] = this.server3;
}
}
myVars.load("kris.php");
for (var i:Number = 1; i <= 3; i++) {
this["point" + i].id = i;
this["point" + i].onRollOver = function() {
tip._visible = true;
tip.caption.text = points[this.id] + " [" + servers[this.id] + "]";
}
this["point" + i].onRollOut = function() {
tip._visible = false;
}
}