Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben

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

Geschrieben

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?

Geschrieben

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]

Geschrieben

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.

Geschrieben
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.

Geschrieben
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

Geschrieben

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.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...