PHP kullanarak MySQL DB içine Session Array ekleme nasıl

0 Cevap php

Ben bir çok sayfa form var ve mysql içine eklemek için bir oturum olarak bir dizi yakalamaya çalışıyorum. Formun sayfa iki "Adres" bölümüdür. İşte adres bilgi isteyin. Kullanıcı başka bir kutu genişleyen bir "başka bir adres girmek" butonuna basabilirsiniz.

Kullanıcı I Telefon bilgi sormak için nerede sonraki sayfada (phone.php) gitmek için yanında vurur. Bu sayfada Ben doğru şöyle oturum verilerini kayıt olduğumu düşünüyorum:

if(!isset($_SESSION)) 
{ 
@session_start(); 
}  
header("Cache-control: private");
ob_start();

include('header.php');

//now, let's register our session variables from address.php
session_register('addressLineOne');
session_register('addressLineTwo');

//finally, let's store our posted values in the session variables
$_SESSION['addressLineOne'] = $_POST['addressLineOne'];
$_SESSION['addressLineTwo'] = $_POST['addressLineTwo'];

Sonunda biz submit.php çarptı. Ek bir adres eklemek için kodu devre dışı bırakırsanız, bu iyiyim çalıştığı kullanıyorum saplamasıdır.

 $insertAddress="INSERT INTO address (idperson, addressLineOne, addressLineTwo)
 VALUES ( '$id','$_SESSION[addressLineOne]','$_SESSION[addressLineTwo]')";
 if (!mysql_query($insertAddress,$con))
   {die('Error: ' . mysql_error());}
 echo "";

Ben "ek adres eklemek" kod etkinleştirmek zaman, yukarıda insert her DB alanına "ARRAY" ekleyecektir. Ben şu dışarı çalışıyorlar:

 foreach($_SESSION['idperson'] as $row=>$id)
{
    $idperson=$id;
    $addressLineOne=$_SESSION['addressLineOne'][$row];
    $addressLineTwo=$_SESSION['addressLineTwo'][$row];
}
 //enter rows into database
 foreach($_SESSION['idperson'] as $row=>$id)
{
    $idperson=mysql_real_escape_string($id);
    $addressLineOne=mysql_real_escape_string($_SESSION['addressLineOne'][$row]);
    $addressLineTwo=mysql_real_escape_string($_SESSION['addressLineTwo'][$row]);
}

 $insertAddress="INSERT INTO address (idperson, addressLineOne, addressLineTwo)
 VALUES ('.$id.','.$addressLineOne.','.$addressLineTwo.')";

 if (!mysql_query($insertAddress,$con))
 {
 die('Error: ' . mysql_error());
 }
 echo "$row record added";

Bunun yerine çalışma, ancak, yukarıda sadece veritabanına "..." gibi nokta bir çift ekler. Ben başka ne yapacağımı bilmiyorum. Ben doğru oturum verileri kapma muyum? Benim foreach kod yolu kapalı mı? Herhangi bir yardım için teşekkür ederiz.

Burada address.php başka tablo eklemek için kullanıyorum kodu:

 <?php for($i=1; $i<6; $i++):?>
 <div id='hidden<?php echo $i; ?>' style='display: none'>
<tr class="odd">
    <td width="33%">Street/Number</td>
    <td><input type="text" name="addressLineOne[]" id="addressLineOne<?php echo $i; ?>"/></td>
</tr>
<tr>
    <td>Address 2</td>
    <td><input type="text" name="addressLineTwo[]" id="addressLineTwo<?php echo $i; ?>"/></td>
</tr>
 <?php endfor; ?> 

Submit.php db ve yukarıdaki insert bağlanma dışında bir şey yok.

0 Cevap