2013-05-09 2 views
0

문제가 있습니다. 데이터베이스의 값 배열을 쉼표로 문자열에 전달하려고하면 내 로컬 호스트에서 제대로 작동하지만 온라인 서버에 업로드하면 문자열에 값이 표시되지 않습니다. 예 : select from table where in (,,)은 쉼표 만 표시하고 내 xampp 서버에서는 훌륭하게 작동합니다. 어떤 아이디어가 될 수 있을까요? 다음은 코드입니다 :온라인 서버에서 작동하지 않는 문자열에 PHP 배열

<?php 

$sql = "select id from users where gid = 1"; 
$result = mysql_query($sql); 
$cat_titles=array(); 
while($row=mysql_fetch_assoc($result)) 
{ 
$cat_titles[] = $row['id ']; 
// do stuff with other column 
// data if we want 
} 
mysql_free_result($result); 

echo "<p>\n"; 
foreach($cat_titles as $v) 
{ 
    $cat_titles[]= $row['id']; 

} 
echo "</p>\n"; 

$cat_titles = implode(',',$cat_titles); 
$cat_titles = substr($cat_titles,0,-2); 
echo $cat_titles; 
echo "select * from users where IN (".$cat_titles.")"; 



?> 
+0

데이터베이스를 구성 했습니까? – Kami

+0

'foreach' 루프를 제거하십시오. – andrewsi

+0

이것은 처음부터 결코 작동하지 않았고, 생각했다면 아마 상상했을 것입니다. 두 번째 루프에서는'$ cat_titles' 배열을 비어있는'$ row' 값으로 비 웁니다. – Sammitch

답변

1

여기에 잠재적 인 문제의 수 : 당신은 당신이 결코 알지 못할 것이다 쿼리에 문제가있는 경우에, 그래서 당신은, 데이터베이스 액세스 주변 오류 조건을 처리하지 않는

.

두 번째 선택 쿼리는 WHERE 절에서 필드를 지정하지 않는, 그래서

코드의이 섹션은 절대적으로 아무것도하지 않고 당신은 문제가 가능성이있다 사실에 작동하지 않을 것입니다. 당신은 기본적으로 기존의 배열 throguh 루핑 및 새 인덱스에 빈 값을 추가되도록

foreach($cat_titles as $v) 
{ 
    $cat_titles[]= $row['id']; 

} 

다음은 $ 행 [ 'ID는'] 값이 없습니다.

실제로이 쿼리를 단일 쿼리로 수행 할 수 있습니다. 실제로 수행하려는 작업을 설명하면 도움이 될 수 있습니다.

mysql_* 기능을 사용하지 않아야합니다. 그들은 더 이상 사용되지 않습니다. 대신 mysqli 또는 PDO을 사용하십시오.