我加入了两张桌子,它与$ _GET [' p']合适时只有它的字母,但当我有像1a,1b,2a,2b这样的情况时,它会断开,除了显示任何内容在整个网站上的白色背景。
表格检查
meny | subtitle | doknamn | store
1a | word | 123.txt | word_sub
1b | fruit | test.txt | fruit_sub
1c | food | gru.txt | food_sub
表testdok
meny | sökord
1a | apple
1b | dsasd
1c | asda
HTML
<a href="?p=1a">link with numbers and letters.</a>
<a href="?p=test">Link with letters</a>
如果我按下第一个链接,我将转到&#34; new&#34;页面,一切都将是白色的。但如果按第二个链接,将显示内容。
if(isset($_GET['p'])){
$page = $_GET['p'];
$page = preg_replace("#[^0-9a-z]#i","",$page);
$visadok = mysqli_query($conn,"SELECT *
FROM testdok
RIGHT JOIN testcheck
ON testdok.meny=testcheck.meny WHERE meny='$page'") or die();
while($row = mysqli_fetch_assoc($visadok)){
$ord = $row['sökord'];
echo $ord ;
}
}
答案 0 :(得分:2)
此
ON testdok.meny=testcheck.meny WHERE meny='$page'") or die();
^^^^^^^^^-----
毫无意义,特别是在开发过程中。因为它只是在失败时退出,所以你永远不会被告知为什么失败。至少它应该是
... or die(mysqli_error($conn))
这样你就可以知道出了什么问题。
真正的问题是
ON testdok.meny=testcheck.meny WHERE meny='$page'") or die();
^^^^^---here
该字段名称含糊不清,因为您在 BOTH 表格中获得了meny
。它应该是WHERE testdok.meny
或WHERE testcheck.meny