Feldaufbau mit img

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Feldaufbau mit img

    Hi,

    ich habe ein 2000er Feld, wo jedes Feld ein 10x10 Pixel gif ist.
    Jedes Feld an sich ist nicht groß alle zusammen jedoch wieder 200kbyte.
    Auf die Felder kann man nun klicken und "sie drehen sich um" bzw. das img wird getauscht
    Danach wird das gesamte Spielfeld aus der Datenbank neu gelesen und neu aufgebaut (alle Felder die geklickt wurden werden nun anders dargestellt).
    Dies dauert dann bei 200kybte ein wenig.

    So und nun meine Frage:

    Gibt es da eine Möglichkeit, das man der Datenbank sagen kann, dass NUR das geklickte (bzw alle geklickte) Feld neu aus der Datenbank gelesen werden muss und natürlich and er richtigen Stelle erscheinen muss.
    Es ist ja im Prinzip unnötig, die Felder nochmal neu auszulesen und darzustellen, die sich garnicht verändert haben.

    MfG

  • #2
    evtl. mit js unter dem stichwort "ajax".

    Kommentar


    • #3
      Such mal zum Stichwort AJAX.

      Kommentar


      • #4
        Achso sorry hab ich vergessen, ich möchte kein Java und kein Ajax verwenden

        Ich dachte mir eventuell was bei der Datenbankabfrage ändern.
        Momentan lese ich ja immer das gesamte Feld aus der Datenbank und stelle es dementsprechend dar.
        Kann man da nicht Bedingung einfügen, das er nur die Felder neu darstellen soll, die sich geändert haben.
        Was ich mir da aber nun überhaupt nicht vorstellen kann ist, das er diese geänderten Felder auch an der richtigen Position platziert.

        Kommentar


        • #5
          da wir keinen plan haben, wie du die abfrage jetzt ausführst, können wir dir schlecht sagen, wie man es besser machen kann. also - zeigen.

          und noch was - java ist nicht javascript!

          Kommentar


          • #6
            Original geschrieben von penizillin
            da wir keinen plan haben, wie du die abfrage jetzt ausführst, können wir dir schlecht sagen, wie man es besser machen kann. also - zeigen.

            und noch was - java ist nicht javascript!
            Hast ja Recht

            PHP-Code:
            //Datenbankabfrage zur Darstellung aller Felder eines Spielfeldes.  
            $anfrage="SELECT * FROM spiel WHERE id LIKE '$id' ORDER BY feldnr";  
            $ergebnis=mysql_query($anfrage);  
            $anzahl=mysql_num_rows($ergebnis);   
            for(
            $i=0;$i<$anzahl;$i++){      
               
            mysql_data_seek($ergebnis$i);      
               
            $datensatz=mysql_fetch_row($ergebnis);      

               
            //Ausgabe eines gespielten Feldes ohne Gewinn.      
               
            if($datensatz[3]==&& $datensatz[5]==0){          
                  echo 
            "<a href='ueberpruefe_status.php?id=$id&feldnr=$datensatz[2]'>"
                  echo 
            "<img src=feld_gespielt.gif>";          
                  echo 
            "</a>";          
                  
            //Erzeugt Umbrüche          
                  
            if($datensatz[2]%$zeile[1]==0){              
                     echo 
            "<br>";          
                  }      
               }      

               
            //Ausgabe eines ungespielten Feldes.      
               
            if($datensatz[3]==1){          
                  echo 
            "<a href='ueberpruefe_status.php?id=$id&feldnr=$datensatz[2]' class='spiel'>";          
                  echo 
            "<img src=feld_ungespielt.gif>";          
                  echo 
            "</a>";          
                  
            //Erzeugt Umbrüche          
                  
            if($datensatz[2]%$zeile[1]==0){              
                     echo 
            "<br>";          
                  }      
                }      

               
            //Ausgabe eines freien Feldes      
               
            if($datensatz[5]==&& $datensatz[3]==0){          
                  echo 
            "<a href='ueberpruefe_status.php?id=$id&feldnr=$datensatz[2]' class='spiel'>";          
                  echo 
            "<img src=feld_frei.gif>";          
                  echo 
            "</a>";          
                  
            //Erzeugt Umbrüche          
                  
            if($datensatz[2]%$zeile[1]==0){              
                  echo 
            "<br>";          
                  }      
               }  
            }  
            //************************Ausgabe************************
            //aktualisiert das Feld und gibt den Status aus.  
            switch($status){      
               case
            "niete": {          
                  
            darstellung($id);          
                  echo 
            "TextF";          
                  break;      
               }      
               case
            "gewinn": {          
                  
            darstellung($id);          
                  echo 
            "TextA";          
                  echo 
            "<br>";          
                  echo 
            "TextA";          
                  break;      
               }      
               case
            "feldgespielt": {          
                  
            darstellung($id);          
                  echo 
            "TextB";          
                  break;      
               }      
               case
            "spielfeldgespielt": {          
                  
            darstellung($id);          
                  echo 
            "TextE";          
                  break;      
               }      
               case
            "erstellt": {          
                  
            darstellung($id);          
                  echo 
            "TextC";          
                  break;      
               }      
               case
            "frei": {          
                  
            darstellung($id);          
                  echo 
            "TextD";          
                  break;      
              }  
            }  
            ?> 
            Zuletzt geändert von Lofesto; 01.04.2006, 13:14.

            Kommentar


            • #7
              bitte immer code umbrechen!

              naja - du selektierst ja db-einträge. wie stellst du dir das vor, dass du "nur die und die" selektierst - ausgeben musst du schließlich alle?

              nach dem die seite neugeladen wurde, muss das skript doch jedes mal sichergehen, welche felder angeklickt wurden und welche nicht.

              das bedeutet doch, dass du immer das gesamte feld durchgehen musst.

              oder verstehe ich dein konzept falsch?

              Kommentar


              • #8
                Original geschrieben von penizillin
                bitte immer code umbrechen!

                naja - du selektierst ja db-einträge. wie stellst du dir das vor, dass du "nur die und die" selektierst - ausgeben musst du schließlich alle?

                nach dem die seite neugeladen wurde, muss das skript doch jedes mal sichergehen, welche felder angeklickt wurden und welche nicht.

                das bedeutet doch, dass du immer das gesamte feld durchgehen musst.

                oder verstehe ich dein konzept falsch?
                So ist das.
                Und da wollte ich halt mal Fragen ob es auch anders gehen kann, allerdings nur mit php.

                Kommentar


                • #9
                  mir fällt nichts ein, außer irgendein caching-system zu basteln.

                  Kommentar


                  • #10
                    Hm oder ich mach ein Preloader mit php.
                    Müsste ja auch gehen oder?
                    Sodass das Feld erstmal komplett ausgelesen wird und dann aufeinmal dargestellt wird.
                    Sodass der Aufbau des Feldes quasi versteckt wird.
                    Oder verstehe ich da jett was falsch
                    Löst zwar mein Trafficproblem nicht aber es is dann zumindest schöner

                    Kommentar


                    • #11
                      das ist ein rein kosmetischer schritt.

                      Kommentar


                      • #12
                        Gut danke dann informier ich mich mal über php caching

                        Kommentar


                        • #13
                          Das Schlagwort SQL_CACHE in der Query kann dir evtl auch weiterhelfen - zumindest was den PHP Teil angiebt.

                          Aber um die Daten die vom Server zum Client geschickt werden bleibt dir nur JavaScript übrig. Wahrscheinlich mit Ajax Elementen.

                          Kommentar

                          Lädt...
                          X