Я смотрю, можно ли увеличивать $tid
на каждый каждый раз,
так что это $tid = 1, 2, 3, 4, 5, etc...
Этот $tid
будет подсчитывать строки таблицы, поэтому $tid=1
будет эхо-строка информации о строке 1, $tid=2
будет эхом строки 2 информации и так далее. Хотя я могу чувствовать, что это не лучшее решение, если кто-то может предложить более предпочтительную альтернативу тому, как это можно сделать, это было бы здорово.
TL: DR: Я просто хотел бы найти метод, в котором я могу циклически s_id = $tid
по всем строкам, где s_id = $tid
используя пример кода ниже
$tid = 1;
$query2 = "SELECT * FROM 'SALE'
LEFT JOIN 'SALE_ROW'
ON 'SALE_ROW'.s_id='SALE'.s_id
WHERE 'SALE_ROW'.s_id = {$tid}";
$results2 = mysqli_query($dbconnection, $query2);
while ($row = mysqli_fetch_array($results2)) {
echo '<div class="pphhold">';
echo '<div class="pcdtstlye">Previous Details</div>';
echo '<div> s_id: ' . $row['s_id'] .'</div>';
echo '<div> p_id: ' . $row['p_id'] .'</div>';
echo '<div> sr_qty: ' . $row['sr_qty'] .'</div>';
echo '<div> s_total: ' . $row['s_total'] . '</div>';
echo '<div> s_date: ' . $row['s_date'] . '</div>';
echo '</div>';
};
В вашем коде вы выполняете запрос MySQL за пределами цикла. Он будет выполнен один раз, а затем вы зацикливаете результат. Если вы хотите изменить свой запрос (который я предполагаю как $tid
является параметром вашего запроса) и хотите получить результат для измененного запроса, вы должны выполнить запрос во второй раз. Если вы знаете все возможные значения $tid
, он может работать следующим образом:
$tids = [1, 2, 3];
foreach($tids as $tid) {
$query2 = "SELECT * FROM 'SALE' LEFT JOIN 'SALE_ROW' ON 'SALE_ROW'.s_id='SALE'.s_id WHERE 'SALE_ROW'.s_id = {$tid}";
$results2 = mysqli_query($dbconnection, $query2);
$row = mysqli_fetch_array($results2);
echo '<div class="pphhold">';
echo '<div class="pcdtstlye">Previous Details</div>';
echo '<div> s_id: ' . $row['s_id'] .'</div>';
echo '<div> p_id: ' . $row['p_id'] .'</div>';
echo '<div> sr_qty: ' . $row['sr_qty'] .'</div>';
echo '<div> s_total: ' . $row['s_total'] . '</div>';
echo '<div> s_date: ' . $row['s_date'] . '</div>';
echo '</div>';
}
Но это не очень хорошо, так как вам нужно выполнить запрос несколько раз. Поэтому просто используйте IN
:
$tids = [1, 2, 3];
$query2 = "SELECT * FROM 'SALE' LEFT JOIN 'SALE_ROW' ON 'SALE_ROW'.s_id='SALE'.s_id WHERE 'SALE_ROW'.s_id IN(" . implode(',', $tids) . ")";
$results2 = mysqli_query($dbconnection, $query2);
while($row = mysqli_fetch_array($results2)) {
echo '<div class="pphhold">';
echo '<div class="pcdtstlye">Previous Details</div>';
echo '<div> s_id: ' . $row['s_id'] .'</div>';
echo '<div> p_id: ' . $row['p_id'] .'</div>';
echo '<div> sr_qty: ' . $row['sr_qty'] .'</div>';
echo '<div> s_total: ' . $row['s_total'] . '</div>';
echo '<div> s_date: ' . $row['s_date'] . '</div>';
echo '</div>';
}
используйте эту функцию, чтобы получить несколько строк из этого
$query2 = "SELECT * FROM 'SALE' LEFT JOIN 'SALE_ROW' ON 'SALE_ROW'.s_id='SALE'.s_id WHERE 'SALE_ROW'.s_id = {$tid}";
$results2 = mysqli_query($dbconnection, $query2);
$count=mysqli_num_rows($results2);
теперь счет имеет счет результата
найти значение count из запроса:
$result = mysqli_query($dbconnection,"select count(1) FROM table");
$row = mysqli_fetch_array($result);
$count = $row[0];
COUNT
чтобы избежать необходимости выбирать все строки
SELECT count(*) FROM table
?
$tids
- это просто массив идентификаторов, для которых вы выбираете. Вы можете ввести все, что вам нравится в этом массиве, или понять и реорганизовать решение