我可以在foreach循环中使用Multiple Array吗?

时间:2015-06-17 17:19:06

标签: php mysql arrays session

我已经在这个论坛和谷歌研究了几个相关的问题,请帮助。我试图从存储在会话中的几个数组中将一些值插入数据库。我也有一些单个值存储在一些会话中,我想插入多行dbase表。

//首先,我将从先前页面的会话中存储的值回忆到当前页面,如下所示。

//注意会话前面的注释,除前两个会话外,所有数组都包含相同数量的值。

$ticketid="t".date('dmyHis').mt_rand (1000,9999);
        $bettime= date('d/m/y H:i');
        $_SESSION['bettime']=$bettime;//Not array, contains single value
        $_SESSION['ticketid']=$ticketid;//Not array, Contains single value
        $_SESSION['gamecode'];//array
        $_SESSION['starttime'];//array
        $_SESSION['optioncode']//array
        $_SESSION['home'];//array
        $_SESSION['away'];//array
        $_SESSION['odd'];//array

在这里,我连接到dbase。 //工作良好。 要求(' gumodb.php&#39);

这里我尝试使用一个数组会话作为键

来启动一个循环
 foreach($_SESSION['starttime'] as $ro => $col){
    mysql_query("INSERT INTO reg_bet (bettime, ticketid,matchcode,starttime,home,away,optionodd,optioncode) VALUES('$_SESSION[bettime]','$_SESSION[ticketid]','$_SESSION[gamecode]', '$_SESSION[starttime]','$_SESSION[home]','$_SESSION[away]','$_SESSION[odd]','$_SESSION[optioncode]' ) ") 
    or die(mysql_error());  

            }

它在第61行的C:\ xampp \ htdocs \ gumo \ consel.php中返回Notice:Array to string conversion

编辑问题 我正在努力实现这样的目标。

foreach($_SESSION['gamecode'] as $gc => $gcvalue && $_SESSION['starttime'] as $st =>$stvalue && $_SESSION['optioncode'] as $oc => $ocvalue ){ 
mysql_query("INSERT INTO reg_bet (matchcode,starttime,optioncode) VALUES('$gcvalue','$stvalue','$ocvalue') ") 
or die(mysql_error());  }

3 个答案:

答案 0 :(得分:1)

$x = json_encode($_SESSION);
$query = "INSERT INTO ".$TABLE_NAME data "VALUES ("$x");";
 $mysqli->query( $query );

将会话数组编码为单个字符串,并在一行数据中插入表中。 获取相同数据时,请使用json_decode将字符串转换为array

答案 1 :(得分:0)

假设$ _SESSION变量中的数组是数字,你可以试试这样的东西:

for ($i = 0; $i < $max_index_count; $i++) {
  $query = "INSERT INTO ".$TABLE_NAME;
  $query += "VALUES (".$_SESSION['index'][$i].");";
  $mysqli->query( $query );
}

以上是伪代码,但问题是您正在尝试将数组用作字符串。 $ _SESSION变量是一个multidemsional数组,因此,指定两个ibdexes。

答案 2 :(得分:0)

经过这么多试验,我能够用这个完成它

$ticketid="t".date('dmyHis').mt_rand (1000,9999);//ticket id generateed 
$bettime= date('d/m/y H:i');
$_SESSION['bettime']=$bettime;
$_SESSION['ticketid']=$ticketid;
$_SESSION['gamecode'];
$_SESSION['starttime'];
$_SESSION['optioncode'];
$_SESSION['home'];
$_SESSION['away'];
$_SESSION['odd'];
require('gumodb.php');


foreach ($_SESSION['gamecode'] as $index => $value)
{
$ge = $_SESSION['gamecode'][$index];
$se = $_SESSION['starttime'][$index];
$oe = $_SESSION['optioncode'][$index];
$he = $_SESSION['home'][$index];
$ay = $_SESSION['away'][$index];
$od = $_SESSION['odd'][$index];

这个帖子将数组和非数组放入表格行并显示

  mysql_query("INSERT INTO reg_bet (matchcode,ticketid,bettime,starttime,home,away,optionodd,optioncode) VALUES('$ge','$ticketid','$bettime','$se','$he' ,'$ay','$od' ,'$oe' ) ") 
    or die(mysql_error());  
    echo $_SESSION['gamecode'][$index] .'-'. $_SESSION['starttime'][$index].'- '. $_SESSION['optioncode'][$index].' -'. $_SESSION['home'][$index].'- '. $_SESSION['away'][$index].'- '. $_SESSION['odd'][$index].$bettime.' -' .$ticketid.'</br>' ;
}

感谢您的贡献。