MYSQLI - приращение запроса ГДЕ значение за прогон

0

Я смотрю, можно ли увеличивать $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>';

};
Теги:
mysqli
auto-increment

2 ответа

1
Лучший ответ

В вашем коде вы выполняете запрос 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>';
}
  • 0
    Это великолепно и именно то, что я хочу, но можно ли связать $ tids с такой способностью, как mysqli_num_rows, так что это общее количество строк вместо предопределенного 3?
  • 0
    Если вам это нравится, оставьте отзыв или примите это как ответ. А $tids - это просто массив идентификаторов, для которых вы выбираете. Вы можете ввести все, что вам нравится в этом массиве, или понять и реорганизовать решение
Показать ещё 12 комментариев
0

используйте эту функцию, чтобы получить несколько строк из этого

 $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];
  • 0
    Пользователь не запрашивает счет, и реальный счет должен быть выполнен с использованием MySQLs COUNT чтобы избежать необходимости выбирать все строки
  • 0
    как SELECT count(*) FROM table ?
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню