2014-09-13 101 views
0

好吧,所以我在代码中添加了一条if语句给我的while()。修正了一些错误,yadayada。现在我收到文件意外结束的错误。我没有关闭一些东西吗?因为我现在一直在寻找错误。 (是的,我知道。并不是每一个单词是英语。他们大多是名字,虽然)。文件意外结束?

<?php 

include 'inc.php'; 

$sql = mysqli_query($mysql, " 
    SELECT a.ArtID, a.Productnaam, a.Inkoopprijs, a.LevID, v.Voorraad, v.Min_voorraad 
    FROM artikelen a, voorraad v 
    WHERE a.ArtID = v.ArtID 
    ORDER BY a.Productnaam"); 

if($sql === FALSE){ 
    die(mysqli_error()); 
} 

?> 

<nav> 
    <div id="menubar"> 
     <ul id="nav"> 
      <li><a href="index.php">Home</a></li> 
      <li><a href="login.php">Login</a></li> 
      <li class="current"><a href="artikelenOve.php">Artikelen</a></li> 
     </ul> 
    </div> 
</nav> 
<div id="site_content">  
    <div id="content"> 
     <div class="content_item"> 
      <form action="artikelenOve.php" method="post"> 
       <input type="submit" name="add" value="Voeg een artikel toe"><br><br> 
       <table border="1"><tr><td>ID</td> 
       <td>Naam</td> 
       <td>Inkoopprijs</td> 
       <td>Leverancier ID</td> 
       <td>Voorraad</td> 
       <td>Minimum</td> 
       <td>Wijzigen</td> 
       <td>Verwijderen</td></tr> 

       <?php 

       $result = $rArt['Voorraad'] - $rArt['Min_voorraad']; 

       while($rArt = mysqli_fetch_array($sql)){ 
        echo '<tr><td>' . $rArt['ArtID'] . '</td>'; 
        echo '<td>' . $rArt['Productnaam'] . '</td>'; 
        echo '<td>' . $rArt['Inkoopprijs'] . '</td>'; 
        echo '<td>' . $rArt['LevID'] . '</td>'; 
        echo '<td>' . $rArt['Voorraad'] . '</td>'; 
        echo '<td>' . $rArt['Min_voorraad'] . '</td>'; 
        if($result < 0){ 
         echo '<td bgcolor="red"></td>'; 
        }elseif($result >= $rArt['Min_voorraad'] && $result <= $rArt['Min_voorraad'] * 1.2){ 
         echo '<td bgcolor="yellow"></td>'; 
        }else{ 
         echo '<td bgcolor="green"></td>'; 
        } 
        echo '<td><input type="submit" name="edit" value="Wijzig"></td>'; 
        echo '<td><input type="submit" name="delete" value="Verwijder"></td></tr>'; 
       } 

       if(isset($_POST['add'])){ 
        header('Location: artikelenToe.php'); 
       } 

       if(isset($_POST['edit'])){ 
        header('Location: artikelenWij.php'); 
       } 

       if(isset($_POST['delete'])){ 
        $sql2 = mysqli_query($mysql, " 
         DELETE FROM voorraad v 
         WHERE v.ArtID = " . $_GET['delete'] . ""); 

        $sql3 = mysqli_query($mysql, " 
         DELETE FROM artikelen a 
         WHERE a.ArtID = " . $_GET['delete'] . ""); 
       ?> 

      </form></table> 
     </div> 
    </div> 
</div>  
</div> 
<script type="text/javascript" src="js/jquery.js"></script> 
</body> 
</html> 
+1

拿起任何像样的IDE轻松检测到这种错误。如果你每次来这里寻求帮助,你都会浪费很多时间。 – Sugar 2014-09-13 17:52:09

+0

到目前为止,我第一次在我的4年编码中遇到过这种情况。当然,这是我犯的一个愚蠢的错误(正如答案所述,我留下了一个开放的答案),但是使用程序纠正这些错误并不会帮助我学会停止犯这些错误。 – BigbyBoss72 2014-09-13 17:57:12

+0

您的代码易受SQL注入影响。你应该阅读[如何在PHP中防止它们](http://stackoverflow.com/q/60174/53114)。 – Gumbo 2014-09-13 17:59:04

回答

1

你一直线70 if(isset($_POST['delete'])){一个开放的大括号这是从来没有关闭。

更正代码:

<?php 

include 'inc.php'; 

$sql = mysqli_query($mysql, " 
    SELECT a.ArtID, a.Productnaam, a.Inkoopprijs, a.LevID, v.Voorraad, v.Min_voorraad 
    FROM artikelen a, voorraad v 
    WHERE a.ArtID = v.ArtID 
    ORDER BY a.Productnaam"); 

if($sql === FALSE){ 
    die(mysqli_error()); 
} 

?> 

<nav> 
    <div id="menubar"> 
     <ul id="nav"> 
      <li><a href="index.php">Home</a></li> 
      <li><a href="login.php">Login</a></li> 
      <li class="current"><a href="artikelenOve.php">Artikelen</a></li> 
     </ul> 
    </div> 
</nav> 
<div id="site_content">  
    <div id="content"> 
     <div class="content_item"> 
      <form action="artikelenOve.php" method="post"> 
       <input type="submit" name="add" value="Voeg een artikel toe"><br><br> 
       <table border="1"><tr><td>ID</td> 
       <td>Naam</td> 
       <td>Inkoopprijs</td> 
       <td>Leverancier ID</td> 
       <td>Voorraad</td> 
       <td>Minimum</td> 
       <td>Wijzigen</td> 
       <td>Verwijderen</td></tr> 

       <?php 

       $result = $rArt['Voorraad'] - $rArt['Min_voorraad']; 

       while($rArt = mysqli_fetch_array($sql)){ 
        echo '<tr><td>' . $rArt['ArtID'] . '</td>'; 
        echo '<td>' . $rArt['Productnaam'] . '</td>'; 
        echo '<td>' . $rArt['Inkoopprijs'] . '</td>'; 
        echo '<td>' . $rArt['LevID'] . '</td>'; 
        echo '<td>' . $rArt['Voorraad'] . '</td>'; 
        echo '<td>' . $rArt['Min_voorraad'] . '</td>'; 
        if($result < 0){ 
         echo '<td bgcolor="red"></td>'; 
        }elseif($result >= $rArt['Min_voorraad'] && $result <= $rArt['Min_voorraad'] * 1.2){ 
         echo '<td bgcolor="yellow"></td>'; 
        }else{ 
         echo '<td bgcolor="green"></td>'; 
        } 
        echo '<td><input type="submit" name="edit" value="Wijzig"></td>'; 
        echo '<td><input type="submit" name="delete" value="Verwijder"></td></tr>'; 
       } 

       if(isset($_POST['add'])){ 
        header('Location: artikelenToe.php'); 
       } 

       if(isset($_POST['edit'])){ 
        header('Location: artikelenWij.php'); 
       } 

       if(isset($_POST['delete'])){ 
        $sql2 = mysqli_query($mysql, " 
         DELETE FROM voorraad v 
         WHERE v.ArtID = " . $_GET['delete'] . ""); 

        $sql3 = mysqli_query($mysql, " 
         DELETE FROM artikelen a 
         WHERE a.ArtID = " . $_GET['delete'] . ""); 
       } 
       ?> 

      </form></table> 
     </div> 
    </div> 
</div>  
</div> 
<script type="text/javascript" src="js/jquery.js"></script> 
</body> 
</html> 
+0

非常感谢!通常是这些愚蠢的小错误,但通常我可以找到它们。 – BigbyBoss72 2014-09-13 17:57:46

1
This is a parse error which occurs when php is still looking for something and reaches the end of the file without finding it. It could be a quote or bracket which is unclosed, and php is still treating the file contents as a part of the quote. 

您havnt封闭的if(isset($_POST['delete'])){

添加结束括号将解决问题的支架..

if(isset($_POST['delete'])){ 
       $sql2 = mysqli_query($mysql, " 
        DELETE FROM voorraad v 
        WHERE v.ArtID = " . $_GET['delete'] . ""); 

       $sql3 = mysqli_query($mysql, " 
        DELETE FROM artikelen a 
        WHERE a.ArtID = " . $_GET['delete'] . ""); 
      }