jQuery Mobile にページ分割されたリストビューがあり、143 のアーティスト名と最初の写真と略歴を含む DB テーブル 1「アーティスト」からアーティストのサムネイルのグリッドを作成しています (この部分は機能します)。次に、Table 2 "Artworks" には、残りの (1006) 個のアートワークがすべて含まれています。
関連するアーティストのアートワークを取得するにはどうすればよいですか?結合を使用するか、「id」(Artist テーブルの主キー) の代わりに「artistId」(Artworks テーブルの外部キー) を参照する必要がありますか?
DB 構造とデータの例 例:
表 1 - アーティスト
id, artistId, firstName, lastName, bio, category, officePhone, audio, email, city, picture
14, 1-2alas, 2alas, ,2Alas Is a collective., Mural ,555-1212, 2Alas.mp3, 2alas@gmail.com, Miami, IMG_2521.jpg
表 2 - アートワーク
id, artistId, firstName, lastName, imageName , latitude, longitude , category
23, 1-2alas, 2alas, , IMG_2521.jpg, 25.800575, -80.200933, Mural
24, 1-2alas, 2alas, , IMG_2596.jpg, 25.800775, -80.196627, Mural
25, 1-2alas, 2alas, , IMG_2760.jpg, 25.799992, -80.196270, Mural
コード:
<?php
error_reporting(0);
header('Access-Control-Allow-Origin: *');
$con=mysqli_connect("localhost","usr","pass","dbname");
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$perPage = $_REQUEST['listomatic']['perPage'];
$listOffset = $_REQUEST['listomatic']['listOffset'];
$searchTerm = $_REQUEST['listomatic']['searchTerm'];
if ($searchTerm) {
$sql = "SELECT SQL_CALC_FOUND_ROWS *
FROM artists
WHERE firstName LIKE '%$searchTerm%'
ORDER BY firstName ASC
LIMIT $listOffset, $perPage";
} else {
$sql = "SELECT SQL_CALC_FOUND_ROWS *
FROM artists
ORDER BY firstName ASC
LIMIT $listOffset, $perPage";
}
$result = mysqli_query($con, $sql);
$resultNumRows = mysqli_query($con, 'SELECT FOUND_ROWS() as foundRows');
$rowFoundRows = mysqli_fetch_array($resultNumRows);
$iFoundRows = $rowFoundRows['foundRows'];
while($row = mysqli_fetch_array($result)) {
$sDate = date('m/d/Y', strtotime($row['date']));
$sPicture = ($row['picture']);
$sFirstName = ($row['firstName']);
$sLastName = ($row['lastName']);
$sId = ($row['id']);
// Listomatic requires the "total" field to show/hide the "Show More" button
$aData['total'] = $iFoundRows;
// The following is sample data in the artist table that you want to display
$aData['artists'][] = array('date' => $sDate,
'picture' => $sPicture,
'firstName' => $sFirstName,
'lastName' => $sLastName,
'id' => $sId
);
}
echo json_encode($aData);
exit;
?>