function/array Problem...

Kimble

Erfahrenes Mitglied
hi,
was ist an folgendem Code falsch???
PHP:
function warray( $array, $query, $name )
{
	$num = mysql_num_rows( $query );
	for( $i=0; $i<$num; $i++ )
	{
		$nn = mysql_result( $query, $i, $name );
		$array[$i] = $nn;
	}
}
wenn ich das jetzt so aufrufe:
PHP:
warray( $id, $mid, "id" );
for( $i=0; $i<$num; $i++ )
{
        echo "$id[$i]";
}
dann wird allerdings nichts ausgegeben, obwohl ja $id[] gefuellt wird!

Bitte helft mir :(
 
einiges ist falsch :-)

also 1. variablen die du übergibst können zwar innerhalb der function geändert werden aber die änderung ist ausserhalb nicht mehr gültig ..

anders gesagt du übergibst eine var änderst sie intern und die änderung wird beim ende der function wieder rückgängig gemacht...

da hilft nur ein return $array

2. deine sql verbindung ist innerhalb deiner function nicht bekannt so wie jetzt wird jeder mysql befehl fehlschlagen ..

irgend wo machte ja sowas:

$link = mysql_open_db(......)

dann muss in der function sowas stehen:

global $link;

erst dann können sql sachen gehen ..
 
hi,
geht immer noch nich :(
hier is der komplette Code:
PHP:
<html>
<head>
<title>Test-Forum</title>
<?php
	function warray( $array, $query, $name )
	{
		global $db;
		$num = mysql_num_rows( $query );
		for( $i=0; $i<$num; $i++ )
		{
			$nn = mysql_result( $query, $i, $name );
			$array[$i] = $nn;
		}

		return $array;
	}
?>
</head>
<body>
<?php
	$db = mysql_connect( );

	$id = array();
	
	$mheader = mysql_db_query( "forum", "SELECT * FROM mainheader" );
	$mnum = mysql_num_rows( $mheader );

	for( $i=0; $i<$mnum; $i++ )
	{
		$nn = mysql_result( $mheader, $i, "name" );
		echo "$nn<br>";
	}

	$mid = mysql_db_query( "forum", "SELECT * FROM mainheader" );

	warray( $id, $mid, "id" );
	
	echo "$id[0], $id[1], $id[2]";

	mysql_close($db);
?>
</body>
</html>
 
Zurück