php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Scripts > BRAINSTORMING PHP/SQL/HTML/JS/CSS
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


BRAINSTORMING PHP/SQL/HTML/JS/CSS Ihr habt eine Idee, aber keinen genauen Ansatz? Diskutiert mit anderen Usern des Forums über eure Gedankengänge um evtl. hilfreiche Ideen zu bekommen!
Normale Fragen bitte weiterhin in die entsprechenden Foren!

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 11-09-2003, 20:30
lordsepp
 Newbie
Links : Onlinestatus : lordsepp ist offline
Registriert seit: Aug 2003
Beiträge: 11
lordsepp ist zur Zeit noch ein unbeschriebenes Blatt
Standard MySQL Datenbank Klasse

Hi Leude...

ich arbeite schon lange mit php habe ich aber erst vor nem monat oder so an klassen rangetraut...

hier meine erste funktionierende klasse

PHP-Code:
<?

// Benötigt: MySQL Zugangsdaten als Array -> $MySQL['host'], user, pass, base

class db_class
{

  function 
db_class($sql)                        // Konstruktor
  
{
    
$this->MySQL $GLOBALS['MySQL'];
    
$this->sql   $sql;
    
$this->my_connect();
    
$this->db_select();
  } 
// Ende Konstrukor

  
function my_connect()                          // Verbindungsaufbau zum Datenbankserver
  
{
    if (!
$this->conn_id mysql_connect($this->MySQL['host'],$this->MySQL['user'],$this->MySQL['pass']))
    { echo 
"Die Verbindung zum Datenbankserver konnte nicht hergestellt werden.<br>"; }
    return 
$this->conn_id;
  }
  
  function 
db_select()                           // Wählt die Datenbank aus
  
{
    if (!
$this->select mysql_select_db($this->MySQL['base'],$this->conn_id))
    { echo 
"Datenbankanfrage Fehlgeschlagen.<br>"; }
    return 
$this->select;
  }

  function 
query()                               // Sendet einen sql befehl zur Datenbank
  
{
    if (!
$this->result mysql_query("$this->sql"))
    { echo 
"Zugriff Daten Fehlgeschlagen.<br>"; }
    return 
$this->result;
    
$this->my_close();
  }

  function 
my_close()                            // Beendet die Verbindung zur Datenbank
  
{
    
mysql_close($this->conn_id);
  }

}
?>
Die Klasse wird folgendermassen aufgerufen:
PHP-Code:
$db = new db_class("SELECT * FROM $table");
$row mysql_fetch_array($db->query()) 
und dann wie gewohnt die spalten auslesen...


Ich wäre sehr dankbar über verbesserungsvorschläge bzw. hatte ich vor eine Error funktion mit einzubauen...
habe aber keinen plan wie ich das anstellen soll

Viel spass beim Code klaun
(dafür poste ich es ja... )

