0

私は問題があります。データベースからの値の配列があります。それをコンマ付きの文字列に渡そうとすると、ローカルホストでは正常に動作しますが、オンライン サーバーにアップロードすると、文字列に値が表示されません。例:select from table where in (,,)カンマのみを表示し、私のxamppサーバーではうまく機能します。これが何であるかについてのアイデアはありますか?コードは次のとおりです。

<?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.")";



?>
4

1 に答える 1

1

ここにいくつかの潜在的な問題があります:

データベース アクセスに関するエラー状態を処理していないため、クエリに問題がある場合はわかりません。

2 番目の選択クエリでは、WHERE 句でフィールドが指定されていないため、機能しません。

コードのこのセクションはまったく何もせず、実際に問題が発生する可能性が高い場所です。

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

}

ここで $row['id'] には値がないため、基本的には既存の配列をループし、空の値を新しいインデックスに追加します。

ほとんどの場合、単一のクエリでこれを行うことができますが、実際に何をしようとしているのかを説明すると役立つ場合があります。

関数を使用しないでくださいmysql_*。それらは非推奨です。代わりにmysqliまたはを使用してください。PDO

于 2013-05-09T17:50:45.753 に答える