首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向PHP数组添加列

问向PHP数组添加列
EN

Stack Overflow用户
提问于 2014-10-21 00:27:09
回答 3查看 128关注 0票数 0

我有一个从包含多个值的mysqli select语句创建的数组。(客户列表),然后我有一个仅包含一个值的select,该值也存储在另一个数组中。完成后,我希望将信息存储在我的数据库中。这是一个应该链接到同一产品的客户列表。

现在,我想用来自另一个数组的值的新列来扩展第一个数组。(第一个数组的每一行都有相同的值。我找不到任何方法来做这件事,尽管我认真地在谷歌上搜索...Code:(在数据库连接之后)会话值来自另一个PHP脚本,并且是正确的。

代码语言:javascript
复制
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.

现在怎么办?..

EN

回答 3

Stack Overflow用户

发布于 2014-10-21 00:41:23

第一件事是纠正将$row插入到$cid数组中。将其更改为$cid[] = $row

一个客户可以拥有多个产品,一个产品可以被多个客户购买。所以我们在这里有一个多对多的关系。您需要第三个表来连接这两个表,因此不需要添加行,但需要一个新表来存储这两个表之间的关系。

票数 0
EN

Stack Overflow用户

发布于 2014-10-21 02:53:13

您可以在此站点http://php.net/manual/en/function.array-merge.php中使用array_merge()

票数 0
EN

Stack Overflow用户

发布于 2014-10-22 01:49:11

更新后,我用以下方式解决了这个问题:(用代码注释)谢谢你的帮助和好主意!

代码语言:javascript
复制
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);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26470402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档