0

我有一个问题,我想在员工输入员工 ID 后显示员工姓名。我的 index.php 会显示员工姓名,但它不起作用。欢迎后这里的问题显示“Resource id #4”。

我的桌子:

  CREATE TABLE `staff` (                    
          `staffid` varchar(25) NOT NULL,         
          `password` varchar(25) DEFAULT NULL,    
          `staffname` varchar(50) DEFAULT NULL,   
          `staffemail` varchar(50) DEFAULT NULL,  
          `level` int(2) DEFAULT NULL,            
          PRIMARY KEY (`staffid`)                 
        ) ENGINE=InnoDB DEFAULT CHARSET=latin1

索引.php:

<?php require_once('Connections/sqlconnection.php');

//initialize the session
if (!isset($_SESSION)) {
  session_start();
}
$colname_rsstaff = $_SESSION['staffid'];
if (isset($_GET['staffid'])) {
    $colname_rsstaff = $_GET['staffid'];
}

// ** Logout the current user. **
$logoutAction = $_SERVER['PHP_SELF']."?doLogout=true";
if ((isset($_SERVER['QUERY_STRING'])) && ($_SERVER['QUERY_STRING'] != "")){
  $logoutAction .="&". htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_GET['doLogout'])) &&($_GET['doLogout']=="true")){
  //to fully log out a visitor we need to clear the session varialbles
  $_SESSION['MM_Username'] = NULL;
  $_SESSION['MM_UserGroup'] = NULL;
  $_SESSION['PrevUrl'] = NULL;
  unset($_SESSION['MM_Username']);
  unset($_SESSION['MM_UserGroup']);
  unset($_SESSION['PrevUrl']);

  $logoutGoTo = "login.php";
  if ($logoutGoTo) {
    header("Location: $logoutGoTo");
    exit;
  }
}
?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  if (PHP_VERSION < 6) {
    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }

  $theValue = function_exists("mysql_real_escape_string") ?     mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
 }
}

mysql_select_db($database_sqlconnection, $sqlconnection);
$query_rsstaff = sprintf("SELECT staffname FROM staff WHERE staff.staffid = %s",     GetSQLValueString($colname_rsstaff, "text"));
$rsstaff = mysql_query($query_rsstaff, $sqlconnection) or die(mysql_error());
$row_rsstaff = mysql_fetch_assoc($rsstaff);
$totalRows_rsstaff = mysql_num_rows($rsstaff);
?>
<title>Sistem Pengurusan Stok</title>
<center>
  <form name="form1" method="POST" action="">
    <table width="633" height="431" border="1">
      <tr>
        <td height="124" colspan="2" align="right"><?php include 'header.php'?>
<p><?php echo date("d-m-y")."<br>";?></p></td>
      </tr>
      <tr>
        <td width="167" height="262"><?php include 'menu.php'?></td>
        <td width="450" align="center"><p>Welcome
            <?php echo $rsstaff?>
</p>
      <p><a href="<?php echo $logoutAction ?>">Log out </a></p>
      <p><a href="<?php echo $logoutAction ?>"> </a></p></td>
     </tr>
     <tr>
        <td height="37" colspan="2"></td>
     </tr>
   </table>
  </form>
</center>
<? session_destroy()?>
<?php
mysql_free_result($rsstaff);
?>

请有人帮助我...#谢谢。

4

2 回答 2

1

不要使用 MYSQL_* 因为它已被弃用

但是,此答案基于您要执行的操作。

在这里找到的信息:mysql_query

当你这样做时$rsstaff = mysql_query($query_rsstaff, $sqlconnection),你得到的是资源,而不是你期望SELECT staffname FROM staff WHERE staff.staffid = %s对数据库做的事情。

尝试以下操作:

$result = mysql_query($query_rsstaff, $sqlconnection);
$rsstaff = mysql_fetch_assoc($result);

然后

Welcome <?php echo $rsstaff["staffname"]; ?>

或者更简单

$rsstaff = mysql_result(mysql_query($query_rsstaff),0);

然后使用您的代码。

于 2013-02-21T02:31:44.220 回答
1

当您这样做时<?php echo $rsstaff?>,您将打印出 MySQL 查询资源$rsstaff。这种输出没有明显的形式,所以 PHP 只是告诉你“它是一种资源”,而不是任何更有意义的东西。这就是你看到的输出。

您的意思是打印出 的元素之一$row_rsstaff,大概是"staffname"元素。

所以:

<?php echo $row_rsstaff["staffname"] ?>
于 2013-02-21T02:32:34.513 回答