所以我有一个下拉列表,其中包含可供您选择的客户列表。它使用一个函数(其他人构建的),当有2个或更多客户时可以正常工作,但只有一个客户死时才能工作。当有一位客户时,dropdown
中的每个项目都是该客户的每个column
的第一个字符。
以下是功能:
function getCustomerBy($column = "",$value = "")
{
global $conn;
if ($value == '')
{
return(null);
}
$sel = "SELECT
customers.*,
customerStatus.code customerStatus
FROM customers,
customerStatus
WHERE customer_id
and customerStatus.id = customers.customerStatus_id and ". mysqli_real_escape_string($conn,$column) ."='". mysqli_real_escape_string($conn,$value) ."'";
// error_log($sel);
$run = mysqli_query($conn, $sel);
$check = mysqli_num_rows($run);
if ($check ==1)
{
$row = mysqli_fetch_assoc($run);
return($row);
}
elseif($check >1)
{
$rows = array();
while ($row = mysqli_fetch_assoc($run))
{
$rows[] = $row;
}
return($rows);
}
else
{
return(null);
}
}
我相当肯定它是($check == 1
)的东西但是我无法找到最好的方法来重新做所有这些以使其工作而不会造成其他错误(特别是"无法修改标题")
这是使用dropdown
:
$customers = getCustomerBy('users_user_id',$user['user_id']);
此外,这是dropdown
的代码:
<?
foreach ($customers as $customer)
{
$selected = '';
if (isset($gig['customers_customer_id']) && $customer['customer_id'] == $gig['customers_customer_id'])
{
$selected = ' selected ';
}
echo "\t<option value=\"".$customer['customer_id']."\" $selected>".$customer['customer_company_name']."</option>";
}
?>
答案 0 :(得分:0)
我不知道代码的其余部分如何使用返回的数组,但您可以尝试以下操作:
变化:
if ($check ==1) {
$row = mysqli_fetch_assoc($run);
return($row);
}
对此:
if ($check == 1) {
$rows = array();
$rows[] = mysqli_fetch_assoc($run);
return($rows);
}
答案 1 :(得分:0)
构建下拉列表的代码需要一个数组数组,但是当它是一行时,你会传递一个字符串数组。同时处理两种情况($check > 0
)。
function getCustomerBy($column = "",$value = "")
{
global $conn;
if ($value == '')
{
return(null);
}
$sel = "SELECT
customers.*,
customerStatus.code customerStatus
FROM customers,
customerStatus
WHERE customer_id
and customerStatus.id = customers.customerStatus_id and ". mysqli_real_escape_string($conn,$column) ."='". mysqli_real_escape_string($conn,$value) ."'";
// error_log($sel);
$run = mysqli_query($conn, $sel);
$check = mysqli_num_rows($run);
if($check > 0)
{
$rows = array();
while ($row = mysqli_fetch_assoc($run))
{
$rows[] = $row;
}
return($rows);
}
else
{
return(null);
}
}
我认为您的查询中存在复制/粘贴错误,因为它看起来并不正确。