Почему не работает вторая операция инкримент / декримент? - PullRequest
0 голосов
/ 22 февраля 2020

У меня этот код работает в другом скрипте. Я делаю что-то глупое, но не вижу этого.

            <div>  
            <a href="view_accessory.php?id=<?php echo ++$pageno;?>"><div id='button'>Next</div> </a>
            <a href="edit_acces_form.php?id=<?php echo $pageno; ?>"><div id='button'>Edit</div> </a> 
            <a href="view_accessory.php?id=<?php echo --$pageno;?>"><div id='button'>Previous</div> </a> 
             </div>

Первая строка работает, вторая строка работает, а третья - нет. Если я изменю линии, они будут работать индивидуально, но не вместе.
Вот весь код. Редактирование работает независимо от позиции. Математический операнд, когда он находится на втором месте, не будет работать.

            <!DOCTYPE html>
            <html lang="en-US">
            <head>
        <title>View Accessory Data</title>
            <link href="styles/main.css" type="text/css" rel="stylesheet">
             </head>
             <body >
            <div align=center id="wrapper">
            <div align="center" id="pagewrap">      
            <header> 
           <h1> View Accessory Data </h1>
           </header>
            <?php
            require 'zxcvbn/db.inc.php';//database connection

            if (!$pageno = \filter_input(INPUT_GET, "id", \FILTER_VALIDATE_INT)){
            $pageno = 1; 
            } else {
                $pageno = (int) $pageno;
            } 
            echo "first pageno = ".$pageno;

            $result0 = \mysqli_query($con, "SELECT COUNT(*) FROM accessory");
             $numrows = \mysqli_fetch_row($result0);
            $lastpage = ($numrows[0]);
            $pageno = (int)$pageno;

            if ($pageno > $lastpage) {
            $pageno = 1;
             // starts at the beginning

            } // if
            if ($pageno < 1) {
              $pageno = $lastpage;
             //  goes to last record
            } // if 

            //$pageno = $pageno-1;

            ?>

            <div>  
            <a href="view_accessory.php?id=<?php echo ++$pageno;?>"><div id='button'>Next</div> </a>
            <a href="edit_acces_form.php?id=<?php echo $pageno; ?>"><div id='button'>Edit</div> </a> 
            <a href="view_accessory.php?id=<?php echo --$pageno;?>"><div         
          id='button'>Previous</div> </a> 

            </div> 


            <?php
            $result = \mysqli_query($con, "SELECT * FROM accessory where rec_number='$pageno'");
            $row = \mysqli_fetch_row($result);
            echo "<table bgcolor='white' ><tr><td>Name :</td><td>".htmlspecialchars($row[1])."                
           </td> 
           </tr>";
               $sql="SELECT rec_number, name FROM tank WHERE rec_number=$row[2]";
                $result2 = \mysqli_query($con, $sql);
                    $row2 = \mysqli_fetch_row($result2);
            echo "<tr><td>Tank:</td><td>".\htmlspecialchars($row2[1])."</td></tr>";
            echo "<tr><td>In Service Date:</td><td>".htmlspecialchars($row[3])."</td></tr>";
            echo "<tr><td>Type :</td><td>".htmlspecialchars($row[4])."</td></tr>";
            echo "<tr><td>Notes :</td><td>".htmlspecialchars($row[5])."</td></tr>";
            echo "<tr><td>Picture :</td><td><img src=".$row[6]." width='50%'</td></tr>";
            echo "</table bgcolor='#ecf2f8'>";
             // Free result set
            /* @var $c junk */
            $c = mysqli_free_result($result);
            /* @var $c1 junk */
            $c1 = mysqli_close($con);
            ?>

            <div id="menu">
            <a href="menu.php" ><div id='button'>Main Menu</div></a>

            <footer >
            <a href="water_change.php"><div id='button'/>Water Changes</div></a>
            <a href="water.php"><div id='button'/>Water Testing</div> </a>
            <a href="maintenance.php"><div id='button'/>Maintenance</div></a>
            <a href="livestock.php"><div id='button'/>Livestock</div></a>
            <a href="plants.php"><div id='button'/>Plants</div></a>
            <a href="log.php"><div id='button'/>Log</div></a>
            <a href="tank.php"><div id='button'/>Tanks</div></a>
            <a href="filter.php"><div id='button'/>Filters</div></a>
            <a href="pump.php"><div id='button'/>Pumps</div></a>
            <a href="light.php"><div id='button'/>Lights</div></a>
            <a href="accessory.php"><div id='button'/>Accessories</div></a>
            <a href="diary.php"><div id='button'/>Diary</div></a>
            </footer>   
            </div>    
             </div>
            </div>
            </body>
        </html> 

Ответы [ 2 ]

2 голосов
/ 22 февраля 2020

++$pageno увеличивает переменную $pageno, чтобы содержать номер следующей страницы. Затем, когда вы позже используете --$pageno, он уменьшает его обратно на текущую страницу, а не на предыдущую.

Не используйте операторы увеличения / уменьшения, просто используйте сложение и вычитание, поэтому переменная остается то же самое, но вы указали номера предыдущей и следующей страниц в URL-адресах.

<div>  
<a href="view_accessory.php?id=<?php echo $pageno + 1;?>"><div id='button'>Next</div> </a>
<a href="edit_acces_form.php?id=<?php echo $pageno; ?>"><div id='button'>Edit</div> </a> 
<a href="view_accessory.php?id=<?php echo $pageno - 1;?>"><div id='button'>Previous</div> </a> 
 </div>

Возможно, ваша вторая строка тоже работает неправильно - она ​​будет редактировать следующий, а не текущий элемент.

0 голосов
/ 22 февраля 2020

Похоже, это должно быть

++$pageno; //adds 1 to pageno
--$pageno; //removes the 1 that was just added
--$pageno; //removes another 1 to get to previous
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...