Unleashed Geschrieben 17. Dezember 2008 Geschrieben 17. Dezember 2008 Hi, ich bin ziehmlich unerfahren mit php. Hab den Auftrag bekommen eine webseite (auf php basis gecoded) von einem auf den anderen webserver zu verschieben. hab es jetzt erstmla auf meine xampp gezogen. Mann muss dazu sagen, dass der server wo das alles liegt total alt ist. Apache 1.2 und mysql 4.1. So mein prob ist, das ich diesne fehler bekommen Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in \qualiweb\includes\database\DB_SichtClass.inc.php on line 64 Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in \qualiweb\includes\database\DB_MenueClass.inc.php on line 68 wenn ich also bei der DB_SichtClass.inc.php reinschauhe bekomm und auf zeihel 64 schau seh ich dies. if ($cnt = mysql_num_rows($sql_result)) um das ganze bisschen überischtlicher zu machen post ich mal das ganze php skript.. <?php class DB_Sicht { /** * SichtObjekt * @var DB_Sicht */ var $DB_Sicht; /** * SichtId * @var int */ var $sicht_id; /** * SichtText * @var String */ var $sicht_text; /** * Objektparameter werden gesetzt * @param Array */ function DB_Sicht ($record = null) { $this->DB_Sicht = $record; $this->sicht_id = $record['$sicht_id']; $this->sicht_text = $record['$sicht_text']; } /** * Funktion zum Auslesen aller Objekte aus der Datenbank * @return DB_Sicht[] */ function selectAll() { $db = new Database(); $db->getConnection(); $statement = "select $sicht_id, $sicht_text from $qw_sicht order by $sicht_id"; $sql_result = mysql_query($statement); if ($cnt = mysql_num_rows($sql_result)) { for ($i = 0; $i < $cnt; $i++) { $rec = mysql_fetch_array ($sql_result); $Data[] = new DB_Sicht($rec); } } $db->closeDatabase(); return $Data; } /** * Funktion zur Speicherung in der Datenbank * @param String */ function save($sicht_text) { $db = new Database(); $db->getConnection(); $statement = "insert into qw_sicht (sicht_text) values (\"".$sicht_text."\")"; $sql_result = mysql_query ($statement); $db->closeDatabase(); } /** * Funktion zur Aktualisierung in der Datenbank * @param int * @param String */ function update($sicht_id, $sicht_text) { $db = new Database(); $db->getConnection(); $statement = "update qw_sicht set sicht_text=\"".$sicht_text."\" where sicht_id = \"".$sicht_id."\""; $sql_result = mysql_query ($statement); $db->closeDatabase(); } /** * Funktion zum Löschen aus der Datenbank * @param int */ function delete($id) { $db = new Database(); $db->getConnection(); $statement = "delete from qw_sicht where sicht_id=$id"; $sql_result = mysql_query ($statement); $db->closeDatabase(); } } // _DB_SichtClass ?> Vielleicht findet einer von euch profis den fehler. Danke schonmal. MfG Unleashed
bytebrain Geschrieben 17. Dezember 2008 Geschrieben 17. Dezember 2008 Hallo. Lass dir mal das SQL-Query auf den Bildschirm ausgeben und führe dieses dann mal direkt auf der Datenbank aus. Dein PHP-Script bekommt nämlich kein Ergebnis von der Datenbank. Das hier $sql_result = mysql_query($statement); [/php] schlägt nämlich fehl. Mach vorher einfach mal ein "echo $statement;". Grüße, bytebrain
Unleashed Geschrieben 17. Dezember 2008 Autor Geschrieben 17. Dezember 2008 danke für die schnell antwort. oke hab ich gemacht. jetzt hab ich dies dort stehen select , from order by Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\solve-it-intranet\docs\kompass\qualiweb\includes\database\DB_SichtClass.inc.php on line 66 sieht mir danach aus das er die statements nicht kennt. Lieg ich da richtig?
robotto7831a Geschrieben 17. Dezember 2008 Geschrieben 17. Dezember 2008 select , from order by Wenn das das Statement ist was zur DB ist, dann wundert mich gar nichts. Das ist nichts halbes und nichts ganzes. Da fehlen ein paar entscheidene Inhalte. Frank Edit: Das wird wohl von folgender Zeile produziert. $statement = "select $sicht_id, $sicht_text from $qw_sicht order by $sicht_id"; [/code]
Unleashed Geschrieben 17. Dezember 2008 Autor Geschrieben 17. Dezember 2008 Oke hab die $ wegelassen. Hab auch nochmal die Rechte auf der DB überprüft. aber jetzt kann ich nichts auswählen. wenn ich auch ein menu punkt klicke müsste er was anderes im main anzeigen. aber da kommt nichts. er zeigt immer noch die erste seite an.
DevilDawn Geschrieben 17. Dezember 2008 Geschrieben 17. Dezember 2008 Hi, function DB_Sicht ($record = null) { $this->DB_Sicht = $record; $this->sicht_id = $record['$sicht_id']; $this->sicht_text = $record['$sicht_text']; } [/php] Hier wird die Klasse offensichtlich initialisiert, und hier kommen $sicht_* her. Wie du beim debuggen gesehen hast sind diese Variablen aber unbelegt. Vermutung: Die alte Webserver/PHP Kombo hat noch per register_globals Variablen direkt von der URL genommen und damit die Klasse initiiert, das passiert in der neuen Umgebung nicht mehr und daher sind die Werte leer.
robotto7831a Geschrieben 17. Dezember 2008 Geschrieben 17. Dezember 2008 Welche PHP Version läuft auf dem alten und welche auf dem neuen Server? Frank
Unleashed Geschrieben 18. Dezember 2008 Autor Geschrieben 18. Dezember 2008 auf dem alten läuft eine MIR unbekante Version. auf der neuem eine php5. soll ich es umstellen auf php4. Info: Skript ist 2004 Entstanden.
robotto7831a Geschrieben 18. Dezember 2008 Geschrieben 18. Dezember 2008 auf der neuem eine php5. soll ich es umstellen auf php4. Das ist eine schnelle aber unschöne Lösung. Denn das Problem läuft nicht weg. Du solltest das Skript auf PHP5 anpassen. Frank
bytebrain Geschrieben 18. Dezember 2008 Geschrieben 18. Dezember 2008 auf dem alten läuft eine MIR unbekante Version. [...] Auf der Konsole einfach mal php -v ausführen. Sieht dann so aus: me@linux-machine:~> php -v PHP 5.2.4 with Suhosin-Patch 0.9.6.2 (cli) (built: Sep 23 2007 14:12:53) Copyright (c) 1997-2007 The PHP Group Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies me@linux-machine:~> Grüße, bytebrain
Unleashed Geschrieben 18. Dezember 2008 Autor Geschrieben 18. Dezember 2008 oke. ja mach ich gleich mal. andere frage. ich versuch das gereade auf meiner localhost kiste zum laufen zu bringen. bekomm immer dieesen fehler. Warning: mysql_connect() [function.mysql-connect]: Client does not support authentication protocol requested by server; consider upgrading MySQL client in viele sagen das ich was mit old-password machen soll. Frage nur wie mach ich das unter xampp. da ich ja kein unix system haben, sie aber alle nur erklären wie es unter unix geht.
robotto7831a Geschrieben 18. Dezember 2008 Geschrieben 18. Dezember 2008 So geht es auch unter windows. 2. Alternatively, you can enable the "old-passwords" option on the MySQL Server. The options file is typically "my.ini" or "my.cnf" and is located in the MySQL Server data directory. Make sure there is a line in the file like this: PHP FAQ - MySQL Forge Wiki Frank
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden