SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Einführung in XHTML, CSS und Webdesign

Einführung in XHTML, CSS und Webdesign zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Entwicklung und Softwaredesign
Hilfe Community Kalender Heutige Beiträge Suchen

PHP Entwicklung und Softwaredesign Hier können strukturelle (Programmier-) Konzepte diskutiert und Projekte vorgestellt werden

 
 
Themen-Optionen Ansicht
  #1  
Alt 10.04.2008, 22:12:18
ksticker ksticker ist offline
Member
 
Registriert seit: Nov 2007
Ort: Karlsruhe, Dresden
Alter: 35
Beiträge: 596
ksticker eine Nachricht über ICQ schicken
EDITOR Klasse

Ich habe mal eine Klasse geschrieben, mit welcher man ganz Simpel eine Tabelle übergibt und das Formular automatisch erzeugt wird, natürlich kann man das ganze auch in Templates auslagern und erweitern.
So kann man innerhalb von Minuten einen neuen Tabellen-Editor schreiben.
Ist Ideal für einen Adminbereich.


Hier die Klasse:
PHP-Code:
class editor
{
    
# Deklaration der Variablen
    
public $table_cols = array();
    public 
$table_name "";
    public 
$aktionen   = array();

    function 
overview()
    {
        echo 
'<form action="" method="POST">';
        
#Variablen Deklaration und Definition
        
$primary_key reset $this->table_cols );# Erstes Element aus Array auslesen (Erstes Element muss Primärschlüssel sein (ES WIRD DER INHALT GESPEICHERT NICHT DER INDEX)
        
$primary_key_index_calc array_keys ($this->table_cols$primary_key );
        
$primary_key_index $primary_key_index_calc[0];
        
$end end ($this->table_cols);
        
$end_index_calc array_keys ($this->table_cols$end);
        
$end_index $end_index_calc[0];
        
$extend '';
        
############################# FORMULAREINGABEN VERARBEITEN ########################
        #####################VALUE VON SUBMIT-BUTTON ÄNDERN
        
if(isset($_POST['doaktion']) && isset($_POST['checkbox']) && ($_POST['aktion'] == "edit"))
        {
            
$submit_value "Speichern";
        }else{
            
$submit_value "Aktion durchführen";
        }
        
#####################/VALUE VON SUBMIT-BUTTON ÄNDERN
        ##################### LÖSCHEN EINES DATENSATZES
        
if(isset($_POST['doaktion']) && isset($_POST['checkbox']) && ($_POST['aktion'] == "delete"))
        {
            
$delete_id implode(','array_map('intval'$_POST['checkbox']));
            
MYSQL_QUERY("DELETE FROM ".$this->table_name." WHERE ".$primary_key_index." IN ($delete_id)");
        }    
        
##################### /LÖSCHEN EINES DATENSATZES
        ##################### SUCHFUNKTION
        
if(($_POST['searchword'] != "Suchbegriff" || $_POST['searchword'] == "") && isset($_POST['doaktion']))
        {
            
$extend .= " WHERE MATCH (".$_POST['search_in'].") AGAINST ('+".$_POST['searchword']."*' IN BOOLEAN MODE)";
        }
        
##################### /SUCHFUNKTION
        ##################### SQL- ORDERBY VORBEREITEN
        
if(isset($_POST['sort_by']) && isset($_POST['desc_asc']) && isset($_POST['doaktion']))
        {
            
$extend .= " ORDER BY ".$_POST['sort_by'].' '.$_POST['desc_asc'];
        }
        
##################### /SQL- ORDERBY VORBEREITEN
        ##################### BEARBEITETE DATEN SPEICHERN
        
if(($_POST['doaktion'] == "Speichern") && (isset($_POST['checkbox_saves'])))
        {
            
$i 0;
            foreach (
$this->table_cols as $realname => $alias)
            {
                if(
$alias != $primary_key)
                {
                    
$checkID 0;
                    foreach(
$_POST[$realname] as $Inhalt)
                    {
                    
MYSQL_QUERY("UPDATE ".$this->table_name." SET ".$realname." = '".$Inhalt."' WHERE ".$primary_key_index." = ".$_POST['checkbox_saves'][$checkID]."");
                    
$checkID++;
                    }
                }
            }
        }
        
##################### /BEARBEITETE DATEN SPEICHERN
        
echo '<table border="1" cellpadding="0" cellspacing="0" width="100%">';
        echo 
'<tr>';        
        foreach (
$this->table_cols as $realname => $alias
        {
                
            echo 
"<td>$alias</td>";

            
#SQL - Abfrage vorbereiten
            
if($realname != $end_index)# Wenn der Index nicht mit dem letzten Element des Arrays übereinstimmt, das Komme anhängen
            
{
                
$spaltennamen .= $realname.",";
            }else{    
                
$spaltennamen .= $realname;
            }    
        }
        echo
'</tr>';
        
$overview MYSQL_QUERY("SELECT ".$spaltennamen." FROM ".$this->table_name.$extend);# SQL- Abfrage durchführen
        
print("SELECT ".$spaltennamen." FROM ".$this->table_name.$extend);
        
        
############################# TABELLE ERZEUGEN ###################################
        
while ($overview_ausgabe MYSQL_FETCH_ASSOC($overview))#Ausgelesene in Array legen
        
{
            echo 
'<tr>';
            foreach (
$this->table_cols as $realname => $alias)#Gehe das Array durch und gebe damit die SQL-Daten aus
            
{
                if(isset(
$_POST['checkbox']) && ($_POST['aktion'] == "edit"))#Wenn die Checkbox gesetzt wurde dann
                
{
                    if((!
in_array ($overview_ausgabe[$primary_key_index], $_POST['checkbox'])) && ($_POST['aktion'] == "edit"))#Wenn der Datensatz nicht ausgewählt wurde dann
                    
{
                        if(
$alias == $primary_key)#Wenn dies gleich der Primärschlüssel ist dann Chechbox einblenden
                        
{
                            echo
'<td><input type="checkbox" name="checkbox[]" value="'.$overview_ausgabe[$realname].'[]">'.$overview_ausgabe[$realname].'</td>';
                        }else{
#Wenn dies ungleich dem Primärschlüssel ist dann keine Checkbox                    
                            
echo'<td>'.$overview_ausgabe[$realname].'</td>';
                        }
                    }else{
#Wenn der Datensatz ausgewählt wurde dann
                        
if($alias != $primary_key)#Wenn dies ungleich dem Primärschlüssel ist dann Inputfeld     
                        
{
                            echo
'<td><input type="text" value="'.$overview_ausgabe[$realname].'" name="'.$realname.'[]"></td>';
                        }else{
#Wenn dies gleich der Primärschlüssel ist dann kein Inputfeld einblenden
                            
echo'<input type="hidden" name="checkbox_saves[]" value="'.$overview_ausgabe[$primary_key_index].'">';
                            echo
'<td>'.$overview_ausgabe[$realname].'</td>';
                        }
                    }
                }else{
#wenn die Checkbox nicht gesetzt wurde, dann Standartausgabe
                    
if($alias == $primary_key)#Wenn dies gleich der Primärschlüssel ist dann Chechbox einblenden
                    
{
                        echo
'<td><input type="checkbox" name="checkbox[]" value="'.$overview_ausgabe[$realname].'">'.$overview_ausgabe[$realname].'</td>';
                    }else{
#Wenn dies ungleich dem Primärschlüssel ist dann keine Checkbox                    
                        
echo'<td>'.$overview_ausgabe[$realname].'</td>';
                    }
                }
            }    
            
#Wenn die ausgelesene ID(SQL) mit einer aus dem Array übereinstimmt dann andere Darstellung wählen
            
echo '</tr>';
        }
        echo
'<table>';
        
############################# /TABELLE ERZEUGEN ###################################
        ############################# AKTIONEN OPTION ###################################
        
echo'<select name="aktion" size="1">';
        foreach (
$this->aktionen as $value => $aktion
        {
            echo 
'<option value="'.$value.'"> '.$aktion.' </option>';    
        }
        echo
'</select>';
        
############################# /AKTIONEN OPTION ###################################
        ############################# SORTIEREN OPTION ###################################
        
echo'Sortieren: ';
        echo
'<select name="sort_by" size="1">';
        foreach (
$this->table_cols as $realname => $alias
        {
            echo 
'<option value="'.$realname.'"> '.$alias.' </option>';    
        }
        echo
'</select>';        
        
############################# /SORTIEREN OPTION ###################################
        ############################# DESC_ASC OPTION ####################### #############
        
echo'<select name="desc_asc" size="1">';
        echo
'<option value="ASC"> Aufsteigend </option>';        
        echo
'<option value="DESC"> Absteigend </option>';    
        echo
'</select>';        
        
############################# /DESC_ASC OPTION ###################################    
        ############################# SUCHFUNKTION #####################################    
        
echo'<input type="text" value="Suchbegriff" name="searchword">';
        echo
'Suche in: ';
        echo
'<select name="search_in" size="1">';
        foreach (
$this->table_cols as $realname => $alias
        {
            echo 
'<option value="'.$realname.'"> '.$alias.' </option>';    
        }
        echo
'</select>';        
        
############################# /SUCHFUNKTION #####################################        
        
echo'<input type="submit" name="doaktion" value="'.$submit_value.'">';
        echo
'</form>';
    }


Und hier eine Beispielzuweisung:
PHP-Code:
$forenedit = new editor;
#Tabellenkopf Felder festlegen
$forenedit->table_cols['SQL-Spaltenname']         = "Alias";
$forenedit->table_name                     "SQL-Tabelle";
$forenedit->aktionen['edit']                 = "Bearbeiten";
$forenedit->aktionen['delete']                 = "Loeschen";
# /Tabellenkopf Felder festlegen
$forenedit->overview();# Erstelle die Übersichtstabelle 

P.S. Ich bin für Anregungen und Tipps dankbar :-)
Dies ist der erste Prototyp

Geändert von ksticker (10.04.2008 um 22:44:23 Uhr) Grund: Bug gefixt ;-)
Mit Zitat antworten
 


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 15:26:15 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt