带有超链接的php表-记录问题
我在PHP中列出了两个表(在屏幕上),左边应该是超链接的,所以当单击它时,右边的表将显示一个查询。因此,在开始时,它应该是空的,然后单击时,使用所选列表名的结果刷新页面 不幸的是,我没有这些经验,所以我还不知道它的概念,但我很高兴了解:)带有超链接的php表-记录问题,php,html,hyperlink,Php,Html,Hyperlink,我在PHP中列出了两个表(在屏幕上),左边应该是超链接的,所以当单击它时,右边的表将显示一个查询。因此,在开始时,它应该是空的,然后单击时,使用所选列表名的结果刷新页面 不幸的是,我没有这些经验,所以我还不知道它的概念,但我很高兴了解:) 任何帮助都将不胜感激。例如,可以链接到table.php?gid=n,其中n将是组id。然后,您可以检查$\u GET['gid']是否已设置,如果已设置,则获取该id并将其放入查询中 if(isset($_GET['gid'])) $right
任何帮助都将不胜感激。例如,可以链接到
table.php?gid=n
,其中n
将是组id。然后,您可以检查$\u GET['gid']
是否已设置,如果已设置,则获取该id并将其放入查询中
if(isset($_GET['gid']))
$right = sprintf("SELECT * FROM grouplink WHERE grouplink.group_id=%u", $_GET['gid']);
您需要
mysql\u fetch\u assoc
而不是mysql\u查询
在:
while($resultleft=mysql\u查询($left)){
回显“$left['id']”;
}
以及:
$resultright=mysql_query($right);
while ($resultright=mysql_query($right)) {
echo "<tr><td>'.$right['people_name']."</td></tr>";
$resultright=mysql\u查询($right);
而($resultright=mysql\u query($right)){
echo“.$right['people_name']”;
因此,这将是:
while ($left=mysql_fetch_assoc($resultleft)) {
echo "<tr><td>".$left['id'].'</td><a href="???"><td>'.$left['listname']."</a></td></tr>";
}
while($left=mysql\u fetch\u assoc($resultleft)){
回显“$left['id']”;
}
与right类似的问题感谢Svish这里是我的新工作代码:
<?php include("db_con1.php");?>
<html>
<head>
</head>
<body>
<form method="post" action="test.php">
<div id="left">
<?php
$queryl = $pdo->prepare('SELECT id, name FROM test1 ORDER BY name ASC');
$queryl->execute();
?>
<ul>
<?php foreach ($queryl as $i => $rowl) { ?>
<li>
<?php if ($i)?>
<input name="checkbox_add[]" id="test_<?php echo $i ?>" type="checkbox" value="<? echo $rowl['id']; ?>"/>
<label for="test_<?php echo $i ?>"><a href="test1.php?gid=<?php echo $rowl['id']; ?>"><?php echo $rowl['name']; ?></a></label>
</li>
<?php } ?>
</ul>
</div>
<div id="right">
<?php
if(isset($_GET['gid'])) {
$gid=$_GET['gid'];
$queryr = $pdo->prepare('SELECT test3.name FROM test1, test2, test3 WHERE test1.id=test2.groupid AND test3.id=test2.peopleid AND test1.id='.$gid.' ORDER BY test3.name ASC');
$queryr->execute();
}
?>
<ul>
<?php foreach ($queryr as $i => $rowr) { ?>
<li>
<?php if ($i)?>
<input name="checkbox_del[]" id="test_<?php echo $i ?>" type="checkbox" value="<? echo $rowr['id']; ?>"/>
<label for="test_<?php echo $i ?>"><?php echo $rowr['name']; ?></label>
</li>
<?php } ?>
</ul>
</div>
</form>
</body>
</html>
-
您好,谢谢您的提示!是否可以隐藏获取信息?这样浏览器就不会显示它?或者这是一个愚蠢的问题?不,这就是获取变量的工作原理。在许多情况下,这是一件好事,因为这样您的用户就可以链接到实际的组,而不必“转到此链接,然后单击该链接”“。如果这对你来说真的很重要,你可以用POST代替,但是你必须使用表单。对于这样的事情(在我看来)既麻烦又有点错误(因为你没有真正发布任何东西。你正在获取数据)。谢谢,我现在就要试用。请返回反馈:)另外,正如@ninjaaa所说,您需要使用例如mysql\u fetch\u assoc
从结果中获取行。(您是否尝试运行您的问题中的代码?)@chelmertz:你想解释一下SQL注入漏洞在哪里吗?因为你需要从mysql的结果中逐行提取数据,我可能会删除这个答案,并将其作为注释粘贴在你的问题中。然后接受/投票你认为有用的答案。我看到你在另一个问题中发表了评论答案是“答案”,然后创建了自己的答案,并接受了这一点……此外,永远不要将用户给定的变量(如$\u GET
变量)直接插入到查询中!阅读SQL注入:谢谢你的评论。我非常感谢你所说的话,但是我发现通常在有答案的情况下,并不是每个人都清楚。所以我我可以“帮助”我提供一个工作代码。我确实理解代码是非常“业余”的,但我希望有人会跳起来说:做而不是这个。另一方面,我认为你的建议是好的,现在你告诉我不要做。那么,我最好能再次得到你的建议吗?好吧,这只是我的意见,但什么时候我使用这个网站我很少需要长的代码。你粘贴在网站上的代码可以解决你遇到的特定问题,可能不会完全满足其他人的需要。因此我喜欢保持我的答案简短,直截了当。问题标题是“表与超链接记录问题”,这就是我的回答重点。然后,你应该能够将其应用到你的情况中,如果你没有,也可以要求澄清。如果你正在努力解决某个特别的问题,甚至可以问一个新的有重点的问题。关于你对prepare的使用,你并没有真正按照应该使用的方式使用它。你只是在给它一个字符串您可以使用一个简单的查询
while ($left=mysql_fetch_assoc($resultleft)) {
echo "<tr><td>".$left['id'].'</td><a href="???"><td>'.$left['listname']."</a></td></tr>";
}
<?php include("db_con1.php");?>
<html>
<head>
</head>
<body>
<form method="post" action="test.php">
<div id="left">
<?php
$queryl = $pdo->prepare('SELECT id, name FROM test1 ORDER BY name ASC');
$queryl->execute();
?>
<ul>
<?php foreach ($queryl as $i => $rowl) { ?>
<li>
<?php if ($i)?>
<input name="checkbox_add[]" id="test_<?php echo $i ?>" type="checkbox" value="<? echo $rowl['id']; ?>"/>
<label for="test_<?php echo $i ?>"><a href="test1.php?gid=<?php echo $rowl['id']; ?>"><?php echo $rowl['name']; ?></a></label>
</li>
<?php } ?>
</ul>
</div>
<div id="right">
<?php
if(isset($_GET['gid'])) {
$gid=$_GET['gid'];
$queryr = $pdo->prepare('SELECT test3.name FROM test1, test2, test3 WHERE test1.id=test2.groupid AND test3.id=test2.peopleid AND test1.id='.$gid.' ORDER BY test3.name ASC');
$queryr->execute();
}
?>
<ul>
<?php foreach ($queryr as $i => $rowr) { ?>
<li>
<?php if ($i)?>
<input name="checkbox_del[]" id="test_<?php echo $i ?>" type="checkbox" value="<? echo $rowr['id']; ?>"/>
<label for="test_<?php echo $i ?>"><?php echo $rowr['name']; ?></label>
</li>
<?php } ?>
</ul>
</div>
</form>
</body>
</html>