0

からデータを出力しようとしています

  • 表 : アーティスト
  • 行:アーティスト

この形式に。アーティスト名には特殊文字を含めることができ、その数は 16,000 を超えます。ファイルに書き込む必要があります。たとえば、どんなアーティスト.phpとも呼ばれます

$Artist = array(
    "Name from database",
    "Name from database",
    "Name from database",
    "Name from database",
    "Name from database"
);

説明不足で申し訳ありません。ajaxオートコンプリートのためにこれを行います..そのため、この配列を含むファイルを作成する必要があります。

私はそれを機能させ、必要な方法で出力し、完了後にすべてをファイルに伝える方法にこだわっています。

ここに私が持っているものがあります

require_once('config.php'); 

$res = mysql_query("SELECT artist FROM artists");
$ids = array();
$NotAllowed = array("(", ")", "+", ".", "-", "$", "#", "'", "\"", "%",":", ",", "*", "\\", "/");
    echo '$aUsers = array('; echo "<br>";
while ($row = mysql_fetch_assoc($res)) {
  $ids[] = $row['artist'];
    $FixedArtist = str_replace($NotAllowed, " ", $row['artist']);
        echo "\""; echo $FixedArtist; echo "\","; echo "<br>";

}
    echo "\"Lastname\""; echo "<br>";
    echo ");";




    $FileToSaveTo = "ajax-search.php";
    $fp = fopen($FileToSaveTo,"w") or die ("Error opening file in write mode!");
    fputs($fp,$content);
    fclose($fp) or die ("Error closing file!");
4

1 に答える 1

0

はい、結果の読み取りに PDO を使用して、別の artist.json ファイルにエクスポートしてみてください。よりクリーンです。

/*require_once('config.php'); 
$res = mysql_query("SELECT artist FROM artists");
$ids = array();
$NotAllowed = array("(", ")", "+", ".", "-", "$", "#", "'", "\"", "%",":", ",", "*", "\\", "/");
/*while ($row = mysql_fetch_assoc($res)) {
  $ids[] = str_replace($NotAllowed, " ", $row['artist']);  
}*/

//PDO version
$dsn = 'mysql:dbname=testdb;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';

try {
    $dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}

$sth = $dbh->prepare("SELECT artist FROM artists");
$sth->execute();
$ids = $sth->fetch(PDO::FETCH_ASSOC);
//replace not allowed chars here

file_put_contents('artists.json', json_encode($ids));

ajax-search.php はこのファイルをロードします

于 2012-11-11T01:42:13.683 に答える