私は利用可能なジムで地図を作ろうとしています。だから、次のようになります。私は多くのトレーナーを教えてくれませんが、
- 名前ジム
- オープンスポット:(数)ジム
運動しの時間の
- ロゴ画像。例えばdumbelの
画像
トレーナー
一部行使時からのトレーナーは、複数を表示する必要がゴマ、私は6人のトレーナーと6つの演習のようになりました、6回と6回の異なるエクササイズ画像が表示されます。私はそれらをデータベースに保存します。しかし、彼らは現れません。
ここに私のコード:
$sql = "SELECT * FROM forts";
$result = $mysqli->query($sql);
if ($result->num_rows > 0) {
echo "[";
$output = array();
while($row = $result->fetch_assoc()) {
$url = preg_replace("/^http:/i", "https:", $row['url']);
$sqlmon = "SELECT * FROM gym_trainers WHERE fort_id = " . $row['id'];
$resultmon = $mysqli->query($sqlmon);
$mon = $resultmon->fetch_assoc();
$sqlextra = "SELECT * FROM extrainfo WHERE fort_id = " . $row['id'] . " ORDER BY last_modified DESC";
$resultextra = $mysqli->query($sqlextra);
$extra = $resultextra->fetch_assoc();
array_push($output, '
{
"id": "' . $row['id'] . '",
"name": "' . htmlspecialchars($row['name']) . '",
"image": "' . $url . '",
"team": "' . $team . '",
"spots": ' . $extra['spots'] . ',
"exer_time": ' . $mon['time_exerise'] . ',
"trainer": "' . htmlspecialchars($mon['trainer_name']) . '",
"exercise_id": ' . $mon['exercise_id'] . ',
"lat": ' . $row['lat'] . ',
"lng": ' . $row['lon'] . '
}
');
}
echo implode(",", $output);
echo "]";
私はこの部分で何かを変更する必要があるが、何か分からないと思う:特定の問題は、あなたからのみ1レコードを取得することである
"exer_time": ' . $mon['time_exerise'] . ',
"trainer": "' . htmlspecialchars($mon['trainer_name']) . '",
"exercise_id": ' . $mon['exercise_id'] . ',
このようにJSONを書いてはいけません。超醜いだけではなく、間違っています。 ['json_encode'](http://php.net/manual/en/function.json-encode.php)を使うと問題はありません。 – tadman
**警告**:mysqliを使用する場合は、[パラメータ化されたクエリ](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)と['bind_param']( http://php.net/manual/en/mysqli-stmt.bind-param.php)を使用してクエリにユーザーデータを追加します。 **重大な[SQLインジェクションのバグ](http://bobby-tables.com/)を作成したため、文字列の補間または連結を使用してこれを実行しないでください。 ** '$ _POST'、' $ _GET'、**任意の**ユーザデータを直接クエリーに入れないでください。誰かがあなたのミスを悪用しようとすると非常に危険です。 – tadman
@tadmanどういう意味ですか、それに伴う問題は、正しい方法が表示されないためです。 –