如果db row中的ID与PHP GET函数中的id匹配,则返回x page

时间:2013-08-12 13:34:28

标签: php database mysqli

基本上我想在get id switch语句的id与数据库中所述行的id匹配时,从我的数据库中显示一行。我在这里感到困惑,所以让我进一步解释。

如果网址为www.example.com/index.php?id=2 我想在页面上显示id为2的行。

以下是数据库中的内容示例;

id = 2 name = john id = 3 name = mark

因此,如果URL中的id等于2,则显示id 2并命名john。 但是如果URL中的id等于3,则显示id 3和name mark。

我正在使用get函数来执行此操作,但我不确定如何基本上让两个id进行比较并从数据库中获取相应的行。

我对PHP也很陌生,所以请小字! :)


修订版2。

就像我上面说过的那样,我是PHP的新手,所以发布的很多东西让我很困惑。但是,当我尝试各种代码时,我得到以下内容;

Warning: mysqli_query() expects at least 2 parameters, 1 given ...
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given

我已经使用了每个代码示例,但似乎我现在正在混合它们。 HMM。

4 个答案:

答案 0 :(得分:1)

你可能想要这样的东西(数据库连接代码和错误处理没有显示):

$id = intval($_GET['id']);
$result = mysqli_query("SELECT id, name FROM table WHERE id=$id");
$row = mysqli_fetch_assoc($result);
echo $row['id']." ".$row['name'];

关于发布的代码:

  1. 您永远不会使用$result
  2. switch内,您将$id分配给$_GET['id'],结果是始终使用include,除非$_GET['id']为0。

答案 1 :(得分:0)

您应该将 id 值传递给您的sql(通过维护sql注入威胁),然后您可以使用mysql的fetch_assoc函数(不建议使用)或mysqli来获取所获取的值。

答案 2 :(得分:0)

$id = $_GET['id'];


$result = mysqli_query($mysqli, "SELECT * FROM names where id='$id'"); 

$row = mysqli_fetch_array($result); 
$row_id = $row['id'];

header("www.example.com/index.php?id=$row_id"); 

警告!这只是一个简单的答案。使用此代码有许多危险,因为它对SQL注入攻击是敞开的。考虑卫生(例如intval($ _ GET ['id'])。并且假设在此代码(甚至空格!)之前没有发送头信息,则使用header()函数。

答案 3 :(得分:0)

您应该使用预备语句。以下是使用PDO

的示例
$stm = $pdo->prepare("SELECT name FROM table WHERE id=?");
$stm->execute(array($_GET['id']));
$name = $stm->fetchColumn();