注意:未定义的索引:userID in

时间:2016-10-13 09:16:26

标签: php

我是php的新手,我收到的错误是:

Notice: Undefined index: userID in echo "<a href='home.php?userID=".$row['userID'] . "'>".$row['userName']." ".$row['userEmail']."</a><br/>"; 

home.php

$sql = 'SELECT userName, userEmail FROM tbl_users';
$stmt = $dbCon->prepare($sql);
$stmt->setFetchMode(PDO::FETCH_ASSOC); //allows you to refer to them by column name rather than by number
$stmt->execute();
while ($row = $stmt->fetch())
{
    echo "<a href='home.php?userID=".$row['userID'] . "'>".$row['userName']." ".$row['userEmail']."</a><br/>"; //builds the link
}

我跟着this link并在home.php&amp;中添加以下代码signup.php,但它对我有用,我做错了吗?

//Initializing variable
$userID = "";                        
//isset()
$userID = isset($_POST['userID']) ? $_POST['userID'] : '';
//empty()
$userID = !empty($_POST['userID']) ? $_POST['userID'] : '';

修改

这个问题不重复,因为我按照该链接的答案,但它对我没用。

2 个答案:

答案 0 :(得分:1)

更改SQL查询以选择UserID以及其他两个字段。

看起来应该是这样的,

$sql = 'SELECT userID,userName, userEmail FROM tbl_users';
  

我认为列名是 userID ,如果没有将其更改为原始列名,并为其指定别名以便使用其他元素访问它。

因此,如果您的原始列名称只是 ID ,那么您可能看起来像这样,

$sql = 'SELECT ID userID,userName, userEmail FROM tbl_users';

答案 1 :(得分:-1)

您的userID数组中没有包含密钥$row的元素。这是因为您没有在查询中选择它:

'SELECT userName, userEmail FROM tbl_users'

所以,这样做:

'SELECT userID, userName, userEmail FROM tbl_users'

将使用userIDuserName提取userEmail

修改

你的变量初始化不起作用的原因是因为你声明字符串变量$userID的地方,而你回复了一个数组元素 $row,所以它是一个不同的变量。