GROUP_CONCATを使用して、複数のイメージエントリを持つユーザIDからデータベース情報(イメージ)を取得しますか?これらのイメージは、ファイルパスの形式です。その場合、イメージIDをユーザーIDごとに1つの行に出力することができます。whileループでGROUP_CONCATを使用して、同じユーザが複数のデータベースエントリを1行で出力する場合
この問題に関する広範な調査の後、私は必要なものの簡単な例を見つけましたが、私が現在持っているクエリでは失われてしまいます。問題の画像部分が'<img src="images/colleges/'.$cImage.'"/>' . '</div>'
ある
<table>
<th></th>
<th>Name</th>
<th>Location</th>
<th>High School</th>
<th class="thLargest">Colleges</th>
</table>
<table>
<?php
session_start();
$conn = mysqli_connect("", "", "", "");
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql = "SELECT college.id, college.title, GROUP_CONCAT(college.image) AS cImage, users.profileImage, users.fname, users.lname, users.level AS ulevel, users.city, users.state, users.highschool, users.primarysport, usercollege.id, usercollege.collegeid
FROM college, users, usercollege
WHERE usercollege.collegeid = college.id AND usercollege.userid = users.id
ORDER BY usercollege.createdate ASC";
if ($result = mysqli_query($conn, $sql)) {
while ($row = mysqli_fetch_assoc($result)) {
if ($row['status'] == null) {
echo "";
}
if ($row['ulevel'] == "A Profile") {
echo '<tr>' .
'<td class="small">' . '<a href="http://www.example.com/aprofile.php?user="'.$row["username"] . '>' . '<img src="'.$row['profileImage'].'" />' . '</a>' . '</td>' .
'<td class="large">' . $row['fname']. ", " . $row['lname'] . '</td>' .
'<td class="large">' . $row['city'] . ", " . $row['state'] . '</td>' .
'<td class="large">' . $row['highschool'] . " (" . $row['primarysport'] . ") " . '</td>' .
'<td class="largest">' .
'<div class="Limage">' . '<img src="images/colleges/'.$cImage.'"/>' . '</div>' .
'</td>' .
'</tr>';
}
}
mysqli_free_result($result);
}
mysqli_close($conn);
?>
</table>
:今のところ、ここで
は私のコードです。
ユーザーは大学画像を最大10個まで入力することができるため、同じユーザーIDを使用して別の行に表示するのではなく、これらの画像を並べて表示したいと考えています。
つまり、データベース内の複数の行のユーザーデータを1つの行にまとめ、そのテーブルに重複するユーザーIDがないようにしたいとします。
私はcImageを爆発させ、foreachも使っていますが、これは私の経験が不足しているところです。
のforeachで構文エラーを受け取ります。助言がありますか。 –
[この質問](https://stackoverflow.com/questions/5861826/exploding-an-array-within-a-foreach-loop-parameter)のように動作する必要があります。おそらく 'foreach'の前に'; 'がありません。 – Sal
私はsqlクエリを '' SELECT ...... ASC ';'に変更しました。これにより、構文エラーを解決するのに役立ちました。 'foreach'は角かっこを必要としますか? –