|
You last visited: Today at 08:52
Advertisement
MySQL Verbindungsprobleme über OOP
Discussion on MySQL Verbindungsprobleme über OOP within the Web Development forum part of the Coders Den category.
04/08/2011, 20:37
|
#1
|
elite*gold: 0
Join Date: Mar 2011
Posts: 519
Received Thanks: 116
|
MySQL Verbindungsprobleme über OOP
Hallo allerseits,
ich habe Probleme mit meinem Projekt und zwar möchte ich in OOP etwas größeres und komplexeres Programmieren. Derzeit bin ich aber noch am Dazulernen, wenn ihr gute Seiten darüber habt könnt ihr sie gerne posten(bekommt 10 Thanks  ).
Hier ist der Code, es wird nichts angezeigt(Problemzone While-Schleife).
Ohne While Schleife bekomme ich meine Ergebnisse.
PHP Code:
<?php
/** * * Database Connect * **/
$host = "localhost"; $user = "root"; $password = ""; $database = "database"; $table = "post";
class MySQL { public $connection = FALSE; private $host; private $user; private $password; private $database; function connectDB($host,$user,$password) { $this->connect = mysql_connect( $host, $user, $password ) or die (mysql_error()); } function selectDB($database) { mysql_select_db($database) or die (mysql_error()); } function fetchRow($table) { $query = mysql_query("SELECT * FROM $table") or die (mysql_error()); while($row = mysql_fetch_assoc($query)) { $id = $row['id']; $content = $row['content']; } } }
$MySQL = new MySQL; $MySQL->connectDB($host,$user,$password); $MySQL->selectDB($database); $MySQL->fetchRow(post);
echo $id; echo $content;
?>
|
|
|
04/09/2011, 12:43
|
#2
|
elite*gold: 1371
Join Date: Dec 2007
Posts: 14,903
Received Thanks: 19,354
|
Beschäftige dich mal mit dem Gültigkeitsbereich von Variablen (local, global).
PHP Code:
function fetchRow($table) { $query = mysql_query("SELECT * FROM $table") or die (mysql_error()); while($row = mysql_fetch_assoc($query)) { $id = $row['id']; //nur in deiner function gültig, $id wird bei jedem Durchlauf überschrieben $content = $row['content']; //nur in deiner function gültig, $id wird bei jedem Durchlauf überschrieben } }
Quick-and-dirty:
PHP Code:
function fetchRow($table) { $query = mysql_query("SELECT * FROM $table") or die (mysql_error()); while($row = mysql_fetch_assoc($query)) { global $id, $content; $id = $row['id']; //global gültig, $id wird bei jedem Durchlauf überschrieben $content = $row['content']; //global gültig, $id wird bei jedem Durchlauf überschrieben } }
|
|
|
04/10/2011, 16:34
|
#3
|
elite*gold: 20
Join Date: Sep 2006
Posts: 1,100
Received Thanks: 184
|
Code:
while($row = mysql_fetch_assoc($query))
ist auch noch falsch, = ist in php kein Vergleichsoperator sondern wird für Zuweisungen verwandt, richtig wäre hier == oder besser noch === zu verwenden.
|
|
|
04/10/2011, 20:20
|
#4
|
elite*gold: 1371
Join Date: Dec 2007
Posts: 14,903
Received Thanks: 19,354
|
Quote:
Originally Posted by Bot_interesierter
Code:
while($row = mysql_fetch_assoc($query))
ist auch noch falsch, = ist in php kein Vergleichsoperator sondern wird für Zuweisungen verwandt, richtig wäre hier == oder besser noch === zu verwenden.
|
Schonmal daran gedacht, dass es dort nichts verglichen wird?!
|
|
|
04/11/2011, 15:22
|
#5
|
elite*gold: 20
Join Date: Sep 2006
Posts: 1,100
Received Thanks: 184
|
Quote:
Originally Posted by banjo1
Schonmal daran gedacht, dass es dort nichts verglichen wird?!
|
Ja da hast du recht.
|
|
|
04/11/2011, 19:47
|
#6
|
elite*gold: 0
Join Date: Mar 2007
Posts: 17
Received Thanks: 2
|
-
|
|
|
04/12/2011, 02:37
|
#7
|
elite*gold: 125
Join Date: Apr 2008
Posts: 1,217
Received Thanks: 1,304
|
Was du machen könntest währe z. B. folgendes:
PHP Code:
function fetchRow($table) { $qryData = array(); $query = mysql_query("SELECT * FROM $table") or die (mysql_error()); $x=0; while($row = mysql_fetch_assoc($query)) { $qryData['result'][] = $row; $++; } $qryData['count'] = $x; return $qryData; }
PHP Code:
var_dump($MySQL->fetchRow($post));
Damit würdest du die Daten inkl. Anzahl der Datensätze ausgeben. Ob dies nun einen tatsächlichen Nutzen bringt (doppeltes durchlaufen beim weiterverarbeiten der Daten) is fraglich. Neben dem Hauch objektorientierung kann man da nicht viel entdecken. Guck dir mal Mysqli an.
Hinzu kommt, dass du *-Selects machst und das ist nicht performant. Du solltest den kompletten Query übergeben.
|
|
|
 |
Similar Threads
|
[AutoIt] Frage: Login über MySQL
01/15/2011 - AutoIt - 3 Replies
hey. das ganze sieht so aus:
ich habe bereits geschafft, mich mit meinem autoit script mit
mysql zu verbinden, dort die datenbank "user" und dann die
tabelle "user" auszuwählen und dort eine neue zeile hinzu-
zufügen.
ALSO: Registrieren über AutoIt mit den Angaben Benutzername
und Passwort geht!
Jetzt will ich noch, dass ich mich auch verbinden kann, also
einloggen, sodass, NUR WENN der angegebene benutzername
und das angegebene passwort übereinstimmen, man weitergeleitet
|
[Hilfe] Frage bei Login (über MySQL) per C++
12/15/2010 - Web Development - 21 Replies
Heyho Leute,
ich suche Hilfe, undzwar habe ich folgendes vor:
Ich habe ein Programm in Konsolen Form (also ohne Style), und will dort jetzt folgendes einabauen:
Programm startet.
fragt nach loginname.
eingabe des loginnamens.
fragt nach pw.
|
Mysql Abfrage über PHP Skript
09/05/2010 - AutoIt - 3 Replies
Hallo Community,
Ich hab folgendes Problem:
Mein Skript sollte eine kleine Datenbank Abfrage starten und daher habe ich mir das Tutorial auf dieser Seite reingezogen:
Login + Registrierung über eine MySql-DB - Tutorials - .: autoit.de :. - Das deutsche AutoIt-Forum
Natürlich habe ich auch alle Werte in meinem Autoit Code an meine Datenbank etc angeglichen.
Das PHP Login-Skript sieht wie folgt aus:
|
[Frage]Wie kann man die Mysql Tabellen über den Root repaieren
09/04/2010 - Metin2 Private Server - 4 Replies
Hay Com..
Weiß vill iwer wie man die Mysql
Tabellen über den Root reparieren?
Hoffe auf schnelle antwort..
Mfg.
|
verbindungsprobleme
09/29/2007 - Flyff - 7 Replies
hey leute hab mal ne frage an euch
immer wenn ich mit hacks spiele werde ich manchmal erst nach 3 stunden manchmal aber auch nach 3 min vom server getrennt
wisst ihr vieleicht wieso das so ist??
hab die sufu benutzt aber leider nix gefunden :(
ps: werde auch vom server getrennt wenn ich ohne hacks und mit patch spiele....:confused:
bitte helft mir
|
All times are GMT +1. The time now is 08:53.
|
|