Этот код ниже повторяет 8 имен из tableOne
, но я хочу сравнить эти имена с 8 именами в другой таблице. Я хочу сравнить строки, отображаемые в $row['weight']
с tableTwo
, и, если результаты не совпадают, добавить <span class="strike"> </span>
к результату, отображаемому в $row['weight']
.
Как мне добавить if / else, чтобы $row['weight']
сравнить каждое имя с именами в другой таблице?
$result = mysqli_query($con,"SELECT * FROM tableOne LIMIT 0, 8");
$i = 1;
while($row = mysqli_fetch_array($result)) {
echo $i. " - " . $row['weight'] . '<br>';
$i++;
}
3 ответа
Вот простой код для начала:
$result = mysqli_query($con,"SELECT * FROM tableOne LIMIT 0, 8");
$result2 = mysqli_query($con,"SELECT * FROM tableTwo LIMIT 0, 8");
$i = 1;
while($row = mysqli_fetch_array($result)) {
$value1 = $row['weight'];
$row2 = mysqli_fetch_array($result2);
$value2 = $row2['weight'];
echo $i . " - table 1: ";
echo $value1;
echo ", table 2: - ";
if ($value2 != $value1) {
echo '<span class="strike">$value2</span>';
} else {
echo $value2;
}
echo '<br>';
$i++;
}
Вы можете сделать код умнее, чтобы обрабатывать случаи, когда нет 8 значений для сравнения, а также отображать значения в таблице HTML, но, надеюсь, это поможет вам начать работу.
Попробуй это:
$sql="select * from tableone to left join tabletwo tw on to.weight=tw.weight ";
Этот запрос вернет все строки в tableone, которые соответствуют, и пустые строки для тех, у которых вес не совпадает.
Итак, в вашем PHP-коде:
while($row = mysqli_fetch_array($result)) {
if(empty($row['weight'])){
echo '<span class="strike">$row[weight]</span>';
}
}
Это будет работать с любым динамическим количеством записей в таблицах.
Как насчет того, чтобы сохранить значения ($ row []) в одном массиве ($ tableOne) и сделать то же самое для таблицы 2 ($ tableTwo), а затем выполнить сравнение в foreach ()? (Для простоты, если вы не хотите никаких объединений)
Похожие вопросы
Связанные вопросы
Новые вопросы
php
PHP — это открытый, мультипарадигмальный, динамически типизированный и интерпретируемый язык сценариев, изначально разработанный для веб-разработки на стороне сервера. Используйте этот тег для вопросов о программировании на языке PHP.
$row2 = mysqli_fetch_array($result2);
вместо$results
? Кроме того, это работает, но строки должны совпадать между таблицами. Возможно ли, чтобы имена были в любом порядке, но при этом сравнивались?$result2
; Я отредактировал код. Что касается порядка, вы можете добавить предложениеORDER BY
в SQL. Однако, если значения могут отличаться, вам может потребоваться заказать другой столбец, например идентификатор или дату создания. Не зная схемы таблицы, трудно сказать.tableOne
любому из 8 вtableTwo
, а затем, еслиtableTwo
не соответствует содержать данные вtableOne
, затем зачеркнуть имя (вывод)tableOne
. - но прямо сейчас он помещает страйк только в выводtableOne
, если он находится в соответствующей строке вtableTwo
. ~ извините, это может показаться запутанным.