php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 22.02.2005, 15:18  
Gast
 
Beiträge: n/a
Standard List Class

Ich bin gerade dabei eine List Class zu schreiben die ich dann beliebig zu einer SQL Resultlist ableiten kann..
Da ich aber irgendwie ein Codefetischist bin möchte ich das der code perfekt ist...
Am Ende ist es dann aber nie wirklich so wie ich es gerne hätte. Deswegen hab ich mich gestern mal nach etwas derartigem umgeschaut, konnte aber nichts intressantes zu dem Thema finden. Habt ihr irgendeine gute Idee wie ich das am besten mit den Objekten regle damit das dann übersichtlicher und allgemeiner code wird ? Oder vielleicht einen Link.. :wink:

greetz
xZibit
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 22.02.2005, 15:30  
Erfahrener Benutzer
 
Registriert seit: 14.01.2004
Beiträge: 2.543
fantast
fantast eine Nachricht über ICQ schicken
Standard

wenn du uns jetzt noch verraetst, was man unter einer "list class" versteht...

btw: willkommen hier
__________________
Was ist validität?
fantast ist offline   Mit Zitat antworten
Alt 22.02.2005, 15:33  
Gast
 
Beiträge: n/a
Standard

Hi,

ja mich würde es auch interessieren was eine list class ist und warum sie von einer sql result list abgeleitet ist? Gibt es überhaupt eine SQLResultList Klasse die man ableiten könnte?

mfg

axel
  Mit Zitat antworten
Alt 22.02.2005, 15:38  
Gast
 
Beiträge: n/a
Standard

hier mal zum reinschnuppern. bitte dabei drauf achten das es java und kein php ist (:
also 1 zu 1 abpinnen wäre wohl etwas übertrieben.

http://java.sun.com/docs/books/tutor...ces/index.html
  Mit Zitat antworten
Alt 22.02.2005, 15:44  
Gast
 
Beiträge: n/a
Standard

Also unter einer SqlResultList verstehe ich das ausgeben eines SQL oder MySQL queries in einer dynamisch sortierbaren Tabelle

Das problem ist aber das ich die Liste nicht nur für MySQL queries verwenden will, sondern auch für z.B. eine Mailbox ausgabe oder etwas in der Art. Deswegen dachte ich mir das ich eine ListView Klasse mache die ich dann ableite um mein gewünschtes Ergebnis zu bekommen.

greetz
xZibit
  Mit Zitat antworten
Alt 22.02.2005, 15:45  
Gast
 
Beiträge: n/a
Standard

danke, werd ich mir gleich anschaun :wink:
  Mit Zitat antworten
Alt 22.02.2005, 16:01  
Gast
 
Beiträge: n/a
Standard

Hi,

das was du da siehst mit Collection, Set, List, SortedList usw... ist ODMG Zeugs. Ich versteh nicht ganz, wofür du das brauchst? Hast du dich mal mit dem ODMG Standard beschäftigt?

mfg

axel
  Mit Zitat antworten
Alt 22.02.2005, 16:16  
Gast
 
Beiträge: n/a
Standard

Hi xzibit,

jetzt hab ich glaub verstanden was du willst
Also du bräuchst ne klasse, die das Ergebnis von einer mysql_query entgegen nimmt oder imap_fetch_overview richtig?

PHP-Code:
<?php
class listView
{
     var 
_mysql;
     var 
_imap;
      var 
_type;
     
//usw...

    
function listView
   
{
      
//initalisierung usw...
    
}
 
     function 
setResult$result$type )
     {
        switch( 
$type )
         case 
mysql$this->_mysql $result$this->_tpye $type;
         
usw...
     }

     function 
output()
     {

        
//je nach typ ergebnis auswerten und ausgeben
      
}

}

?>
wär das sowas wie du schreiben willst?

mfg

axel
  Mit Zitat antworten
Alt 22.02.2005, 16:36  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von asa
Hi xzibit,

