PHP - перемещение вперед и назад по строкам mysql - PullRequest
0 голосов
/ 22 июля 2009

У меня есть страница, которая отображает строку в зависимости от идентификатора, указанного в панели браузера (page.php? Id = 1). Я пытаюсь использовать кнопки вперед и назад для отображения соответствующей следующей или предыдущей строки на странице. Таким образом, кнопки prev и next будут просто ссылками на page.php, а id будет следующим в списке. Это не последовательный список, поэтому я не могу просто сделать id + 1 и т. Д.

В любом случае, у меня все работает нормально, но в основном я хочу, чтобы прямые и обратные ссылки отображались как текст, только если нет страницы, на которую можно перейти Я пытался запустить код для отображения только текста, если $ backformat пуст, но, похоже, он содержит «Resource id # (и случайное число)». Итак, я попробовал несколько других способов сопоставить «Ресурс» в строке, но это не сработало

Есть идеи?

  <?php

        $backresult = mysql_query("SELECT id FROM studies WHERE niche = '$niche' AND date < '$currentdate' ORDER BY date DESC LIMIT 1", $connection);
            if (!$backresult) {
                die("Database query failed: " . mysql_error());
            }

            $forwardresult = mysql_query("SELECT id FROM studies WHERE niche = '$niche' AND date > '$currentdate' ORDER BY date ASC LIMIT 1", $connection);
            if (!$forwardresult) {
                die("Database query failed: " . mysql_error());
            }

    ?>

while ($row = mysql_fetch_array($forwardresult)) {
                $forward = $row["id"];
                $forwardformat = preg_replace('/\s+/','',$forward);

                    echo $forwardformat;

                    $pos = strpos($forwardformat,'source');

                    if($pos == false) {
                     // string needle NOT found in haystack
                     echo 'Exploring moves us <a href="casestudy.php?id=';
                    echo $forwardformat;
                    echo '">forward</a>';
                    }
                    else {
                     // string needle found in haystack
                     echo "forward";
                    }
                                //other code I've tried before
                /* if (!empty($forwardformat)) {
                    echo 'Exploring moves us <a href="casestudy.php?id=';
                    echo $forwardformat;
                    echo '">forward</a>';
                }
                else {
                    echo "forward";
                }*/
}
echo $backresult;
while ($row = mysql_fetch_array($backresult)) {
                $back = $row["id"];
                $backformat = preg_replace('/\s+/','',$back);

                    echo $backformat;

                    //$pos = strpos($backformat,'source');

                    //$match = preg_match("R",$backformat);

                    if (substr($backformat,0,1) == 'R') {
                     // string needle NOT found in haystack
                    echo ', studying we look <a href="casestudy.php?id=';
                    echo $backformat;
                    echo '">back</a>';
                    }
                    else {
                     // string needle found in haystack
                     echo "back";
                    }
                                //other code I've tried before          
                /*if (!empty($backformat)) {
                    echo ', studying we look <a href="casestudy.php?id=';
                    echo $backformat;
                    echo '">back</a>';
                }
                if ($backformat==false) {
                    echo "back";
                } */
}

Ответы [ 2 ]

3 голосов
/ 22 июля 2009

$ backresult - это соединение PHP с результатом вашего запроса. Если вы хотите проверить, что $ backresult не содержит строк, вам нужно что-то вроде

if(mysql_num_rows($backresult)==0) {
 //inactive link
} else {
 //active link
}
1 голос
/ 22 июля 2009

Вам не нужны while() операторы, если вы работаете только с одной строкой. И да, как указано выше, вы проверяете, вернул ли запрос какие-либо строки с mysql_num_rows($result), вы можете проверить, являются ли отдельные поля пустыми с empty($result['fieldname']).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...