0

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;
?>
4

0 に答える 0