Geändert von lordsepp (12-09-2003 um 00:40 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 11-09-2003, 21:52
Abraxax
  THE REAL HAXE (Administrator)
Links : Onlinestatus : Abraxax ist offline
Registriert seit: Jul 2002
Ort: neuss.nrw.de
Beiträge: 22.623
Abraxax befindet sich auf einem aufstrebenden Ast
Standard

wo ist jetzt der vorteil in deiner class?

- für jede query machst du einen neuen connect zur db auf.

- du hast keine fehlerbehandlung. (ok, das wolltest du ja noch machen. )

- der php-code ist dennoch nicht weniger und besser geworden.

im endeffekt ist es nur als ein umständlicher alias für mysql_query() anzusehen.

daher musst du da wohl noch einmal ran...
__________________
INFO: Erst suchen, dann posten! | MANUAL(s): PHP | MySQL | HTML/JS/CSS | NICE: GNOME Do | TESTS: Gästebuch | IM: Jabber.org |


Mit Zitat antworten
  #3 (permalink)  
Alt 11-09-2003, 22:12
lordsepp
 Newbie
Links : Onlinestatus : lordsepp ist offline
Registriert seit: Aug 2003
Beiträge: 11
lordsepp ist zur Zeit noch ein unbeschriebenes Blatt
Standard

im prinzip haste recht

aber wie bau ichs am besten auf damit deine punkte erfüllt werden...

das mit dem neuen connect bei jedem aufruf könnte ich ja umgehen wenn ich den connect in den konstruktor reinhaue und den sql befehl an der query funktion ranbaue....

so brauch ich die klasse nur einma aufrufen und kann dann mit
$db->query($sql)
nen neuen befehl senden...

dann muss ich aber trotzdem am ende jeder seite die datenbank schliessen...

langsam blick ich nichmehr durch
wäre schon für denkantsösse sehr dankbar
Mit Zitat antworten
  #4 (permalink)  
Alt 11-09-2003, 22:17
Abraxax
  THE REAL HAXE (Administrator)
Links : Onlinestatus : Abraxax ist offline
Registriert seit: Jul 2002
Ort: neuss.nrw.de
Beiträge: 22.623
Abraxax befindet sich auf einem aufstrebenden Ast
Standard

als erstes kommst du jetzt aus den CS zum BS rein.... *VERSCHIEB*

Zitat:
so brauch ich die klasse nur einma aufrufen und kann dann mit
$db->query($sql)
nen neuen befehl senden...
schlaues kerlchen... dann mache das doch schon einmal.

Zitat:
wäre schon für denkantsösse sehr dankbar
deswegen bist du nun hier im BS....

aber hier schonmal die WICHTIGSTEN fkts einer db-class
PHP-Code:
<?php

    
class database
    
{
        function 
database() {}
        function 
connect() {}
        function 
close() {}
        function 
select_database() {}
        function 
sql() {}
        function 
fetch() {}
        function 
get_field() {}
    }

?>

Zitat:
dann muss ich aber trotzdem am ende jeder seite die datenbank schliessen...
das macht php für dich.
__________________
INFO: Erst suchen, dann posten! | MANUAL(s): PHP | MySQL | HTML/JS/CSS | NICE: GNOME Do | TESTS: Gästebuch | IM: Jabber.org |


Mit Zitat antworten
  #5 (permalink)  
Alt 11-09-2003, 23:04
Hopka
 PHP Expert
Links : Onlinestatus : Hopka ist offline
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.172
Hopka ist zur Zeit noch ein unbeschriebenes Blatt
Hopka eine Nachricht über ICQ schicken
Standard

Zitat:
Original geschrieben von Abraxax
das macht php für dich.
Womit wir die Methode close schonmal weglassen können.
Eine Methode select_db find ich auch nur bedingt nützlich, weil man sowieso immer die gleiche DB verwendet, und das ganze somit besser in den Konstruktor packt (is aber Geschmackssache).
__________________
hopka.net!
Mit Zitat antworten
  #6 (permalink)  
Alt 11-09-2003, 23:07
Abraxax
  THE REAL HAXE (Administrator)
Links : Onlinestatus : Abraxax ist offline
Registriert seit: Jul 2002
Ort: neuss.nrw.de
Beiträge: 22.623
Abraxax befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von Hopka
[...] weil man sowieso immer die gleiche DB verwendet, und das ganze somit besser in den Konstruktor packt (is aber Geschmackssache).
im prinzip hast du recht.

wenn du aber bei deinem hoster mehrere DBs nutzen kannst, so kannst du bequem wechseln... ausserdem rufe ich den db-selector eh im contructor auf.
__________________
INFO: Erst suchen, dann posten! | MANUAL(s): PHP | MySQL | HTML/JS/CSS | NICE: GNOME Do | TESTS: Gästebuch | IM: Jabber.org |


Mit Zitat antworten
  #7 (permalink)  
Alt 12-09-2003, 00:25
goth
  Moderator
Links : Onlinestatus : goth ist offline
Registriert seit: Mar 2002
Ort: Erde
Beiträge: 7.271
goth ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von Abraxax
das macht php für dich.
Den Blödsinn hört man auch immer wieder ... natürlich macht PHP das ... allerdings gehört es zu einem sauberer Programmierstil so etwas selbst zu machen ... !

Ihr quakt euch hier im Forum einen zurecht wie man seine Scripte optimieren kann ... schon mal darüber nachgedacht Das eine Manuell geschlossene Datenbankverbindung eventuell anderen Scripten eher wieder zur Verfügung steht ... ?? ... Scheinbar hast Du noch nie ein System entwickelt das richtig Last macht ... !

Natürlich gehört eine close()-Methode ... ein eine richtige DB Klasse ... allerdings ist das Grundgerüst schon so zurechtgestümpert, das Du die getrost auch noch weglassen kannst ... !
__________________
carpe noctem

Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht!
Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung!
Mit Zitat antworten
  #8 (permalink)  
Alt 12-09-2003, 00:37
lordsepp
 Newbie
Links : Onlinestatus : lordsepp ist offline
Registriert seit: Aug 2003
Beiträge: 11
lordsepp ist zur Zeit noch ein unbeschriebenes Blatt
Angry

jo... hack doch auf mir rum!!!
Zitat:
Natürlich gehört eine close()-Methode ... ein eine richtige DB Klasse ... allerdings ist das Grundgerüst schon so zurechtgestümpert, das Du die getrost auch noch weglassen kannst ... !
falls du lesen kannst lies das:
Zitat:
hier meine erste funktionierende klasse
ich habe das nicht umsonst hier gepostet...
sondern um konstruktive tipps zu bekommen die mir weiterhelfen einen von dir sogenannten "sauberen Programmierstil" zu bekommen!!!

ansonsten...
Mit Zitat antworten
  #9 (permalink)  
Alt 12-09-2003, 00:39
goth
  Moderator
Links : Onlinestatus : goth ist offline
Registriert seit: Mar 2002
Ort: Erde
Beiträge: 7.271
goth ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von lordsepp
jo... hack doch auf mir rum!!!
Ehrlich gesagt ging es mir nicht um Dein Konzept ... das dieses Dein erster Versuch war hatte ich durchaus verstanden ... !
__________________
carpe noctem

Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht!
Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung!
Mit Zitat antworten
  #10 (permalink)  
Alt 12-09-2003, 00:43
lordsepp
 Newbie
Links : Onlinestatus : lordsepp ist offline
Registriert seit: Aug 2003
Beiträge: 11
lordsepp ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Naja möchte nicht gleich als Forenneuling stress anfangen!

hatte mich aber schon etwas angegriffen gefühlt...
Mit Zitat antworten
  #11 (permalink)  
Alt 12-09-2003, 00:51
goth
  Moderator
Links : Onlinestatus : goth ist offline
Registriert seit: Mar 2002
Ort: Erde
Beiträge: 7.271
goth ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Entspann Dich wieder ...
__________________
carpe noctem

Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht!
Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung!
Mit Zitat antworten
  #12 (permalink)  
Alt 12-09-2003, 06:50
BloodReaver
 Master
Links : Onlinestatus : BloodReaver ist offline
Registriert seit: Feb 2003
Ort: Rechts der Pegniz
Beiträge: 884
BloodReaver ist zur Zeit noch ein unbeschriebenes Blatt
BloodReaver eine Nachricht über AIM schicken BloodReaver eine Nachricht über Yahoo! schicken
Standard

OffTopic:
das war kein angriff!

das war eine normale goth-meinungsäuserung
__________________
Man lernt nie aus...

...und wenn man's doch tut braucht man sich auch nicht schämen!
Mit Zitat antworten
  #13 (permalink)  
Alt 12-09-2003, 09:19
Abraxax
  THE REAL HAXE (Administrator)
Links : Onlinestatus : Abraxax ist offline
Registriert seit: Jul 2002
Ort: neuss.nrw.de
Beiträge: 22.623
Abraxax befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von goth
Natürlich gehört eine close()-Methode ... ein eine richtige DB Klasse ... allerdings ist das Grundgerüst schon so zurechtgestümpert, das Du die getrost auch noch weglassen kannst ... !
@goth.
ich gehe mal davon aus, dass du mich meinst?

wenn du genau siehst, gibt es die close() auch bei mir!

ansonsten hast du recht. nur wenn es noch nicht sauber unter php4 funktioniert einen destruktor (oder wie es richtig heisst) zu haben, musst du es manuell machen. und da meine scripte i.d.r. nicht ewig laufen, lasse ich das close() von php machen.

somit wird seitens php die verbindung getrennt und gut ist.
__________________
INFO: Erst suchen, dann posten! | MANUAL(s): PHP | MySQL | HTML/JS/CSS | NICE: GNOME Do | TESTS: Gästebuch | IM: Jabber.org |


Mit Zitat antworten
  #14 (permalink)  
Alt 14-09-2003, 17:34
lordsepp
 Newbie
Links : Onlinestatus : lordsepp ist offline
Registriert seit: Aug 2003
Beiträge: 11
lordsepp ist zur Zeit noch ein unbeschriebenes Blatt
Standard

@goth
wenn du Abraxax beispiel zurechtgestümpert findest...
wie würdest du es denn machen?
Mit Zitat antworten
  #15 (permalink)  
Alt 23-09-2003, 02:36
lordsepp
 Newbie
Links : Onlinestatus : lordsepp ist offline
Registriert seit: Aug 2003
Beiträge: 11
lordsepp ist zur Zeit noch ein unbeschriebenes Blatt
Exclamation mein verbesserungsversuch... :)

