Изменение порядка данных mysql для соответствия таблице из 4 столбцов, где каждая строка имеет различное количество столбцов (с использованием colspan) - PullRequest
0 голосов
/ 17 июня 2011

Я пытаюсь собрать фото портфолио для друга, состоящее из пейзажных и профильных фотографий. У меня есть таблица SQL с деталями фотографии, включая столбец, в котором указано, является ли фотография горизонтальной или вертикальной.

Строки таблицы сгруппированы в 3: 1-й ряд таблицы с 4 вертикальными картинками. 2-й ряд показывает 1 вертикальное изображение, 1 горизонтальное изображение с разметкой 2, а затем еще одно вертикальное изображение. 3-й ряд показывает 4 вертикальных изображения.

Повторение вышеуказанного шаблона по мере необходимости.

Я могу заставить его ограничить таблицу 4 столбцами, используя приведенный ниже код, и добавить colspan для горизонтальных фотографий, но он не в правильном порядке - он также пропускает первую запись.

Любая помощь будет оценена!

<?php
$cols = 4; // number of columns
$c = 1;
echo "<table border=1>";
echo "<tr>";
while ($row_photos = mysql_fetch_assoc($photos)) {
    if ($row_photos['photo_type'] == "Vertical") {
    echo "<td>".stripslashes($row_photos['photo_file'])."&nbsp;".stripslashes($row_photos['photo_type'])."</td>";
    }
    elseif ($row_photos['photo_type'] == "Horizontal") {
    echo "<td colspan=\"2\">".stripslashes($row_photos['photo_file'])."&nbsp;".stripslashes($row_photos['photo_type'])."</td>";
    $c++;
    }
    if ($c == $cols) {
        echo "</tr><tr>";
        $c = 1;
    } else { $c++; }
}
echo "</tr>" ;
echo "</table>";
?>

1 Ответ

0 голосов
/ 17 июня 2011

Есть несколько проблем:

  1. @ Дан прав, вам нужно изменить $c на 0 или использовать > вместо ==;
  2. Выдобавляем 2 к $c в каждом цикле вместо 1, один раз перед оператором if и один раз в операторе else;
  3. Ваш цикл завершится ошибкой, если порядок записей из базы данныхне совсем верно.Я бы рекомендовал просмотреть все ваши записи один раз, чтобы создать 2 массива: один с горизонтальными фотографиями и один с вертикальными.Затем вы можете настроить цикл и просто выбрать фотографию из соответствующего массива.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...