2017-03-07 71 views
-1

我有一个关于$ _GET函数的问题。这是我的代码:

<?php 
$link = mysqli_connect ('localhost', 'root', 'root', 'producten'); 
$query =   "SELECT DISTINCT Groep, Artikelnummer, Artikelnaam, Merk, Groep, Prijs 
        FROM producten 
        WHERE Groep = '" .$_GET['groep'] . "' 
        "; 
    /*echo $query;*/ 
    $result = mysqli_query($link, $query); 
?> 
<table> 
<?php 
    echo '<table style="width:100%"> 
      <tr style="color:yellow; background-color:black;"> 
       <th>' . $_GET['groep'] . '</th> 
      </tr>'; 
    foreach ($result AS $rij) 
{ 

    echo '<tr style="background:blue"><td>' . $rij['Artikelnummer'] . ' </td>' . 
    '<td>' . $rij['Artikelnaam'] . ' </td>' . 
    '<td>' . $rij['Merk'] . ' </td>' . 
    '<td>' . $rij['Groep']  . ' </td>' . 
    '<td>' . $rij['Prijs']   . ' </td></tr>'; 



} 
?> 

如果我去的URL浏览器:http://localhost/view.php?groep=cases 我看到数据库中的所有的“案件”,但我只希望看到的情况下,从标志(“默克”)苹果。

当然,我需要改变的URL,但我有什么需要改变的代码?例如:WHERE Groep = '" .$_GET['groep'] . "' AND Merk = '" .$_GET['merk'] . "'

而URL:http://localhost/view.php?groep=cases?merk=apple

+1

由于您的代码已广泛应用于SQL注入,因此您可以将要执行的SQL代码放在查询字符串中。 (注意:其他任何人,包括SQL代码都可以删除所有数据或以其他方式危害您的服务器。)如果您要问如何在PHP中使用SQL,您应该从一些关于该主题的教程开始。 – David

回答

0

只是...... http://localhost/view.php?groep=cases&merk=apple
使用&为使用的第一个后的变量?

1

不这样做。将你的变量赋值给一个变量。

如果您是通过在后mypage.php X = __ & y中的URL得到任何东西做起来=

使用&给独立的变量,你得到的变量名=值传递

$x = $_GET['x'] 
$y = $_GET['y'] 

然后使用准备好的语句:可以说x是groep

s,s表示字符串,i表示整数是查询内变量的数量,?是你将变量放在WHERE子句中的占位符。

2绑定变量这将会是bind-> PARAM( “SS”,$变种,$ VAR2)

3绑定变量1个整数bind_param( “SSI”,$变种,$ VAR2,$ INT)

$query = "SELECT DISTINCT Groep, Artikelnummer, Artikelnaam, Merk, Groep, Prijs 
        FROM producten 
        WHERE Groep =?"; 
$stmt = $link->prepare($query); 
$stmt->bind_param("s",$x); 
$stmt->execute(); 
$stmt->bind_result($groep,artikelnummer,......,$prijs); // Variables are like $row['groep'] assignments. 

// Loop through all the rows, if you don't loop it'll only pull the first record with a $stmt->fetch(); 

while($stmt->fetch()){ 
    echo $groep; 
    echo $artiteknummer; 
    ... 
    ... 
    echo $prijs 
} 
$stmt->close(); 
+0

不需要用准备好的语句转义 – clearshot66