Как отобразить комментарий только один раз, но отобразить все изображения из MySQL в PHP? - PullRequest
0 голосов
/ 22 февраля 2019

Я хочу отобразить комментарий только один раз, например (testsetest) со связанными изображениями (с одинаковым идентификатором изображения, соединив две таблицы).

Пример (которого я хочу достичь): comment: foolс изображениями: name1, name 2

Заголовок неверного вывода.

Структура базы данных

сообщений:

| commentid |  comment  | iamgesid |
------------------------------------
|     1     |   fool    |   5557   |
|     2     |  fool2    |   5585   |
------------------------------------

множественное изображение:

| id |  image  | imagesid |
---------------------------
| 1  |  name1  |    5557  |
| 2  |  name2  |    5557  |
| 3  |  name3  |    5585  |
---------------------------

Это мой текущий код:

$sql = "SELECT image, posts.imagesid, multiple_image.imagesid, comment
        FROM multiple_image JOIN posts ON (multiple_image.imagesid=posts.imagesid)";
$result = $conn->query($sql);

if (!$result) {
    trigger_error('Invalid query: ' . $conn->error);
}

if ($result->num_rows > 0) {

    // output data of each row
    while($row = $result->fetch_assoc()) {

echo $row['comment'];
$imgs= "<div id='img_div'><img width='' src='upload/".$row['image']."' ></div>";
echo $imgs;
}
}

Ответы [ 3 ]

0 голосов
/ 22 февраля 2019

Вам нужно будет управлять разбивкой результата и порядка по комментированию

Пожалуйста, смотрите обновленный код.


$sql = "SELECT 
          image, 
          posts.imagesid, 
          multiple_image.imagesid, 
          comment
        FROM
           multiple_image 
        JOIN posts ON (multiple_image.imagesid=posts.imagesid)
        ORDER BY 
           commentid
";

$result = $conn->query($sql);

if (!$result) {
    trigger_error('Invalid query: ' . $conn->error);
}


if ($result->num_rows > 0) {

    // output data of each row
    $comment = '';
    while($row = $result->fetch_assoc()) {
      if($comment != $row['comment']){
         echo $row['comment'];
         $comment = $row['comment'];
      }

        $imgs= "<div id='img_div'><img width='' src='upload/".$row['image']."' ></div>";
        echo $imgs;
    }
}
0 голосов
/ 22 февраля 2019

Я надеюсь, это поможет:

$sql    = "SELECT 
          image, 
          posts.imagesid, 
          multiple_image.imagesid, 
          comment
        FROM
           multiple_image 
        JOIN posts ON (multiple_image.imagesid=posts.imagesid)
        ORDER BY 
           commentid";
$result = $conn->query($sql);
if (!$result) {
    trigger_error('Invalid query: ' . $conn->error);
}
if ($result->num_rows > 0) {
    $comment = array();
    while ($row = $result->fetch_assoc()) {
        // check imagesid is not exist in array
        if (in_array($row['imagesid'], $comment) == false) {
            echo $row['comment'];
            $comment[] = $row['imagesid'];
        }
        $imgs = "<div id='img_div'><img width='' src='upload/" . $row['image'] . "' ></div>";
        echo $imgs;
    }
}
0 голосов
/ 22 февраля 2019

Вы можете создать флаг и проверить, равен ли он 0. Если это 0, то вы можете показать комментарий, иначе вам не нужно показывать комментарий.Проверьте ниже код:

if ($result->num_rows > 0) {

    // output data of each row
    $loop = 0;
    while ($row = $result->fetch_assoc()) {
        if ($loop == 0) {            
            echo $row['comment'];
        }
        $imgs = "<div id='img_div'><img width='' src='upload/" . $row['image'] . "' ></div>";
        echo $imgs;
        $loop++;
    }
}

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...