我已经将变量值传递到另一个页面,但现在我试图显示与此值相关的数据库内容。
工作流程:
问题是:我如何执行第5和第6步?我试过使用这个select,但没有成功:
$query = mysql_query("SELECT employeeName FROM employeeForm WHERE companyName='$employeeName'") or die(mysql_error());我真的很难说清楚,如果这不是可以理解的话,我很抱歉。几个小时来一直致力于这个问题。
我很感激你的帮助!
编辑:使用的方法:
include("connect.php");
$companyName=$_GET['companyName'];
$result = mysql_query("SELECT * FROM employeeList WHERE company = '$companyName'");
while($result = mysql_fetch_array($query))
{
echo '<div class="form">'.$result['employeeName'].'</div>';
}发布于 2013-11-25 18:06:53
我强烈建议您使用PDO,下面是一个使用PDO的示例。
<?php
$dsn = 'mysql:dbname=so;host=localhost';
$user = 'root';
$password = '';
// try to connect.
try {
$dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
exit(1);
}
// the sql which gets all employees for this company.
$getEmployeesSQL = '';
$getEmployeesSQL .= ' SELECT c.name AS company_name, e.name AS employee_name, e.salary, c.location ';
$getEmployeesSQL .= ' FROM company c';
$getEmployeesSQL .= ' LEFT JOIN employee e';
$getEmployeesSQL .= ' ON c.id = e.company_id';
$getEmployeesSQL .= ' WHERE c.name = :cname';
// sql to get company data.
$companyDataSQL = "SELECT * FROM company WHERE name = :cname";
// prepare the sql.
$stmtOne = $dbh->prepare($getEmployeesSQL);
$stmtTwo = $dbh->prepare($companyDataSQL);
// execute
$stmtOne->execute(array(':cname' => $_GET['company']));
$stmtTwo->execute(array(':cname' => $_GET['company']));
// print results.
$employees = $stmtOne->fetchAll(PDO::FETCH_ASSOC);
$companyData = $stmtTwo->fetchAll(PDO::FETCH_ASSOC);
/* * ****************************************** */
/* Iterate and print HTML table. */
/* * ****************************************** */
$html = '<table border="1">';
foreach ($companyData as $company) {
foreach ($company as $field => $value) {
$html.= "<tr><td>$field</td><td>$value</td></tr>";
}
}
$html . '</table>';
echo $html;
$html = '<table border="1">';
foreach ($employees as $row) {
$html.= '<tr><td>' . implode('</td><td>', array_values($row)) . '</td></tr>';
}
$html . '</table>';
echo $html;此代码段所做的是在表中打印公司数据,然后使用公司名称获取员工数据。
我使用的表结构如下:
CREATE TABLE `company` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(200) NOT NULL,
`location` varchar(200) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
CREATE TABLE `employee` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(200) NOT NULL,
`salary` bigint(12) DEFAULT NULL,
`company_id` bigint(20) NOT NULL,
PRIMARY KEY (`id`),
KEY `fk_company` (`company_id`),
CONSTRAINT `fk_company` FOREIGN KEY (`company_id`) REFERENCES `company` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1它返回数据如下:(不是很漂亮,但现在必须这样做。)

发布于 2013-11-25 17:10:58
答案:
你的代码:
while($result = mysql_fetch_array($query))
{
echo '<div class="form">'.$result['employeeName'].'</div>';
}应:
while($res = mysql_fetch_array($result)) //changed to the name of the variable that stores the query (can't store the array in a variable named after the query so i've changed it to $res...)
{
echo '<div class="form">'.$res['employeeName'].'</div>';
}老:,您正在检索查询结果吗?要返回一个结果,请使用mysql_fetch_assoc()函数,并使用mysql_fetch_array()返回整个行(或多个变量)。
示例:
$test = mysql_fetch_assoc($query);
$array = mysql_fetch_array($query); Ps。若要选择数组,请使用与以下类似的语法:
"SELECT * FROM table WHERE var = condition"PPs。这是取自php.net的:
This extension is deprecated as of PHP 5.5.0, and is not recommended for writing new code as it will be removed in the future. Instead, either the mysqli or PDO_MySQL extension should be used. See also the MySQL API Overview for further help while choosing a MySQL API. 编辑:
你的代码:
$query = mysql_query("SELECT employeeName FROM employeeForm WHERE companyName='$employeeName'") or die(mysql_error());将变量视为文本(变量名称不是内容:) .用途:
WHERE '".$employeeName."' 要将变量解析为查询..。(注意双引号)
也是.若要访问查询的结果,请使用以下内容:
$array['COLUMN NAME'];您使用的..assuming:$array = mysql_fetch_array($query);
发布于 2013-11-25 17:30:36
据我所知,你有两张桌子--一张是公司的,一张是员工的,很明显,每个公司都有多个雇员。如果您试图为给定的公司生成员工列表,则需要在SQL查询中使用公司名称(假设它是唯一的)。
$companyName = $_GET('companyName');
$result = mysql_query("SELECT * FROM employeeList WHERE company = '$companyName'");这将给你一个员工名单(连同他们的所有信息)与该特定的公司。
编辑:
要循环查询并打印结果,可以使用以下内容(以及上面的内容):
echo "<table><tbody>";
while ($row = mysql_fetch_assoc($result)) {
echo "<tr><td>" . $row['employee_first_name'] . " " . $row['employee_last_name'] . "</td></tr>";
}
echo "</tbody></table>https://stackoverflow.com/questions/20198918
复制相似问题