【问题标题】:PHP SQL Result Won't Populate a Profile PagePHP SQL 结果不会填充配置文件页面
【发布时间】:2013-03-16 20:03:30
【问题描述】:

我是 PHP 和 MySQL 的新手,遇到了一些麻烦。 本质上,音乐家的个人资料页面应该使用以乐队名称作为搜索参数的查询来填充(姓名、图片、流派、简历等)。

向用户显示一个乐队名称列表(可点击的链接),根据他们点击的那个,传递一个值并显示他们的信息。但是,个人资料页面是空的! 这是音乐家的名字作为表格中的链接...

<form method="post" action="bandPageAll.php">
...
<?php                               
$i = 0;
while ($i < $num) {
    $GENRE = mysql_result($result,$i,"profile.PROFILE_GENRE");
    $BANDNAME = mysql_result($result,$i,"profile.PROFILE_BANDNAME");
?>                              
<tbody>
    <tr>
    <td><?php echo $GENRE; ?></td>
    <td><a href="bandPageAll.php" name="band"><?php echo $BANDNAME; ?></a></td>
    </tr>
</tbody>
...

这是个人资料页面的 php 代码...

<?php
session_start();
foreach($_POST AS $key => $val) {
$_SESSION[$key]=$val;
}

mysql_connect("***", "***", "***");
mysql_select_db("***");

$bandname=$_POST['band'];
$bandname = stripslashes($bandname);
$bandname = mysql_real_escape_string($bandname);

$sql="SELECT * FROM profile WHERE PROFILE_BANDNAME='$bandname'";
$result=mysql_query($sql);

$row = mysql_fetch_array($result);

$name = $row['PROFILE_BANDNAME'];
$genre = $row['PROFILE_GENRE'];
$bio = $row['PROFILE_BANDBIO'];
$bandpicture = $row['PROFILE_PICTURE'];
?>

.... 然后是html代码。 整个个人资料页面都有回声,与样式相呼应的 $name、$genre、$bio 和 $bandpicture,但这并不重要。除了我编写的导航栏和页脚之外,页面的“正文”显示为空,我不知道为什么。任何帮助,将不胜感激!谢谢!

【问题讨论】:

  • 尝试使用echo $sql;查看发送到mysql的查询,然后,最终在phpmyadmin中测试该查询
  • mysql_connect 已弃用,请参阅:php.net/manual/en/function.mysql-connect.php
  • 试过了,显示的结果是 SQL: SELECT * FROM profile WHERE PROFILE_BANDNAME=''

标签: php html mysql session profile


【解决方案1】:

您正在尝试在没有提交调用的情况下发布数据。这不会向您的个人资料页面发送任何内容。试试这个:

<td><input type="submit" name="band" value="<?php echo $BANDNAME; ?>" /></td>

在调用 mysql_fetch_assoc($result) 后尝试使用 print_r($row)。这将打印出 SQL 查询的所有结果。

编辑:我忘记了 mysql_fetch_array 已被弃用。我编辑了我的答案以反映这一点。

【讨论】:

  • 感谢您的快速回复。首先,我试过这个... 但表格结果没有点击-able,所以我不得不将其更改为... 然后在我的个人资料页面上使用了 print_r($row) 并更改为 fetch_assoc,但它仍然显示为空,并且由于 print_r($row) 没有打印任何内容。跨度>
  • 锚标签不会提交这样的表单。您需要改用 Javascript。您的页面为空白的原因是没有提交任何内容。您应该使用 GET,而不是使用 POST。你可以这样做 。您还可以摆脱表单标签。然后在您的 bandPageAll.php 中将 $_POST 更改为 $_GET。正如其他人提到的,请确保您调试/回显您的 SQL 语句以确保它们是正确的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多