그래서 여기에 내가하려는 일이 있습니다. 회사 목록이있는 표가 있습니다. 특정 직원의 회사 목록이 들어있는 다른 테이블이 있습니다. 여기에 테이블이
COMPANY_ID
이름다중 선택 목록 상자에 두 개의 다른 테이블에있는 데이터 채우기
employees_companies이
기업입니다
는
가
이
은 현재 내가 목록으로 채워집니다 목록 상자가 COMPANY_ID employee_id입니다 empcomp_id 모든 회사. 사용자가 새 직원을 설정할 때 목록 상자에서 하나 이상의 회사를 선택할 수 있습니다. 양식이 제출되면 선택한 모든 회사의 배열을 만들고이를 반복하여 employees_companies 테이블에 새 레코드를 추가합니다. 이 모든 것이 훌륭하게 작동합니다. 내가 겪고있는 문제는 사용자가 이러한 회사를 편집 할 수있는 형태에 있습니다. 먼저 목록 상자에 모든 회사 목록을 채 웁니다. 다음으로이 사용자에 대해 employees_companies 테이블에 나열된 회사를 강조 표시해야합니다. 현재 쿼리에서 반환 된 레코드 수에 관계없이 하나의 레코드 만 강조 표시됩니다. 여기
는 ============= 형태<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>test</title>
</head>
<body>
<form id="frmAdd" name="frmAdd" method="post" action="test.php">
<select name="company_id[]" size="4" multiple="multiple" id="company_id[]">
<?php do { ?>
<option value="<?php echo $row_rsCompanyList['company_id']?>"
<?php
do {
if (!(strcmp($row_rsCompanyList['company_id'], $row_rsEmployeeCompanyList['company_id']))) {echo "selected=\"selected\"";}
} while ($row_rsEmployeeCompanyList = mysql_fetch_assoc($rsEmployeeCompanyList)); ?>><?php echo $row_rsCompanyList['name']?></option>
<?php
} while ($row_rsCompanyList = mysql_fetch_assoc($rsCompanyList));
$rows = mysql_num_rows($rsCompanyList);
if($rows > 0) {
mysql_data_seek($rsCompanyList, 0);
$row_rsCompanyList = mysql_fetch_assoc($rsCompanyList);
}
?>
</select>
<input type="submit" name="button" id="button" value="Submit" />
</form>
</body>
</html>
모든 기업의 목록과 직원이 회사 여기
// get list of all companies
mysql_select_db($database_freight, $freight);
$query_rsCompanyList = "SELECT * FROM companies ORDER BY scac ASC";
$rsCompanyList = mysql_query($query_rsCompanyList, $freight) or die(mysql_error());
$row_rsCompanyList = mysql_fetch_assoc($rsCompanyList);
$totalRows_rsCompanyList = mysql_num_rows($rsCompanyList);
// get employees companies
$colname_rsEmployeeCompanyList = "17";
if (isset($_GET['employee_id'])) {
$colname_rsEmployeeCompanyList = $_GET['employee_id'];
}
mysql_select_db($database_freight, $freight);
$query_rsEmployeeCompanyList = sprintf("SELECT * FROM employees_companies WHERE employee_id = %s", GetSQLValueString($colname_rsEmployeeCompanyList, "int"));
$rsEmployeeCompanyList = mysql_query($query_rsEmployeeCompanyList, $freight) or die(mysql_error());
$row_rsEmployeeCompanyList = mysql_fetch_assoc($rsEmployeeCompanyList);
$totalRows_rsEmployeeCompanyList = mysql_num_rows($rsEmployeeCompanyList);
을 얻을 수있는 코드입니다 ========================================================================================================== ========================================================================================================================================================== 회사 이름이 목록 상자에 채워지지 않습니다. 귀하의 코드에 닫는 옵션 태그가없는 것으로 나타났습니다. 나는 그것을 추가하고 값에 대해 $ company_id를 입력 했으므로 목록 상자에 company_id를 채우지 만 어떻게 회사 이름을 대신 표시 할 수 있습니까? 여기
내가 양식 옵션
를 배열 여기// get list of all companies
mysql_select_db($database_freight, $freight);
$query_rsCompanyList = "SELECT company_id, name FROM companies ORDER BY scac ASC";
$rsCompanyList = mysql_query($query_rsCompanyList, $freight) or die(mysql_error());
$all_company_ids = array();
while ($row_rsCompanyList = mysql_fetch_array($rsCompanyList)) {
$all_company_ids[] = $row_rsCompanyList['compnay_id'];
}
// get list of all employees companies
$colname_rsEmployeeCompanyList = "17";
if (isset($_GET['employee_id'])) {
$colname_rsEmployeeCompanyList = $_GET['employee_id'];
}
mysql_select_db($database_freight, $freight);
$query_rsEmployeeCompanyList = sprintf("SELECT company_id FROM employees_companies WHERE employee_id = %s", GetSQLValueString($colname_rsEmployeeCompanyList, "int"));
$rsEmployeeCompanyList = mysql_query($query_rsEmployeeCompanyList, $freight) or die(mysql_error());
$emp_company_ids = array();
while ($row_rsEmployeeCompanyList = mysql_fetch_array($rsEmployeeCompanyList)) {
$emp_company_ids[] = $row_rsEmployeeCompanyList['compnay_id'];
}
입니다 만드는 오전 곳이다 <?php foreach($all_company_ids as $company_id): ?>
<option value="<?php echo $company_id; ?>" <?php if(in_array($company_id, $emp_company_ids)) echo "selected=\"selected\""; ?>><?php echo $company_id; ?></option>
<?php endforeach; ?>
코드가 엉망입니다. 첫째, ORM을 사용할 수 있다면 좋을 것입니다 (좋은 이유가 없다면!). 둘째, 귀하는 귀하의 양식으로 귀하의 DB와 상호 작용하고 있습니다. 이는 좋은 습관이 아닙니다. –