Предупреждение: mysql_result () [function.mysql-result]: невозможно перейти к строке -1

0

Это мой код страницы:

 <?php
    $dbhost="****";
    $dbname = '****';
    $dbusername="********";
    $dbpass="*****;
    $con = mysql_connect("$dbhost","$dbusername","$dbpass");
    mysql_select_db($dbname,$con);
    ?>
    <main>
    <table width='100%'  align='center'>
    <tr align='center'>
    <?php
    $sql = "SELECT * FROM file ORDER BY data";
    $result = mysql_query($sql);
    $num = mysql_num_rows($result);
    $j = $num - 1;
    $fyear = mysql_result($result, $j, "data");
    $year = 2005;
    while ($year <= $fyear)
    {
    $sql = "SELECT * FROM file WHERE posizione = 'uila/blindi.php' AND YEAR(data) = ".$year." ORDER    BY data";
            $result = mysql_query($sql);
            $row = mysql_fetch_array($result);
            $num = mysql_num_rows($result);
            $i = 0; 
                echo "<td>";
                    while ($i < $num)
                        {
                            $file = mysql_result($result, $i, "pdf");
                            $name = mysql_result($result, $i, "nome");
                            $type = mysql_result($result, $i, "type");
                            $path = mysql_result($result, $i, "posizione");
                            echo "<a href=\"opendoc.php?type={$type}&id={$i}&path={$path}\" TARGET=\"_self\">"?><?php echo $name; ?></a><br>
                            <?php
                            $i++;
                        }
                        echo "</td>";
                        $year++;
                    }
                ?>              
    </tr>
</table> 

И это ошибка страницы:

Предупреждение: mysql_result() [function.mysql-result]: не удается перейти к строке -1 в MySQL result index 2 в D:\Inetpub\webs\uilanotiziecom\bindi.php в строке 47

47-я строка: $j = $num - 1;

Как я могу это исправить?

  • 0
    Я думаю, что mysql_query возвращает пустой набор, и поэтому num_rows будет 0. В результате j будет -1.
  • 0
    Запустите запрос «SELECT * FROM file ORDER BY data» в командной строке mysql и проверьте, что он возвращает.
Показать ещё 2 комментария
Теги:
function
warnings
row

2 ответа

0

Я думаю, что ниже запрос sql возвращает пустой результат, в котором вы столкнулись с проблемой.

$sql = "SELECT * FROM file ORDER BY data";

Поэтому значением $ j является -1

И FYI,

Пожалуйста, используйте правильные соглашения об именах и уникальные имена переменных, поскольку вы использовали $ sql для обоих запросов

  • 0
    Я изменяю $ sql = "SELECT * FROM файла ORDER BY data"; в $ sql_1 = "SELECT * FROM файла ORDER BY data"; Но ничего не изменится
  • 0
    Роберто, ты получаешь какие-нибудь записи для своего запроса $ sql?
Показать ещё 2 комментария
0

вы пробовали это? :

 if ( $num >= 1 ) {
      $j = $num - 1;
 }

если ваш запрос возвращает 0 строк, вы получаете ошибку, то, что вы делаете в этом случае, зависит от вас

Ещё вопросы

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