Как напечатать номер строки в MySQL в PHP-приложении

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

SET @row_num=0; SELECT (@row_num:=@row_num+1) AS num,INV,DOS,PTNAME,BAL,PROV     from sheet;

Но когда я использую тот же код в PHP-проектах, он возвращает следующую ошибку
Предупреждение: mysql_fetch_array (): предоставленный аргумент не является допустимым MySQL

Ниже мой код:

<?php
$conn = mysql_connect("localhost","root","");
mysql_select_db("omega",$conn);
$sel="SET @row_num=0; SELECT (@row_num:=@row_num+1) AS             num,INV,DOS,PTNAME,BAL,PROV from sheet";
$sqlquery=mysql_query($sel);

while($dis=mysql_fetch_array($sqlquery))
{
echo"<tr>";
echo "<td>".$dis['num']."</td>";
echo "<td>".$dis['INV']."</td>";
echo "<td>".$dis['DOS']."</td>";
echo "<td>".$dis['PTNAME']."</td>";
echo "<td>".$dis['BAL']."</td>";
echo "<td>".$dis['PROV']."</td>";
echo"</tr>";
}

2

Решение

меняться от

$sel="SET @row_num=0; SELECT (@row_num:=@row_num+1) AS num,INV,DOS,PTNAME,BAL,PROV from sheet";

в

$sel="SELECT s.*, @rownum := @rownum + 1 AS num FROM sheet s, (SELECT @rownum := 0) r";
2

Другие решения

Ваш запрос не работает, потому что вы задали 2 запроса в mysql_query который не поддерживается. Вместо этого используйте mysqli_multi_query() функция.

Тем не мение, mysql_* функции уже устарели, поэтому используйте mysqli_* функции вместо

$conn = mysqli_connect("localhost", "root", "", "omega");

$sel = "SET @row_num=0;";
$sel .= "SELECT (@row_num:=@row_num+1) AS num, INV, DOS, PTNAME, BAL, PROV from sheet";
$sqlquery = mysqli_multi_query($conn, $sel);

while($dis = mysqli_fetch_array($sqlquery))
{

// rest of your code
2

Я посмотрел и думаю, что вы пытались сделать сложный, посмотрите код ниже, это легко для вашей цели

<?php
$conn = mysql_connect("localhost","root","");
mysql_select_db("omega",$conn);
$sel="SET INV,DOS,PTNAME,BAL,PROV from sheet";
$sqlquery=mysql_query($sel);
$i=0;
while($dis=mysql_fetch_array($sqlquery))
{
echo"<tr>";
echo "<td>".$i."</td>";
echo "<td>".$dis['INV']."</td>";
echo "<td>".$dis['DOS']."</td>";
echo "<td>".$dis['PTNAME']."</td>";
echo "<td>".$dis['BAL']."</td>";
echo "<td>".$dis['PROV']."</td>";
echo"</tr>";
$i++
}
?>
0
По вопросам рекламы [email protected]