php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 16-05-2007, 02:27
BlackPerfect
 Registrierter Benutzer
Links : Onlinestatus : BlackPerfect ist offline
Registriert seit: Jun 2006
Ort: Dresden
Beiträge: 171
BlackPerfect ist zur Zeit noch ein unbeschriebenes Blatt
BlackPerfect eine Nachricht über ICQ schicken
Standard Ausgabe wahlweise in Tabellen/OOP

Hi Leute,

ich brauch mal wieder eure Hilfe.
Hab ne Klasse geschrieben. Jetzt möchte ich das die Ausgabe wahlweise in einer Tabelle geschieht. Aber dies sollte nicht Standardmäßig so sein. Also bringt es mir nichts wenn ich in die Klasse gleich Tabellen mit rein bringe. Da es dann ja Standardmäßig in eine Tabelle geschrieben werden würde. Denn es könnte ja auch sein das ich mal <li>....</li> benötige oder ähnliches.
Ich hab es auch schon versucht eine Tabelle zu setzten um:
Code:
$pdo->printResult_all($myResult);
Aber dies bringt mir auch wenig, weil er dann alle Datensätze in ein <td> rein haut!

Hier noch meine Klasse hoffe ihr könnt mir helfen:
PHP-Code:
<?php 

class mysql{
protected  
$dbh;
function 
mysql($user,$pass)
{
try
    {
 
        
$this->dbh = new PDO('mysql:host=localhost;dbname=sp_blackperfect_1',$user,$pass);
    }

catch (
PDOException $e
    {
        print 
"Fehler beim Öffnen der Datenbank: " $e->getMessage();
    }




function 
query($sql)
{
try

        
    return 
$this->dbh->query($sql);
 
}
catch (
PDOException $e
    {
        print 
"Fehler beim Query ausführen: " $e->getMessage();
    }
}
 


function 
printResult_all($myResult)
{
try
{
    while (
$statement $myResult->fetch())
    {
        
        
print_r(current($statement));
        
$statement NULL;
    }

}    
catch (
PDOException $e
{
        print 
"Ausgabe Fehlgeschlagen: " $e->getMessage();
}
    }    
        }



$pdo = new mysql("***""***");
$myResult $pdo->query("SELECT * FROM myHompage_navi");
$pdo->printResult_all($myResult);
?>
Mit Zitat antworten
  #2 (permalink)  
Alt 16-05-2007, 04:12
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

z.B.
PHP-Code:
class mysql {
  ...
  function 
printResult_all(outputer $outputer$myResult) {
    try {
        
$outputer->header();
        while (
$statement $myResult->fetch()) {
          
$outputer->row($statement);
        }
        
$outputer->footer();
    } catch (
PDOException $e) {
            print 
"Ausgabe Fehlgeschlagen: " $e->getMessage();
    }
  }
  ...
}

interface 
outputer {
  function 
header();
  function 
footer();
  function 
row();
}
class 
outputer_tabelle implements outputer {
  function 
header() { echo '<table>'; }
  function 
footer() { echo '</table>'; }
  function 
row($row) { echo '<tr><td>'print_r($row); echo '</td></tr>' }
}
class 
outputer_liste implements outputer {
  function 
header() { echo '<ul>'; }
  function 
footer() { echo '</ul>'; }
  function 
row($row) { echo '<li>'print_r($row); echo '</li>'; }
}

$pdo = new mysql();
$myResult $pdo->query("SELECT * FROM myHompage_navi");
$pdo->printResult_all(new outputer_tabelle(), $myResult);
$pdo->printResult_all(new outputer_liste(), $myResult); 
(ka ob das so geht, hab ich mir gerade aus dem Ärmel geschüttelt und man bedenke die Uhrzeit)
Outputer könnte man ggf. mit statischen Methoden basteln -> performanter

Abgesehen davon, dass printResult_all eigentlich nichts im mysql-Objekt zu suchen haben sollte, sondern dass query() ein Objekt zurück liefern sollte was eben solch eine Methode bereit stellt.

Deine mysql-Klasse ist etwas verkorkst. Würde sich als Vererbung von PDO irgendwie besser machen und der Host und den DB-Namen sollte man nicht fest in den Konstruktor vercoden, außer man bastelt das dann auch richtig mit Singletons weiter auf.
Mit Zitat antworten
  #3 (permalink)  
Alt 16-05-2007, 13:35
BlackPerfect
 Registrierter Benutzer
Links : Onlinestatus : BlackPerfect ist offline
Registriert seit: Jun 2006
Ort: Dresden
Beiträge: 171
BlackPerfect ist zur Zeit noch ein unbeschriebenes Blatt
BlackPerfect eine Nachricht über ICQ schicken
Standard

Also hab es mal versucht, aber leider kam da folgende Fehlermeldung:

Fatal error: Declaration of outputer_liste::row() must be compatible with that of outputer::row() in D:\01 - Programme\03 - programmieren\xampp\htdocs\class.php on line 67

Die Zeile ist 67 ist:

Code:
  function header() { echo '<table>'; }
Kann jemand was mit der Fehlermeldung was anfangen?
Mit Zitat antworten
  #4 (permalink)  
Alt 16-05-2007, 13:52
pekka
 PHP Master
Links : Onlinestatus : pekka ist offline
Registriert seit: Jun 2001
Ort: Köln
Beiträge: 6.608
pekka befindet sich auf einem aufstrebenden Ast
Standard

Übersetz sie mal! Dann kannst Du es auch.

row($row) und row()
Mit Zitat antworten
  #5 (permalink)  
Alt 16-05-2007, 13:57
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

der fehler liegt im interface

gruß
peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #6 (permalink)  
Alt 16-05-2007, 13:59
BlackPerfect
 Registrierter Benutzer
Links : Onlinestatus : BlackPerfect ist offline
Registriert seit: Jun 2006
Ort: Dresden
Beiträge: 171
BlackPerfect ist zur Zeit noch ein unbeschriebenes Blatt
BlackPerfect eine Nachricht über ICQ schicken
Standard

Die deklaration von "outputer_liste::row() " muss kompatibel sein mit "outputer::row()"! Nur was muss sich ändern im code?
Mit Zitat antworten
  #7 (permalink)  
Alt 16-05-2007, 14:01
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

du must in deinem interface bei der entsprechenden funktion auch noch einen parameter angeben.

gruß
peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #8 (permalink)  
Alt 16-05-2007, 14:13
BlackPerfect
 Registrierter Benutzer
Links : Onlinestatus : BlackPerfect ist offline
Registriert seit: Jun 2006
Ort: Dresden
Beiträge: 171
BlackPerfect ist zur Zeit noch ein unbeschriebenes Blatt
BlackPerfect eine Nachricht über ICQ schicken
Standard

danke euch, es funzt!
Mit Zitat antworten
  #9 (permalink)  
Alt 16-05-2007, 14:35
BlackPerfect
 Registrierter Benutzer
Links : Onlinestatus : BlackPerfect ist offline
Registriert seit: Jun 2006
Ort: Dresden
Beiträge: 171
BlackPerfect ist zur Zeit noch ein unbeschriebenes Blatt
BlackPerfect eine Nachricht über ICQ schicken
Standard

Zitat:
Outputer könnte man ggf. mit statischen Methoden basteln

Was hätte denn das für ein Vorteil wenn man, dies statisch macht?
Mit Zitat antworten
  #10 (permalink)  
Alt 16-05-2007, 17:16
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von ghostgambler
Outputer könnte man ggf. mit statischen Methoden basteln -> performanter
Mit Zitat antworten
Antwort

Lesezeichen


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

Themen-Optionen
Thema bewerten
Thema bewerten:

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 an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 14:22 Uhr.