2013-05-08 1 views
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를 사용하여 만든 믿고, 새 변수를 이전 변수의 내용으로 선언합니다. 이것은 배열에도 적용됩니까? 많은 데이터베이스 쿼리를 수행 할 웹 응용 프로그램을 만들고 코드 반복을 줄이려고했습니다.

답변

2

당신은 (로 마지막 줄에서 return 문을 추가하여) Function.php의 배열을 반환 할 수 있습니다

return $temp; 

그래서 호출하는 함수의 반환 값을 검색,

$tablex=sbpolldb ("users",$fields, null, 1, null); 
echo $tablex['row_name']; 
+0

환호 감사합니다 , Acharya –

+0

문제 없음 ... – progrrammer