我有一个从包含多个值的mysqli select语句创建的数组。(客户列表),然后我有一个仅包含一个值的select,该值也存储在另一个数组中。完成后,我希望将信息存储在我的数据库中。这是一个应该链接到同一产品的客户列表。
现在,我想用来自另一个数组的值的新列来扩展第一个数组。(第一个数组的每一行都有相同的值。我找不到任何方法来做这件事,尽管我认真地在谷歌上搜索...Code:(在数据库连接之后)会话值来自另一个PHP脚本,并且是正确的。
session_start();
$product = $_SESSION['prod_name'];
$ka = $_SESSION['ka'];
//print_r($_SESSION);
$customers = mysqli_query($link,"
SELECT cust_id FROM customers
INNER JOIN ka_chain on ka_chain.chain_id=chain
WHERE ka_chain.name='$ka'");
$cid=array(); //array with multiple records
while($row = mysqli_fetch_assoc($customers)) {
$cid = $row;
print_r($cid);
}
$prod_id = mysqli_query($link,
"SELECT prod_id FROM products
WHERE prod_name='$product'") ;
$pid = mysqli_fetch_array($prod_id); //array with only one row.现在怎么办?..
发布于 2014-10-21 00:41:23
第一件事是纠正将$row插入到$cid数组中。将其更改为$cid[] = $row
一个客户可以拥有多个产品,一个产品可以被多个客户购买。所以我们在这里有一个多对多的关系。您需要第三个表来连接这两个表,因此不需要添加行,但需要一个新表来存储这两个表之间的关系。
发布于 2014-10-21 02:53:13
您可以在此站点http://php.net/manual/en/function.array-merge.php中使用array_merge()
发布于 2014-10-22 01:49:11
更新后,我用以下方式解决了这个问题:(用代码注释)谢谢你的帮助和好主意!
session_start();
$product=$_SESSION['prod_name'];
$ka=$_SESSION['ka'];
//get customer assigned to ka chain
$customers = mysqli_query($link,"
SELECT cust_id FROM customers
INNER JOIN ka_chain on ka_chain.chain_id=chain
WHERE ka_chain.name='$ka'");
// get product id
$prod_id = mysqli_query($link,"SELECT prod_id FROM products
WHERE prod_name='$product'") ;
//add product id to array and convert to int
$pid=mysqli_fetch_array($prod_id);
$pid_int = (int) $pid['prod_id'];
// Create new array to add product id to customers
$cust_product = array();
while($row = mysqli_fetch_assoc($customers)) {
$item['cust_id'] = (int)$row['cust_id'];
$item['product_id'] =$pid_int;
$cust_product[]=$item;
}
//insert data to new array
if(is_array($cust_product)){
$sql = "INSERT INTO cust_products (cust_id, product_id) values ";
$valuesArr = array();
foreach($cust_product as $row){
$c_id = mysqli_real_escape_string($link, $row['cust_id'] );
$p_id = mysqli_real_escape_string($link, $row['product_id'] );
$valuesArr[] = "('$c_id', '$p_id')";
}
$sql .= implode(',', $valuesArr);
mysqli_query($link,$sql) or die(mysqli_error($link));
printf ("New Record has id %d.\n", $mysqli->insert_id);
}https://stackoverflow.com/questions/26470402
复制相似问题