我对$ _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>';
}
?>
如果我使用网址访问浏览器:http://localhost/view.php?groep=cases
我看到了数据库中的所有“案例”,但我只想看看来自商标('Merk')Apple的案例。
当然我需要更改其URL,但我需要在代码中更改什么?类似于:WHERE Groep = '" .$_GET['groep'] . "' AND Merk = '" .$_GET['merk'] . "'
网址:http://localhost/view.php?groep=cases?merk=apple
?
答案 0 :(得分:1)
不会这样做。将获取变量分配给变量。
如果您通过在mypage.php之后获取网址中的任何内容来执行此操作?x = __&amp; y =
使用&amp;要分离变量,你的get变量name =要传递的值
$x = $_GET['x']
$y = $_GET['y']
然后使用准备好的声明:假设x是groep
s,s表示字符串,i表示整数是查询中的变量数,?是将变量放在WHERE子句中的占位符。
2绑定变量它是bind-&gt; param(&#34; ss&#34;,$ var,$ var2)
3个绑定变量1个整数bind_param(&#34; ssi&#34;,$ var,$ 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();
答案 1 :(得分:0)
只是...... http://localhost/view.php?groep=cases&merk=apple
使用后使用&amp; 表示第一个变量?
答案 2 :(得分:0)
URL format with GET parameters? https://en.wikipedia.org/wiki/Query_string
此外,你不应该使用像这样的MySQL代码,使用预备语句。