Portal > Foren > PHP > PHP-Programmierung > Problem mit class
Antwort
 
Themen-Optionen Thema durchsuchen
Alt 11.10.2005, 21:49 Nach oben    #1
Erfahrener Benutzer
 
Benutzerbild von Garnele
 
Registriert seit: 16.09.2005
Ort: CH :-)
Beiträge: 123
Standard Problem mit class

Hi Leuts

Ich habe folgende MySQL klasse (Achtung, für den Fall das es ein fataler Fehler ist, es sind meine ersten schritte mit oop!)

PHP-Code:
include ('db.php');

class 
mysql
{
  function 
query($string)
  {
    
$query mysql_query($string);
    return 
$query;
  }
  function 
fetch_assoc($string)
  {
    
$row mysql_fetch_object($string);
    return 
$row;
  }
}

$mysql = new mysql;
$mysql->query("SELECT * FROM users WHERE name= xxy");
$mysql->fetch_assoc($query);

echo 
$row->name
Bei mir läuft php 4.3.10 und ich erhalte folgende Fehlermeldung:

Code:
Warning:  mysql_fetch_object(:( supplied argument is not a valid MySQL result resource in /home/virtual/site195/fst/var/www/test.garnelenforum.ch/oop.php on line 31 
Woran liegt, das bzw. wo ist mein Fehler? Ich habe mich im PHP Manual für OOP mit PHP 5 eingelesen, weil ich dachte wenn schon den shcon, PHP 5 wird wohl bald kommen. Ist da vielleicht etwas das nicht PHP 4 kompatibel ist??

Danke im voraus, Garnele
__________________
Mein Forum zu Thema Garnelen und Wirbellose: http://www.garnelenforum.ch

Geändert von Ben (11.10.2005 um 22:07 Uhr)
Garnele ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.10.2005, 21:57 Nach oben    #2
Goldman.de
 
Benutzerbild von J33d3X
 
Registriert seit: 09.10.2005
Ort: Frankfurt am Main
Beiträge: 190
Standard

du brauchst die resouceid

$obj =& new Klasse();

$sql=$obj->query(...);
while ($row=$obj->fetch_object($sql))

....



AND:
when you create a new instance of a class, *always* do it by reference:
$object =& new SomeClass();
^---->this one
this is *important*, *important*, *important*!!. trust me. if you don't,
you will after having strange bugs in your code and not finding them
for hours.
also read http://www.zend.com/manual/language.oop.newref.php please.

auszug: CODING GUIDELINES FOR DEVELOPERS


[edit]
function fetch_assoc($string)
{
$row = mysql_fetch_object($string);
return $row;
}

wasn nun assoc oder object
J33d3X ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.10.2005, 22:04 Nach oben    #3
Erfahrener Benutzer
 
Benutzerbild von Garnele
 
Registriert seit: 16.09.2005
Ort: CH :-)
Beiträge: 123
Standard

Hi

Merci, aber weshalb erzeugt dies denn immer noch fehler?

PHP-Code:
include ('db.php');

class 
mysql
{
  function 
query($string)
  {
    
$query mysql_query($string);
    return 
$query;
  }
  function 
fetch_assoc($string)
  {
    
$row mysql_fetch_assoc($string);
    return 
$row;
  }
}

$mysql =& new mysql;
$now $mysql->query("SELECT * FROM users WHERE name= xxy");
$row $mysql->fetch_assoc($now);

echo 
$row['name']; 
Code:
Warning:  mysql_fetch_assoc(:( supplied argument is not a valid MySQL result resource in /home/virtual/site195/fst/var/www/test.garnelenforum.ch/oop.php on line 31 
LG
Garnele
__________________
Mein Forum zu Thema Garnelen und Wirbellose: http://www.garnelenforum.ch

Geändert von Garnele (11.10.2005 um 22:12 Uhr)
Garnele ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.10.2005, 22:06 Nach oben    #4
me pro ok?
 
Benutzerbild von Lars
 
Registriert seit: 07.09.2005
Ort: Pulheim bei Köln
Beiträge: 964
Standard

PHP-Code:
$query "SELECT [...]";
$result $mysql->query($query);
$row $mysql->fetch_assoc($result); 
Ganz einfach
__________________
Gedanken aus Draht stricken einen Zaun.
Lars ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.10.2005, 22:11 Nach oben    #5
Erfahrener Benutzer
 
Benutzerbild von Garnele
 
Registriert seit: 16.09.2005
Ort: CH :-)
Beiträge: 123
Standard

Hi

Sorry, ich bin glaub zu blöd, ich sehe den Fehler/unterschied nicht

LG
Garnele
__________________
Mein Forum zu Thema Garnelen und Wirbellose: http://www.garnelenforum.ch
Garnele ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.10.2005, 22:14 Nach oben    #6
Goldman.de
 
Benutzerbild von J33d3X
 
Registriert seit: 09.10.2005
Ort: Frankfurt am Main
Beiträge: 190
Standard

Code:
class mysql_class
{
  function query($string)
  {
    $query = mysql_query($string)or die(mysql_error());
    return $query;
  }
  function fetch_assoc($string)
  {
    $row = mysql_fetch_assoc($string)or die(mysql_error());
    return $row;
  }
}

$mysql =& new mysql_class;
$now = $mysql->query("SELECT * FROM cevi_users WHERE name= Robin");
$row = $mysql->fetch_assoc($now);

echo $row['name'];
[edit]
mysql ist reserviert


versuch mal
Code:
class mysql_class
{
  function query($string)
  {
    return 'ok';
  }
  function fetch_assoc($string)
  {
    return $string;
  }
}

$mysql =& new mysql_class;
$now = $mysql->query("SELECT * FROM cevi_users WHERE name= Robin");
$row = $mysql->fetch_assoc($now);

echo $row;

Geändert von J33d3X (11.10.2005 um 22:19 Uhr)
J33d3X ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.10.2005, 22:19 Nach oben    #7
Erfahrener Benutzer
 
Benutzerbild von Garnele
 
Registriert seit: 16.09.2005
Ort: CH :-)
Beiträge: 123
Standard

Hi

Merci, jetzt funktionierts. Ist toll und meg apraktisch so eine mysql class.

LG
Garnele
__________________
Mein Forum zu Thema Garnelen und Wirbellose: http://www.garnelenforum.ch
Garnele ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.10.2005, 22:20 Nach oben    #8
Goldman.de
 
Benutzerbild von J33d3X
 
Registriert seit: 09.10.2005
Ort: Frankfurt am Main
Beiträge: 190
Standard

http://forum.developers-guide.net/thread416.html

mysql klasse
J33d3X ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.10.2005, 22:23 Nach oben    #9
Erfahrener Benutzer
 
Benutzerbild von Garnele
 
Registriert seit: 16.09.2005
Ort: CH :-)
Beiträge: 123
Standard