Habe mich vor ein paar tagen mal wieder ernsthaft mich damit beschäftigt
und bin auf ein recht ansehnliches ergebnis gekommen (also denke ich jetzt mal )
war wirklich sehr viel arbeit *angeb*
bin aber immer noch für verbesserungsvorschläge und tipps offen

ist ein bisschen kommentarlos... die bin ich grade am einfügen ich hoffe ihr blickt trotzdem durch!

PHP-Code:
<?
// Benötigt: MySQL Zugangsdaten als Array -> $MySQL['host'], $MySQL['user'], $MySQL['pass'], $MySQL['base']

class db_class
{

  var 
$MySQL;
  var 
$status 0;
  var 
$conn_id;
  var 
$select;
  var 
$sql;
  var 
$result;
  var 
$result_rows;
  var 
$while_str;
  var 
$row;
  var 
$errornum;
  var 
$errormsg;

  function 
db_class()
  {
    
$this->MySQL $GLOBALS['MySQL'];
    
$this->connect();
    
$this->select_db();
  }

  function 
connect()
  {
    if (
$this->status != 1)
    {
      if (!
$this->conn_id mysql_connect($this->MySQL['host'],$this->MySQL['user'],$this->MySQL['pass']))
      {
        
$this->errormsg mysql_error();
        
$this->errornum mysql_errno();
        return 
0;
      } else { 
$this->status 1; return 1; }
    } else { return 
0; }
  }
  
