2011-06-13 4 views
1

나는 데이터베이스 필터에서 다차원 배열을 만들 수있는 정확한 형식을 찾고 있습니다. 전자 메일 주소, 이름 및 성의 배열을로드하기위한 정확한 형식을 요구하는 프로젝트에 대한 지속적인 연락처 PHP 래퍼를 사용하고 있습니다. 클래스가 받아들이는 배열의 올바른 형식은 아래를 참조하십시오 :MYSQL 필터에서 동적 다차원 배열 만들기

<php? 
$contacts = array(
    array(
     'Email Address' => '[email protected]', 
     'First Name' => 'Mike - TEST API', 
     'Last Name' => 'NULL', 
    ) 

); 

코드를 내가 가지고 지금 다음과 같습니다 :

Array (
[0] => Array ([Email Address] =>) 
[1] => Array ([First Name] => NULL) 
[2] => Array ([Last Name] => Last Name)) 

Array (
[0] => Array ([Email Address] => [email protected]) 
[1] => Array ([First Name] => NULL) 
[2] => Array ([Last Name] => Last Name)) 

Array ( 
[0] => Array ([Email Address] => [email protected]) 
[1] => Array ([First Name] => NULL) 
[2] => Array 
이이 같은 배열을 생산

<form action="<?php echo $PHP_SELF;?>" method="get" name="form" target="_self" id="form"> 
<p> 
<select name="networks[]" size="50" multiple> 
<option value="West Bronx">West Bronx</option> 
<option value="Williamsburg">Williamsburg</option> 
<option value="Turtle Bay">Turtle Bay</option> 
<option value="Times Square">Times Square</option> 
<option value="Southeast Bronx">Southeast Bronx</option> 
<option value="Sutton">Sutton</option> 
<option value="Sunnyside">Sunnyside</option> 
<option value="Sheridan Square">Sheridan Square</option> 
<option value="Sheepshead">Sheepshead</option> 
<option value="Roosevelt">Roosevelt</option> 
<option value="Riverdale">Riverdale</option> 
<option value="Ridgewood">Ridgewood</option> 
<option value="Richmond Hill">Richmond Hill</option> 
<option value="Battery Park City Network">Battery Park City Network</option> 
<option value="Yorkville">Yorkville</option> 
</select> 
<br> 
<input type="submit" name="Submit" value="Submit"> 
</form> 

<? 



// Get the value of the filters and see if there are more then one selection 
$foo = $_GET['networks']; 
$sQuery = ""; 
if (sizeof($foo) > 0) { 
    for ($i=0;$i<sizeof($foo);$i++) { 
    $sQuery .= "Network LIKE '%$foo[$i]%' OR "; 
    } 
} 
else{ 
    $sQuery = "Network LIKE '%$foo[0]%"; 
} 
mysql_select_db($database_conn, $conn); 


$query_Recordset0 = "SELECT * FROM contacts WHERE $sQuery "; 
// Knock the last "OR" off the Query 
$query_Recordset1 = substr($query_Recordset0, 0, -4); 


echo $query_Recordset1; 
$Recordset1 = mysql_query($query_Recordset1, $conn) or die(mysql_error()); 







?> 



<table width="200" border="0" cellpadding="0" cellspacing="0"> 
<tr> 
<td>Network</td> 
<td>Email</td> 
</tr> 
<?php do { ?> 
<tr> 
<td><?php echo $row_Recordset1['Network']; ?></td> 
<td><?php echo $row_Recordset1['Email']; ?></td> 

<td><?php echo $row_Recordset1['First Name']; ?></td> 
<td><?php echo $row_Recordset1['Last Name']; ?></td> 
</tr> 
<?php 

//BUILD The Multidimensional Array from the database Query and store it appropriately 

$newarray = array(); 
$newarray[]['Email Address']=$row_Recordset1['Email']; 
$newarray[]['First Name']='NULL'; 
$newarray[]['Last Name']='Last Name'; 
print_r($newarray); 

도움을 주시면 대단히 감사하겠습니다. 데이터 코드가 작동하는 경우처럼 싶습니다 방법

$contacts = array(
    array(
     'Email Address' => '[email protected]', 
     'First Name' => 'Mike - TEST API', 
     'Last Name' => 'NULL', 
    ) 

); 
+0

당신이 우리에게 보여 주시기 바랍니다 수 : 아래

는 내가 같이 볼 필요가 무엇인가? '어레이 ( [0] =>' ' [1] => NULL, [2] => 성) 어레이 ( [0] => [email protected], [1 => NULL, [2] => 성) 어레이 ( [0] => [email protected], [1] => NULL, [2] => ')' – Nightwolf

+0

후 출력 배열을 다시 포맷하면 원래 질문에서 세 번째 배열의 일부가 누락 된 것처럼 보입니다. –

+0

예 올바른 형식은 다음과 같습니다. 배열 ([0] => 배열 ([전자 메일 주소] => [email protected] [이름] => Mike-TEST API [성] => NULL) [1] => 배열 ([이메일 주소] => [email protected] [이름] => Bryan - TEST API [성] => NULL) – mkephart25

답변

1
$newarray[] = array(
    'Email Address'=>$row_Recordset1['Email']; 
    'First Name'=>'NULL'; 
    'Last Name'=>'Last Name'; 
); 

print_r($newarray); 
+0

이것은 실제 데이터가 도착하기 전에 일부 비어있는 값을 반환하지만 어떤 이유로 감사합니다! Array ([0] => Array ([전자 메일 주소] => [이름] => [성] =>)) 배열 ([0] => 배열 ([전자 메일 주소] => [이름] 1] => 배열 ([전자 메일 주소] => [email protected] [이름] => [성] =>)) 배열 ([0] => [이름] => [성] =>) [1] => 배열 ([전자 메일 주소] => [email protected] [이름] => [성] =>) [ – mkephart25

+0

배열을 제대로 초기화하고 있습니까? 빈 레코드가 반환되지 않도록 db 출력을 확인할 수 있습니까? –

+0

나는 for 루프 안에 그냥 인쇄했다. 모든 것이 완벽하게 작동한다. – mkephart25