variablenübergabe innerhalb eines scriptes

havoc

Mitglied
Hallo.
Ich habe ein kleines Problem und zwar folgendes:

Ich habe ein script in dem ich um Tipparbeit zu sparen mir eine dbconnect function gemacht habe und die dann in den anderen funktionen aufrufen wollte. leider übergibt der mir das result des querys nicht:(
folgendes ist mein wirklcih sehr einfaches script:

PHP:
<?php
function dbconnect ($sql){
include("con_def.inc");
$con_id = mysql_connect($server, $user, $pwd);
@mysql_select_db($db, $con_id);
$result = mysql_query($sql);
}
function zeigen() {
$sql="SELECT * FROM buch";
dbconnect($sql);
$rows = mysql_num_rows($result);
echo $rows;
}
zeigen();
?>

anscheinen übergibt der die varialbe $result nicht richtig, denn ich bekomme als ausgabe immer ein warning, dass in der zeile mit dem mysql_num_rows ein nicht gültige "mysql link ressource" vorliegt.

hat jemand ne ahnung woran das liegen kann?? wenn ich das zählen in der dbconnect () funktion mache, dann funktioniert das gut.

MfG
nils
 
Original geschrieben von havoc
hat jemand ne ahnung woran das liegen kann?? wenn ich das zählen in der dbconnect () funktion mache, dann funktioniert das gut.
jepp und zwar folgendes: du rufst die function zeige() auf, in der du einen sql string an die funtion dbconnect() übergibst, aber arbeitest dann in der funtion zeige() weiter, OHNE dass die function dbconnect() was zurückgeben hat. somit ist in der function zeige() die variable $result nicht definiert.

code:
PHP:
<?
function dbconnect ($sql){
     include("con_def.inc");
     $con_id = mysql_connect($server, $user, $pwd) OR die("Keine Datenbankverbindung verfügbar!");    
     mysql_select_db($db, $con_id) OR die("Datenbank existiert nich!");
     $result = mysql_query($sql);
     
     return $result;
}

function zeigen() {
     $sql = "SELECT * FROM buch";
     $result = dbconnect($sql);
     $rows = mysql_num_rows($result);
     echo $rows;
}

zeigen();
?>

versuch das mal so! (code is ungestest!!).
 
Zuletzt bearbeitet:
jau danke muss das mal mit
PHP:
 $result = dbconnect();
probieren.

einfach nur mit return in der dbconnect funktion geht es nicht.
 
Zurück