使用MySQL的输出来提取其他信息

时间:2012-03-04 01:04:09

标签: php mysql

如何使用MySQL查询的输出从数据库中提取有关该输出的额外信息?

例如,如果我的查询生成了一个名称列表,并且有关于数据库中存在的每个名称的额外信息,当我单击输出页面上的名称时,系统将从数据库中提取相关信息并显示它在另一页上。

编辑:以下是代码:

<?php 
  // you can delete mysql-assoc
  while($row = mysql_fetch_array($rs, MYSQL_ASSOC)) {
?> 
  <tr align="center">
    <td width="5%">
      <a href="// I don't know what do put here " >
        <?php print("{$row["pid"]}");?>
      </a>
    </td>
    <td><?php print("{$row["place"]}");?></td>
    <td><?php print("{$row["date"]}");?></td>
    <td><?php print("{$row["ppp"]}");?></td>
    <td><input type="button" value="Book"></td>
  </tr> <?php } ?>

3 个答案:

答案 0 :(得分:0)

大;这就是你所缺少的:

<a href="<?php // I don't know what to put here ?>" >

应该是:

<a href="<?php echo 'database.php?action=viewrecord({$row["pid"]})'?>" >

从那里,您应该能够使用用户的pid提取相关信息。

另外,除非你真的担心间距,否则你应该抛弃相关的HTML;这样做可以为您节省每次要转储变量时重复输入<?php ?>的任务。

<?php 
  // you can delete mysql-assoc
  while($row = mysql_fetch_array($rs, MYSQL_ASSOC)) {
    echo "<tr align='center'>";
    echo "<td width='5%'>";
    echo "<a href='database.php?action=viewrecord({$row['pid']})'>";
    echo "{$row['pid']}";
    echo "</a>";
    echo "</td>";
    echo "<td>{$row['place']}</td>";
    echo "<td>{$row['date']}</td>";
    echo "<td>{$row['ppp']}</td>";
    echo "<td><input type='button' value='Book'></td>";
    echo "</tr>";
  }
?>

答案 1 :(得分:0)

将第一个输出结果的每一行设置为等于变量,然后在php中使用if语句查找这些变量中的字符串,然后(在某种页面刷新按钮上,因为php是服务器端代码) )显示其他内容。

答案 2 :(得分:0)

  

感谢您的帮助,但这不起作用:(当我按下记录时,我是php的初学者,网址看起来像localhost/ass/database.php?action=viewrecord%28{$row[

这不是你问题的直接答案,但是因为你是php的新手,我想通过它来解决问题。你使用的语法使独角兽哭泣。它让我头疼jsut tryign破译它。以另一种方式使用相同的代码:

<?php while($row = mysql_fetch_array($rs, MYSQL_ASSOC)): ?>
   <tr align="center">
      <td><?php printf('<a href="database.php?action=%s">%s</a>', url_encode('viewrecord('.$row['pid'].')'), $row['pid']); ?></td>
      <td><?php echo $row['place']; ?></td>
      <td><?php echo $row['date']; ?></td>
      <td><?php echo $row['ppp']; ?></td>
      <td><input type="button" value="Book"></td>
   </tr>
<?php endwhile; ?>

然而这database.php?action=viewrecord()让我担心。我希望你没有使用eval来执行URL传递的函数。通常,这看起来更像是:database.php?action=viewrecord&id=2。您将验证action参数是否有效,然后调用与该参数关联的函数(可能是也可能不是实际函数名称),并且您将传入id参数。

Eaxample database.php:

$action = isset($_POST['action']) ? $_POST['action'] : 'index';

switch($action) {
   case 'viewrecord':
     if(isset($_POST['id'])  {
        viewrecord((integer) $_POST['id']);
     }
     break;
   // a whole bunch of other cases here for other actions

   default:
     // the default thing to do if an action is in valid
}

// the rest of your processing