PDA

View Full Version : مشکل با ثبت متغییر های داخلی ارایه



saeed-71
چهارشنبه 28 خرداد 1393, 15:12 عصر
سلام.
من یه سری اطلاعات رو تو ارایه میرزم و میخوام تو دیتابیس یکی یکی اینسرت کنم.
اطلاعات رو وقتی میگیرم و print_r میکنم مشکلی ندارن و سالمن.
اما وقتی میخوام تو دیتابیس ثبت کنم ارور Notice: Array to string conversion in رو میده!

مشکل از کجاست؟


<?php
ob_start();
require_once '../../config.php';
echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />';
$count = $_POST['count'];
echo $count_num = count($count);

for($i=1;$i<=$count_num;$i++){
if(!isset($_POST['g'.$i])){echo 'پاسخی برای سوال '.$i.' انتخاب نشده است';exit;}
else{

$gozine = $_POST['g'.$i];
$dars = $_POST['dars'.$i];
$zarib = $_POST['zarib'.$i];
$reshte = $_POST['reshte'.$i];

$sql = $connect->prepare("INSERT INTO `pasokh_riazi` (gozine,dars,zarib,reshte) VALUES (:gozine,:dars,:zarib,:reshte)");
$sql->execute(array(
":gozine"=>$gozine,
":dars"=>$dars,
":zarib"=>$zarib,
":reshte"=>$reshte
));
}
}

?>

jionelmessi
چهارشنبه 28 خرداد 1393, 15:36 عصر
برای insertاگر به این روش از placeholder استفاده می کنید باید به این مدل ارایه را چاس کنید


array("placeholdername"=>value)



دونقطه هارو تو آرایه نزار






<?phpob_start();require_once '../../config.php';echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />'; $count = $_POST['count'];echo $count_num = count($count); for($i=1;$i<=$count_num;$i++){ if(!isset($_POST['g'.$i])){echo 'پاسخی برای سوال '.$i.' انتخاب نشده است';exit;} else{ $gozine = $_POST['g'.$i]; $dars = $_POST['dars'.$i]; $zarib = $_POST['zarib'.$i]; $reshte = $_POST['reshte'.$i]; $sql = $connect->prepare("INSERT INTO `pasokh_riazi` (gozine,dars,zarib,reshte) VALUES (:gozine,:dars,:zarib,:reshte)"); $sql->execute(array( "gozine"=>$gozine,
"dars"=>$dars,
"zarib"=>$zarib,
"reshte"=>$reshte
)); }} ?>

saeed-71
چهارشنبه 28 خرداد 1393, 17:36 عصر
برداشتم بازم همون ارور رو میده

saeed-71
چهارشنبه 28 خرداد 1393, 22:07 عصر
کسی نمیدونه؟؟؟

saeed-71
پنج شنبه 29 خرداد 1393, 11:00 صبح
شدیدا به جوابش و حل مشکل نیاز دارم کسی نمیدونه؟

MMSHFE
پنج شنبه 29 خرداد 1393, 11:50 صبح
خوب شاید مقادیر آرایه POST_$ شما خودشون باز آرایه باشن. یه print_r از POST_$ اینجا بگذارین ببینیم چی به چیه.

engmmrj
پنج شنبه 29 خرداد 1393, 11:52 صبح
کد های فرمتون را هم بزارید .

saeed-71
پنج شنبه 29 خرداد 1393, 12:01 عصر
خدمت شما



Array
(
[count] => Array
(
[0] => count
[1] => count
[2] => count
[3] => count
)

[g1] => Array
(
[0] => 1
)

[dars1] => 1
[zarib1] => 4
[reshte1] => 1
[g2] => Array
(
[0] => 2
)

[dars2] => 1
[zarib2] => 4
[reshte2] => 1
[g3] => Array
(
[0] => 3
)

[dars3] => 1
[zarib3] => 4
[reshte3] => 1
[g4] => Array
(
[0] => 4
)

[dars4] => 1
[zarib4] => 4
[reshte4] => 1
[submit] => ثبت پاخ سوال ها
)

MMSHFE
پنج شنبه 29 خرداد 1393, 12:09 عصر
خوب انگار فقط g0 و... آرایه هستن. توی کدتون خط 12 رو اینطوری عوض کنید:

$gozine = $_POST['g'.$i][0];

saeed-71
پنج شنبه 29 خرداد 1393, 20:06 عصر
تشکر.اگه اینجوری باشه چی؟


Array
(
[hide1] => 1
[number1] => 1
[count] => Array
(
[0] => count
[1] => count
)

[g1] => Array
(
[0] => 1
)

[dars1] => Array
(
[0] => 1
)

[zarib1] => Array
(
[0] => 4
)

[reshte1] => Array
(
[0] => 1
)

[hide2] => 1
[number2] => 2
[g2] => Array
(
[0] => 1
)

[dars2] => Array
(
[0] => 1
)

[zarib2] => Array
(
[0] => 4
)

[reshte2] => Array
(
[0] => 1
)

[submit] => ثبت پاسخ نامه و محاسبه
)

saeed-71
پنج شنبه 29 خرداد 1393, 20:08 عصر
جوابمو پیدا کردم.حل شد مرسی

MMSHFE
پنج شنبه 29 خرداد 1393, 20:12 عصر
کلاً خطوط 12 تا 15 کدتون رو اینطوری عوض کنید:

$gozine = (is_array($_POST['g'.$i] ? $_POST['g'.$i][0] : $_POST['g'.$i]));
$dars = (is_array($_POST['dars'.$i] ? $_POST['dars'.$i][0] : $_POST['dars'.$i]));
$zarib = (is_array($_POST['zarib'.$i] ? $_POST['zarib'.$i][0] : $_POST['zarib'.$i]));
$reshte = (is_array($_POST['reshte'.$i] ? $_POST['reshte'.$i][0] : $_POST['reshte'.$i]));