Я новичок в PHP. Я хотел бы печатать строки на основе определенных условий. Например, у меня есть набор данных из SQL-запроса (показан ниже), и я хочу напечатать все строки [Серии №] только тогда, когда Тип = 210 и Категория = J. Я знаю, что в этом следует использовать цикл foreach случае, но я не знаю, как.

И это то, что я пробовал. Я знаю, что это неправильно, но, как я уже сказал, я новичок и самоучусь.
$get_data = sqlsrv_query($connde, $mainquery);
$data_array = [];
while ($row = sqlsrv_fetch_array($get_data, SQLSRV_FETCH_ASSOC)) {
$data_array[$row["Type"]][$row["Category"]][$row["Series No"]][$row["End Date"]];
}
foreach ($data_array as $value1) {
if ($value1 = 210) {
foreach ($value1 as $value2) {
if isset($value2 == 'J')
echo "<td>" . $row["Series No"] . "</td>";
}
}
}
$value1 = 210 присваивает номер, который вы хотите $value1 == 210 сравнить
SELECT * FROM SeriesNo WHERE Type = 235 AND Category = 'J' Затем вы просто печатаете все, что возвращается, не нужно фильтровать в своем цикле.
@AbraCadaver да, знаю, но это для другого случая.
@brombeer Да, но $value1=210 тоже не работает.
@dazed-and-confused Да. Но, к сожалению, это не то решение, которое я ищу, потому что я хотел распечатать и другие данные из того же запроса.
Хорошо, тогда, как упоминалось выше @AbraCadaver. Ваш цикл while ничего не делает. Комментарий @brombeer о вашем if также нуждается в исправлении.






Вы можете работать со строками напрямую:
<?php
$mainquery = 'SELECT `Type`, `Category`, `Series No`, `End Date` FROM `Foo`';
$get_data = sqlsrv_query($connde, $mainquery);
while ($row = sqlsrv_fetch_array($get_data, SQLSRV_FETCH_ASSOC)) {
if ($row['Type'] == 210 && $row['Category'] == 'J') {
echo "<td>" . $row['Series No'] . "</td>";
}
}
Мой Бог! Идеальный! Спасибо :) Никогда не думал, что это так просто!
В противном случае, если вам нужны строки на потом, или вы передаете данные вокруг присваивания другому массиву: $data[] = $row;
если я назначу другой массив, как вы сказали: $data[ ]= $row, как мне определить функцию позже? Могу ли я по-прежнему использовать if ($row['Type'] == 210 && $row['Category'] == 'J')? или мне нужно что-то еще?
@anis Я только упомянул об этом, потому что иногда данные передаются в представления или из одной функции в другую. Вы бы просто зацикливали $data, как если бы это были строки.
Я понимаю, что что-то подобное было вашим намерением, но тело вашего опубликованного цикла while запутано.
Строка в вашем
whileничего не делает, вы хотите назначить ее какой-то переменной?