Hi

Ja das habe ich auch schon gesehen, aber irgendwie verstehe ich den Code noch nicht so ganz, naja ich habe auch erst gerade jetzt mit oop angefangen, sieht aber spannend aus.

LG
Garnele
__________________
Mein Forum zu Thema Garnelen und Wirbellose: http://www.garnelenforum.ch
Garnele ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.10.2005, 05:53 Nach oben    #10
Lutz
 
Benutzerbild von MrNiceGuy
 
Registriert seit: 14.08.2005
Ort: Nienburg / Weser
Beiträge: 687
Standard

Wozu erstellt man eine DB-Klasse und hat keine Verbindungskennung innerhalb der Klasse? Wie ich es sehe wird die Verbindung außerhalb aufgebaut und die Klasse dient lediglich der Zentralisierung der Funktionen query und fetch_object. Der Sinn einer Klasse wäre hier doch, dass ich in jeder Instanz eine andere Verbindung nutzen könnte!?
__________________
Paradox ist, wenn jemand für seinen Alkoholkonsum geradestehen soll
MrNiceGuy ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.10.2005, 07:25 Nach oben    #11
Goldman.de
 
Benutzerbild von J33d3X
 
Registriert seit: 09.10.2005
Ort: Frankfurt am Main
Beiträge: 190
Standard

Zitat:
Zitat von MrNiceGuy
Wozu erstellt man eine DB-Klasse und hat keine Verbindungskennung innerhalb der Klasse? Wie ich es sehe wird die Verbindung außerhalb aufgebaut und die Klasse dient lediglich der Zentralisierung der Funktionen query und fetch_object. Der Sinn einer Klasse wäre hier doch, dass ich in jeder Instanz eine andere Verbindung nutzen könnte!?

soweit ich verstanden habe ging es ihm hauptsächlich erstmal um
a) erstellen einer klasse
b) erzeugen einer instanz
c) zugriff auf methoden

und das kann er mit seiner klasse ( der sinn und zweck bleibt erstmal aussenvor )

gruss
J33d3X ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.10.2005, 16:54 Nach oben    #12
Lutz
 
Benutzerbild von MrNiceGuy
 
Registriert seit: 14.08.2005
Ort: Nienburg / Weser
Beiträge: 687
Standard

Nungut, soweit dacht ich auch, bis ichden Post von ihm las, dass die Klasse läuft und eine solche Klasse unheimlich hilfreich sei, ich sehe in der Klasse so, wie sie oben ist aber nichts hilfreiches, deswegen meine etwas verdutzte Frage.
__________________
Paradox ist, wenn jemand für seinen Alkoholkonsum geradestehen soll
MrNiceGuy ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.10.2005, 17:05 Nach oben    #13
Goldman.de
 
Benutzerbild von J33d3X
 
Registriert seit: 09.10.2005
Ort: Frankfurt am Main
Beiträge: 190
Standard

als ich zum erstenmal die Pfeilnotation nutzen konnte mehr schlecht als recht,
da war das für mich auch das größte ( damals noch unter Perl )
ich hätt am liebsten ein Flugzeugleitsystem geschrieben, das einzige was geflogen ist waren meine Nerven *auf und davon

*g
J33d3X ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

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 sind an
PingBacks sind an
RefBacks sind aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Problem mit meiner mysql class Stefan125 PHP-Programmierung 13 20.09.2007 22:45
Problem mit Beispiel aus "How To Use BoxLayout" von SUN Ben Allgemeine Java-Programmierung 2 02.03.2006 14:39
Progress Class - Problem mit Flush Chr!s PHP-Programmierung 0 27.09.2005 21:59
Problem mit getText()-Methode Paule Allgemeine Java-Programmierung 5 19.03.2005 20:38
Problem mit Zugriff von externer class auf Panel Treter_Peter Desktop-Applikationen und Grafik 2 24.12.2004 13:22


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:06 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45