MySql Variable in PHP übermitteln

IT_ITALIA

Grünschnabel
Hallo Leute


Beim programmieren einer PHP-Seite , bin ich auf folgende problematik gestossen:

Ich speichere im Mysql mittels einer Stored Procedure eine Variable ab. Diese Variable möchte ich auf der Seite anzeigen lassen..
Jedoch krieg ich es nicht auf die Reihe diese variable (welche mir als Boolischer wert angegeben wird) anzeigen zu lassen.. weder mit echo oder print_r..

Die Verbindung mit der Datenbank ist Heergestellt das ist sicher.

Falls jemand die Gelegenheit und Zeit hat sich das anzuschauen wäre ich ihnen sehr dankbar..
Wenn ich die PHP-Seite aufrufe kommt folgende Meldung:

Warning: mysql-fetch-.row() expects parameter 1 to be resource. boolean fiben in <Dateipfad inkl. Dateiname> on line 42

Hier der Code zur erläuterung:

PHP:
<!DOCTYPE html> 
 	<html>
		<?php
			$myHOST	= 'localhost';
			$myUSER	= 'root';
			$myDB	= 'mopptest';
			function mydbconnect(){
				global $myHOST, $myUSER;
					if(!$linkid=mysql_connect("$myHOST","$myUSER","")){	
						echo " Verbindung zu ".$myHOST." konnte nicht hergestellt werden.";
						exit;
					}
				return $linkid;
			}
		 	function  mydbselect(){
				mysql_select_db('mopptest') or die ("Die Datenbank existiert nicht!");
			}
			function moppperday(){
				mysql_query('
					delimiter //
					create procedure sp_calculator_1234(out sp_anz int, out sp_dat int, out sp_tot double)
					Begin
					Select count(*) into sp_anz from mopp;
					Select count(distinct datum) into sp_dat from mopp;
					set sp_tot = sp_anz / sp_dat;
					end//
					call sp_calculator_1234(@sp_anz,@sp_dat,@sp_tot)//
					select @sp_tot//                                                                   
					//
				');
             //DIE STORED PROCEDURE BEFEHLE WURDEN AUF DER DATENBANK ERFOLGREICH AUSGEFÜHRT
			}
			mydbconnect();
			mydbselect();
			moppperday();
			
			$moppperday = mysql_query('select @sp_tot//                                 
										//
			');
			$moppperdaydata = mysql_fetch_row($moppperday);                     //Dies ist Line 42
			print_r ($moppperdaydata);
			print_r ($moppperday);
			
			print_r ($moppperday);
			print_r ($moppperdaydata);
			echo "$moppperday";
			echo "$moppperdaydata";			
		?>
 	</html>
 
mysql_error() sagt ARRAY..

ich hab den Code heute hartnäckig am Code gearbeitet und siehe an es läuft xD

Die Stored Procedure welche ich mittels mysql_query erstellen wollte war völlig unnötig da ich sie ja auf der Datenbank per hand eintragen kann und später einfach mittels mysql_queries ansprechen... wollt schauen ob ich das hinkrieg aber habs letztendlich gelassen..

Hier die Stored Procedure welche ich auf der Datenbank erstellt habe:

mysql>
delimiter //
create procedure sp_calculator_1234(out sp_anz int, out sp_dat int, out sp_tot double)
Begin
Select count(*) into sp_anz from mopp;
Select count(distinct datum) into sp_dat from mopp;
set sp_tot = sp_anz / sp_dat;
end//
delimiter ;
(zum schluss den delimiter wider auf ; setzen ;))



Hier der Funktionierende Code:

PHP:
<!DOCTYPE html> 
 	<html>
		<?php
			$myHOST	= 'localhost';
			$myUSER	= 'root';
			$myDB	= 'mopptest';
			function mydbconnect(){
				global $myHOST, $myUSER;
					if(!$linkid=mysql_connect("$myHOST","$myUSER","")){	
						echo " Verbindung zu ".$myHOST." konnte nicht hergestellt werden.";
						exit;
					}
		        return $linkid;
			}
		 	function  mydbselect(){
				mysql_select_db('mopptest') or die ("Die Datenbank existiert nicht!");
			}			
			function avg(){
				$myHOST	= 'localhost';
				$myUSER	= 'root';
				$linkid = mysql_connect("$myHOST","$myUSER","");
				$sql = "call sp_calculator_1999(@sp_anz,@sp_dat,@sp_tot)";
				mysql_query($sql, $linkid);			
			}
			function select(){
				$myHOST	= 'localhost';
				$myUSER	= 'root';
				$linkid = mysql_connect("$myHOST","$myUSER","");
				$sql = "select @sp_tot";
				mysql_query($sql, $linkid);	
			}
			
			mydbconnect();
			mydbselect();
			avg();
			select();

			$moppperday = mysql_query("select @sp_tot");
			$moppperdaydata = mysql_fetch_array($moppperday);			

			echo "<br>";
			echo "$moppperdaydata[0]";
			echo "<br>";
		?>
 	</html>

der echo gibt mir dann ein Druchschnittswert aus!
 
Wenn das mit dem Delimiter in Mysql funktioniert, wäre ja auch ein Insert über mehrere Tabellen möglich...so etwas wollte ich damals mal machen, mir konnte da aber keiner helfen :)
 
Zurück