jetzt hab ich glaub verstanden was du willst
Also du bräuchst ne klasse, die das Ergebnis von einer mysql_query entgegen nimmt oder imap_fetch_overview richtig?

PHP-Code:
<?php
class listView
{
     var 
_mysql;
     var 
_imap;
      var 
_type;
     
//usw...

    
function listView
   
{
      
//initalisierung usw...
    
}
 
     function 
setResult$result$type )
     {
        switch( 
$type )
         case 
mysql$this->_mysql $result$this->_tpye $type;
         
usw...
     }

     function 
output()
     {

        
//je nach typ ergebnis auswerten und ausgeben
      
}

}

?>
wär das sowas wie du schreiben willst?

mfg
axel
ich denke mal genau das möchte er nicht (hoffentlich). in deinem beispiel vermischst du mehrere verantwortlichkeiten in einer klasse => sehr ungeil imho.

gruss
Sike
  Mit Zitat antworten
Alt 22.02.2005, 16:52  
Gast
 
Beiträge: n/a
Standard

also...
Ich haette gerne eine allgemeine Result Liste für verschiedene Aufgaben die ich dann dementsprechend ableiten kann.
Wenn ich z.B. aus meinem Mailbox Objekt eine Liste der neuen Mails ausgeben will oder aus meiner MySQL Tabelle alle User die gerade online sind abrufen will, kann ich das ja nicht mit ein und demselben List Objekt machen.

Bis jetzt hab ich das mit dem SQL ListView immer derartig gelöst..
Also den, den ich bis jetzt verwendet habe.. der wurde vor nem Jahr geschrieben. Hab ein paar Sachen die nicht so wichtig sind rausgelöscht

:::edit:::
nur zu erläuterung.. ich verwende hier ein recordset objekt, über das ich mit der methode fields(<mysql_table_field_name>) den inhalt des jeweiligen feldes bekomme..
:::edit:::

PHP-Code:
<?  
    
class SqlListView extends ListView {
    
      var 
$o_rs;
      var 
$s_sql_query;
      var 
$o_site_rs;
      var 
$s_site_sql_query;
      var 
$n_site_step;
      var 
$n_site_step_count;
      var 
$n_site_count;
      var 
$n_site_current;
      var 
$s_sort_name;
      var 
$s_sort_type;
      
      function 
SqlListView($s_sql_query="") {
        if(!empty(
$s_sql_query)) $this->setQuery($s_sql_query);
          
$this->n_site_step 10;
      }
      
      function 
setQuery($s_sql_query) {
        
$this->o_rs dbExec($s_sql_query);
          
$this->s_sql_query $s_sql_query
          
$this->a_columns $this->o_rs->getColumns();
      }
      
      function 
parseQuery($s_sql_query) {
         
/* 
           hier wird falls ein 'ORDER BY' im Query vorkommt, dieses entfernt und
             der neue Query mit den übergebenen sort parametern gesetzt
         */ 
      
}
      
      function 
setParameters() {
        
/*
          html Parameter werden ausgelesen und gesetzt 
        */
      
}
      
      function 
execute() { //schreibt die tabelle in die variable $s_list
          
$this->parseQuery($this->s_sql_query);
          
$this->s_list $this->getHeader(); //header wird aufgerufen
          
while(!$this->o_site_rs->isEOF()) {
              
$this->s_list .= $this->getLine(); //die datensätze werden aufgerufen
              
$this->o_site_rs->moveNext();
          }
          
$this->s_list .= $this->getFooter(); //footer wird aufgerufen
      
}
      
