0

データベースからコンテンツを選択する関数を作成しようとしています。私が抱えている問題は、配列と関数から変数を返すことを理解していないことです。

私は関数を書きましたが、配列を構築してからそれをfunction.phpから返す方法については、ぐるぐる回っているようです。

メインphpファイル。(罪のない人を保護するために、ラベルと名前は変更されています。)

<?php 
//include '../sb_mysqli_connect.php';//Connect to the Database
include 'functions.php' ; //Include the functions list

$username = 'foo';
$password = 'bar';


$fields = array( array('username', $username), array('password', $password)); //prep's     array for multiple where statements
sbpolldb ("users",$fields, null, 1, null); //function sbpolldb($sbbeta, $sbbecon, $sbbeorder, $sbbelimit, $sbbegroup)

echo $tablex['row_name_y'];
?>

Function.php ファイル

<?php
    function sbpolldb($sbbeta, $sbbecon, $sbbeorder, $sbbelimit, $sbbegroup){  //sbbeta = table name, sbbecon = where condition, sbbeval = Where value, sbbesort = sort value, sbbelim - 
        include '../sb_mysqli_connect.php';//Connect to the Database
        if (empty($sbbeorder)) {
            $sbbeotemp="";
        } else {
            $sbbeotemp=" ORDER By ".$sbbeorder;
        } //Check if order by is null
        if (empty($sbbelimit)){
            $sbbeltemp="";
        } else {
            $sbbeltemp=" LIMIT ".$sbbelimit;
        } //Check if there's a Limit set
        if (empty($sbbegroup)){
            $sbbegtemp="";
        } else {//$ssbegtemp=' GROUP By '.$sbbegroup;
            $count = sizeof($sbbegroup);
            $sbbegtemp = " GROUP BY ";
            //Loop to create WHERE conditons
            for ($i = 0; $i < $count; $i++) {
                $value = $sbbegroup[$i];
                $sbbegtemp = $sbbegtemp.$value;
                if ($i < ($count -1 )){
                    $sbbegtemp = $sbbegtemp.' , ';
                }
            };
        }
        if (empty($sbbecon)){
            $sbbectemp='';
        } else {
            $count = sizeof($sbbecon);
            $sbbectemp = 'WHERE ';
            //Loop to create WHERE conditons
            for ($i = 0; $i < $count; $i++) {
                $value = $sbbecon[$i];
                $sbbectemp = $sbbectemp.$value[0]." ="."'".$value{1}."'"; // &#39 is the code for an apostraphe
                if ($i < ($count -1 )){
                    $sbbectemp = $sbbectemp.' AND ';
                }
            };
        }
        $sbbesql = "SELECT * FROM ".$sbbeta.' ' 
        .$sbbectemp
        .$sbbegtemp
        .$sbbeotemp
        .$sbbeltemp; //&#34 is code for speach marks
        mysql_select_db("database1");
        $result = mysql_query($sbbesql, $sbbedbc) or die($sbbesql."<br/><br/>".mysql_error());;
        $temp = mysql_fetch_array($result, MYSQL_ASSOC);
        // Build Array Here Dynamically $sbbeta content as the variable name.
        // How do I then Return this Array as the name is no longer $temp?
    }
?>

SQL の構築は機能しますが、動的変数は$$label、新しい変数を古い変数の内容として宣言する を使用して作成されると思います。これは配列にも適用されますか? 多くのデータベース クエリを実行する Web アプリケーションを構築しており、コードの繰り返しを短くしたいと考えていました。

4

1 に答える 1

2

Function.php で配列を返すことができます (最後の行に return ステートメントを追加することにより):

return $temp;

したがって、呼び出し元の関数で戻り値を取得し、

$tablex=sbpolldb ("users",$fields, null, 1, null); 
echo $tablex['row_name'];
于 2013-05-08T16:44:00.073 に答える