私のコードは、MySQL の行からいくつかのフィールドをフェッチし、mysql_fetch_array() を介して MYSQL_ASSOC 配列を作成し、それを JSON にフォーマットしてブラウザの Javascript に返します。この部分は機能します。時間を記述するために、PHP で生成された変数とその値を追加で挿入したいと考えています。この変数にはフィールドが存在し、タイムスタンプ コードは別のスクリプトで機能して、元の最初の投稿の時刻を挿入します。このスクリプトでは、値を、データベース内の元の時間値ではなく、2 番目の PHP 更新スクリプトが実行される時間にしたいと考えています。多くの試みにもかかわらず、私はこの最後の部分を機能させることができません。関連するコードは次のとおりです。
$timeStamp = date("Ymd");
$userIP = $_SERVER['REMOTE_ADDR'];
$postingID = "$timeStamp-$userIP-u";
$latestUpdateID = str_replace(".", "", "$postingID")
//some pre-processing to make $fields_sql, an array to use in the SELECT
$fetch = mysql_query("SELECT $fields_sql FROM residence WHERE propertyID = '$propertyID'");
if( mysql_num_rows( $fetch ) ){
while ( $row = mysql_fetch_array( $fetch, MYSQL_ASSOC ) ){
for( $i = 0; $i < count( $propertyFields ); $i++ ) {
$row_array[ $propertyFields[$i] ] = mysql_real_escape_string( $row[ $propertyFields[$i] ] );
}
array_push( $return_arr,$row_array );
//get [{"city":"Rochester","streetAddress":"100 Main", etc.}]
}
$propertyFields[ 'latestUpdateID' ] = $latestUpdateID; //get "latestUpdateID":""
array_push( $return_arr,$propertyFields[ 'latestUpdateID' ] ); //pushed in but no value
//want [{"city":"Rochester","streetAddress":"100 Main", "latestUpdateID":"20131107", etc.}]
} else { die('<li class=error>Ooops</li> }
echo json_encode( $return_arr );
2 つのコメント: 1. ご覧のとおり、クエリは 1 行しか返しません。while ループはおそらく必要ありませんが、他の方法でそれを行う方法がわかりません。問題を解決する提案も二重に高く評価されます。2. はい、mysql_ ファミリーのコマンドが非推奨であることは知っています。私はこれらのいくつかを持っており、次のプロジェクトはそれらすべてを PDO に変換することですが、現時点では、PDO はこのようなものよりもはるかに理解していません。