      function 
getHeader() {
        global 
$s_path_icons;
        
$s_list_header '<table width="95%"><tr>';
          for(
$i=0;$i<sizeof($this->a_columns);$i++) {
            if(
$this->a_columns[$i]==$this->s_sort_name && $this->s_sort_type=="ASC") {
                
$s_prefix =  '<a href="index.php?go=list&name=' $this->a_columns[$i] . '&sort=DESC">';
                  
$s_prefix .= '[img]' $s_path_icons 'arrow_down.gif' '[/img]</a>';
                  
$s_sufix '';
              }
              elseif(
$this->a_columns[$i]==$this->s_sort_name && $this->s_sort_type=="DESC") {
                
$s_prefix =  '<a href="index.php?go=list&name=' $this->a_columns[$i] . '&sort=ASC">';
                  
$s_prefix .= '[img]' $s_path_icons 'arrow_up.gif' '[/img]</a>';
                  
$s_sufix '';            
              }
              else {
                
$s_prefix '<a href="index.php?go=list&name=' $this->a_columns[$i] . '&sort=ASC">';
                  
$s_sufix '</a>';            
              }
            
$s_list_header .= '<td class="list_header">' $s_prefix $this->a_columns[$i] . $s_sufix .  '</td>';
          }
          
$s_list_header .=  '</tr>';
          return 
$s_list_header;
      }
      
      function 
getLine() {
          
$s_list_line '<tr>';
          for(
$i=0;$i<sizeof($this->a_columns);$i++) {
              
$s_list_line .= '<td class="list_line">' $this->o_site_rs->fields($this->a_columns[$i]) . '</td>';
          }
          
$s_list_line .= '</tr>';
          return 
$s_list_line;
      }
      
      function 
getFooter() {
        
$s_list_footer '<tr><td class="list_footer" colspan="' sizeof($this->a_columns) . '">';
          
$s_list_footer .= $this->getSiteNav() . '</td></tr></table>'
          return 
$s_list_footer;
      }
      
  }
?>
Etwas derartiges möchte ich auch für E-Mails die ich über mein Mailbox Objekt über imap hole haben. Und um das nicht völlig neu zu coden und da die Sql Listview sowieso totaler mist ist möcht ich das neu machen.. um aus einer allgemeinen ListView abgeleitet Klassen zu schreiben in denen das dann möglich ist


greetz
xZibit
  Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

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

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Ein mehrdimensionales Array mit list() auslesen. Wilfer PHP Tipps 2008 3 21.07.2008 02:20
Class kann auf Variable nicht zugreifen... go1denboy PHP Tipps 2008 4 27.06.2008 15:40
Can't find FULLTEXT index matching the column list [MYSQL] Cytrix PHP Tipps 2006 1 16.02.2006 13:02
Class Vars fmueller PHP Tipps 2006 10 14.02.2006 19:54
[OS|FreeGW] Class Problem ( cl_extended_database ) PHP Tipps 2006 20 08.02.2006 01:09
Mehrere Div-Layer per Class schliessen Diego1978 HTML, Usability und Barrierefreiheit 4 02.12.2005 12:10
PHP Class Datei Basirende Datenbank mit MySQL Syntax atom-dragon Beitragsarchiv 4 01.08.2005 06:57
Thema: class; Problem: Grundlegende :) PHP Tipps 2005-2 4 13.07.2005 18:40
Auswerten von LIST per ftp_raw Schaelle PHP Tipps 2005-2 2 01.07.2005 16:15
bb stringparser class search Beitragsarchiv 4 14.04.2005 18:18
PHP Fatal error: Class 'MySQLi' not found in CSS PHP Tipps 2005 6 13.04.2005 15:24
Class -- Funktion Creativ PHP Tipps 2005 2 30.03.2005 23:10
a mouseover class ändern 022.9 HTML, Usability und Barrierefreiheit 4 18.02.2005 15:51
Klassenschachtelung -> Cannot Redeclare Class ... Fehler PHP Tipps 2004 4 21.10.2004 20:29
Klassenschachtelung -&amp;gt; Cannot Redeclare Class ... Fehler PHP-Fortgeschrittene 5 21.10.2004 18:04

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php class list, php list class, listklasse php, php list klassen, listen klasse php, php list classes, \list class\, class list, php list klasse, klassen list of php, list class php

Alle Zeitangaben in WEZ +1. Es ist jetzt 03:55 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.