-2

我目前对这行代码有问题:

echo "<td>"<a href="userdetails.php?".$row[username].">View Details</a></td>";

基本上在页面创建时,我希望链接格式化为,userdetails.php?USERNAME但由于我认为是语法错误,它不断向我抛出错误。任何帮助将不胜感激,我对 PHP 有点陌生。

添加注释:整个代码块是这样的(其他行有效):

while ($row = mysql_fetch_array($query)) {
    echo "<tr>";
    echo "<td>".$row[username]."</td>";
    echo "<td>".$row[emailaddress]."</td>";
    echo "<td>"<a href="userdetails.php?".$row[username].">View Details</a></td>";
    echo "</tr>";
}
4

5 回答 5

1

这是错误的,原因有两个:错误的引用和错误的数组索引引用。

太糟了:

echo "<td>"<a href="userdetails.php?".$row[username].">View Details</a></td>";

应该是

echo "<td><a href=\"userdetails.php?".$row['username']."\">View Details</a></td>";

或者

echo '<td><a href="userdetails.php?'.$row['username'].'">View Details</a></td>";

这样也可以不那么混乱:

printf('<td><a href="userdetails.php?%s">View Details</a></td>', $row['username']);
于 2013-04-10T18:15:39.030 回答
0
while ($row = mysql_fetch_array($query)) {
?>
<tr>
<td><?= $row['username']; ?></td>
<td><?= $row['emailaddress']; ?></td>
<td><a href="userdetails.php?<?= $row['username']; ?>">View Details</a></td>
</tr>
<?php
}

Only open PHP tags when PHP is needed.

于 2013-04-10T18:18:38.917 回答
0

基本的 PHP 语法。如果用引号打开一个字符串,再次使用该引号将关闭该字符串:

echo "<td>"<a href="userdetails.php?".$row[username].">View Details</a></td>";
     ^--open
          ^--close
           ^---huh?

您需要转义作为输出一部分的内部引号:

echo "<td>\"<a href="userdetails.php?".$row[username].">View Details</a></td>";
          ^---
于 2013-04-10T18:16:08.920 回答
0

利用

while ($row = mysql_fetch_array($query)) {
    echo '<tr>';
    echo '<td>'.$row["username"].'</td>';
    echo '<td>'.$row["emailaddress"].'</td>';
    echo '<td><a href="userdetails.php?'.$row["username"].'">View Details</a></td>';
    echo '</tr>';
}
于 2013-04-10T18:17:19.437 回答
0

尝试这个

while ($row = mysql_fetch_array($query)) {
    echo '<tr>';
    echo '<td>'.$row['username'].'</td>';
    echo '<td>'.$row['emailaddress'].'</td>';
    echo '<td><a href="userdetails.php?'.$row[username].'">View Details</a></td>';
    echo '</tr>';
}
于 2013-04-10T18:23:39.660 回答