Anleitung | PHP, MySQL, Actionscript / „Tischreservierung“

Diskutiere mit über: Anleitung | PHP, MySQL, Actionscript / „Tischreservierung“ im Flash and Actionscript Forum

  1. sevY

    sevY Thread Starter Gast

    Hi,

    in Flashforum.de hat jemand nach einer Lösung für das Verwalten einer Tischkarte und der Reservierungen für ein Restaurant gefragt.

    Mit diesem Lösungansatz kann vielleicht der ein oder andere etwas anfangen.



    Auf Flashdetection, Preloader, dynamisches Instanzieren habe ich jetzt mal verzichtet, da das ja jedem bekannt sein sollte… und dynamisch Instanzieren der TischInstanzen macht ja auch nicht unbedingt Sinn…

    In der SWF sind 5 Tische, eine ComboBox mit freien Tischen, sowie ein Reservierungsbutton. Wenn das jetzt einige Testen, ist das Restaurant ruckzuck voll… daher zum Testen noch ein Reset All Button, der alles wieder zurücksetzt.
    Um die Änderungen zu sehen, müsst ihr einfach refreshen… oder jemand bastelt in das Script eine Funktion, die alles reinitialisiert. Hatte ich grad keine Lust zu, ich hoffe es sei mir verziehen.

    Ok, fangen wir mit dem MySQL Table an.

    PHP:
    //MySQL 4.0
    CREATE TABLE `tablecheck` (
      `
    idsmallint(5unsigned NOT NULL auto_increment,
      `
    timestamptimestamp(14NOT NULL,
      `
    tablenumbersmallint(3unsigned NOT NULL default '0',
      `
    checkedtinyint(1unsigned NOT NULL default '0',
      
    PRIMARY KEY  (`id`),
      
    UNIQUE KEY `timestamp` (`timestamp`)
    TYPE=MyISAM AUTO_INCREMENT=;


    INSERT INTO `tablecheckVALUES (12004090901123810);
    INSERT INTO `tablecheckVALUES (22004090901124920);
    INSERT INTO `tablecheckVALUES (32004090901125830);
    INSERT INTO `tablecheckVALUES (42004090901130640);
    INSERT INTO `tablecheckVALUES (52004090901131750);
    Die PHP, die das ganze ausliest, sieht so aus:

    PHP:
    <?php
    require_once('config.inc.php');
    $i=1;
    $read=mysql_query("select * from $db_tab order by id asc",$handler);
    while(
    $a=mysql_fetch_array($read))
        {
        
    $result.='&id_'.$i.'='.$a['id'];
        
    $result.='&tablenumber_'.$i.'='.$a['tablenumber'];
        
    $result.='&checked_'.$i.'='.$a['checked'];
        
    $i++;
        }
    $result.='&repeats='.$i;
    echo 
    utf8_encode($result);
    ?>
    Die PHP Datei, die eine Reservierung vornimmt…

    PHP:
    <?php
    require_once('config.inc.php');
    mysql_db_query($db_dbase,"update $db_tab set checked='1' where id='$_POST[id]'");
    ?>
    Zum Reset…

    PHP:
    <?php
    require_once('config.inc.php');
    mysql_db_query($db_dbase,"update $db_tab set checked='0' where checked='1'");
    ?>
    Die Config mit dem Handler…

    PHP:

    <?php
    $db_host
    ='';
    $db_login='';
    $db_pass='';
    $db_dbase='';
    $handler=
    mysql_connect($db_host,$db_login,$db_pass);
    mysql_select_db($db_dbase,$handler);
    $db_tab='tablecheck';
    ?>

    Und das Actionscript steht komplett im ersten Frame und sieht wie folgt aus:

    PHP:
    //Actionscript 1.0
    //Prototype zur einfacheren Farbvergabe
    MovieClip.prototype.setColor=function(colour
        {
        
    newColor=new Color(this);
        
    newColor.setRGB(colour);
        };
        
    //Reservierungen auslesen und verarbeiten
    var check=function()
        {
        var 
    checkRes=new LoadVars();
        
    checkRes.object=this;
        
    checkRes.load('query.php');
        
    checkRes.onLoad=function(success)
            {
            if(
    success)
                {    
                for(var 
    i=1;i<this.repeats;i++)
                    {
                    var 
    table=_root['t'+i];
                    
    table.tablenr.text=this['tablenumber_'+i];
                    if(
    this['checked_'+i]==1)
                        {                
                        
    table.setColor('0x9f9f9f');
                        
    table.checked=true;
                        }
                    else
                        {                
                        
    _root.freetable.addItem(this['tablenumber_'+i],this['id_'+i]);                
                        }
                    }        
                
    delete this.object['checkRes'];
                }
            };
        };
        
    //Reservieren
    _root.res.onRelease=function()
        {
        var 
    reservation=new LoadVars();
        
    reservation.object=this;
        
    reservation.id=_root.freetable.getSelectedItem().data;
        
    reservation.sendAndLoad('update.php',reservation,'POST');
        
    reservation.onLoad=function()
            {
            
    _root.message.text='Erfolgreich reserviert';
            
    delete this.object['reservation'];
            };
        };

    //Reset All
    _root.reset.onRelease=function()
        {
        var 
    resetAll=new LoadVars();
        
    resetAll.object=this;
        
    resetAll.sendAndLoad('reset.php',resetAll,'POST');
        
    resetAll.onLoad=function()
            {
            
    _root.message.text='Database reseted';
            
    delete this.object['resetAll'];
            };
        };
    check();
    this.stop();

    Nun… es ist zwar nicht objektorientiert gelöst und es könnten auch einige Callbacks usw. eingebaut werden…

    Ansehen kann man sich das ab heute ca. 1 Woche unter

    http://hosting.doulis.com/ff/tablecheck/check.html

    Die Sources sind hier…

    http://hosting.doulis.com/ff/tablecheck/tablecheck.zip

    Wenn das jemand bei sich hosten könnte wäre nett, ich lade das gerade auf den Kundenserver der Agentur… und da gehört das eigentlich nicht hin :)



    Liebe Grüße

    Yves
     
  2. silvester66

    silvester66 MacUser Mitglied

    Beiträge:
    10
    Zustimmungen:
    0
    Registriert seit:
    01.04.2011
    Hosting

    Hallo,

    ich könnte das ganze es auf meinem eigener Hoster anbieten.

    Bitte melde Dich bei interesse.

    Gruss
     
Die Seite wird geladen...
Ähnliche Themen - Anleitung PHP MySQL Forum Datum
Flash/php - Keine Variablenübergabe Flash and Actionscript 08.02.2010

Diese Seite empfehlen

Benutzerdefinierte Suche