  function 
select_db()
  {
    if (
$this->status == 1)
    {
      if (!
$this->select mysql_select_db($this->MySQL['base'],$this->conn_id))
      {
        
$this->errormsg mysql_error();
        
$this->errornum mysql_errno();
        return 
0;
      } else { return 
1; }
    } else { return 
0; }
  }

  function 
query($sql)
  {
    if (
$this->status == 1)
    {
        if (!
$this->result mysql_query($sql))
      {
        
$this->errormsg mysql_error();
        
$this->errornum mysql_errno();
        return 
0;
      }
      else
      {
        if(
substr($sql06) == "SELECT")
        {
          
$this->result_rows mysql_num_rows($this->result);
          return 
1;
        }
      }
    } else { return 
0; }
  }

  function 
fetch_array()
  {
    if(!
$this->result)
    {
      
$this->errormsg 'Result is empty.';
      
$this->errornum '----';
      return 
0;
    }
    else
    {
      return 
mysql_fetch_array($this->result);
    }
    }

  function 
print_for($while_str)
  {
    while(
$row $this->fetch_array())
    {
      eval(
'echo "'.addslashes($while_str).'";');
    }
  }

  function 
error()
  {
    return (
$this->errornum " : " $this->errormsg);
    }
    
}
?>
Aufruf durch zB:

PHP-Code:
$db = new db_class();
$db->query("SELECT * FROM menue ORDER BY rang");

$db->print_for('<a href="$row[link]">$row[title]</a><br>'); 

Geändert von lordsepp (23-09-2003 um 12:11 Uhr)
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

zechat ansehen zechat

Willst du Chat-Admin in deinem eigenen kostenlosen Chat mit vielen Funktionen sein, und soll der Chat dazu noch schnell und stabil auf alles Webservern sein? Wenn ja, ist deine Suche jetzt vorbei!

07.06.2018 Manuel1986 | Kategorie: AJAX/ Chat
bootstrapzero

kostenlose Bootstrap-Themes

05.06.2018 Berni | Kategorie: HTML5/ CSS-Responsive
Entwicklung einer Chat-Webanwendung mit Node.js

Einfacher Chat mit Node.js

26.05.2018 Berni | Kategorie: Node.js/ nodejs-Tutorials
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:07 Uhr.