1

これは私の rating.php (html コード) です

<input type="radio" name="selectThree" value="1">
<input type="radio" name="selectThree" value="2">
<input type="radio" name="selectThree" value="3">
<input type="radio" name="selectThree" value="4">
<input type="radio" name="selectThree" value="5">

<input type="radio" name="selectTwo" value="1">
<input type="radio" name="selectTwo" value="2">
<input type="radio" name="selectTwo" value="3">
<input type="radio" name="selectTwo" value="4">
<input type="radio" name="selectTwo" value="5">

<input type="radio" name="selectOne" value="1">
<input type="radio" name="selectOne" value="2">
<input type="radio" name="selectOne" value="3">
<input type="radio" name="selectOne" value="4">
<input type="radio" name="selectOne" value="5">

したがって、ユーザーが値を選択すると、データベースに挿入する以下のコードが生成されます。

<?php
include_once "mysqli.connect.php";
include_once "config.php";

if(isset($_POST['Click']))      
{

$rating = explode($_POST['selectOne'], $_POST['selectTwo'], $_POST['selectThree']);
$_SESSION['commentInput'] = array();
$_SESSION['commentInput'][] = $_POST['comment'][0];
$_SESSION['commentInput'][] = $_POST['comment'][1];
$_SESSION['commentInput'][] = $_POST['comment'][2];

if(isset($_REQUEST["comment"]))
{

$merge = array_combine ($_SESSION['product'],$_SESSION['commentInput']);
foreach($merge as $key => $value)
{

$sqlComment = "INSERT into comment (comment, product) VALUES ('".$value."', '".$key."')";
$result = $mysqli->query($sqlComment);
}

echo"<script type='text/javascript'>alert('Thank you for your comment!' )</script>";
}

else
{

echo "<script type='text/javascript'>alert('Please comment!')</script>";    
}   

}

このようにmysqlデータベースに保存したい->

product|rating
--------------
shirt  | 2
pants  | 3
dress  | 5

しかし、今では次のように保存されます。

product|rating
--------------
shirt  | Array
pants  | Array
dress  | Array

私はこれを使用した後 - >

$rating = explode($_POST['selectOne'], $_POST['selectTwo'], $_POST['selectThree']);

//mysql
$sqlRating = "INSERT into ratings (product, rating) VALUES ('".$key."', '".$rating."')";
$result = $mysqli->query($sqlRating);

値を mysql に保存するにはどうすればよいですか? 助けてくださいありがとう!

4

3 に答える 3

1

あなた$ratingは配列です

$rating[0]または$rating[1]またはのような値$rating[2]を保存する必要があります。そのように保存するには、ボタンが選択またはクリックされた php でそれらを管理し、テーブルに保存します。

于 2013-01-09T08:14:44.830 に答える
0

implode を使用してカンマ区切りで入力します。

$rating = explode($_POST['selectOne'], $_POST['selectTwo'], $_POST['selectThree']);

//mysql
$sqlRating = "INSERT into ratings (product, rating) VALUES ('".$key."', '".implode(",",$rating)."')";
$result = $mysqli->query($sqlRating);

後で、データをフィルタリングしながら、find_in_set を使用してその列を調べることができるはずです。

于 2013-01-09T09:13:25.867 に答える
0

このようなforeachループの中に入れてみてください。

// create an array here that contains the key and the rating key=>rating and save it to $ratings array.

foreach($ratings as $key=>$rating){

   //mysql
   $sqlRating = "INSERT into ratings (product, rating) VALUES ('".$key."', '".$rating."')";
   $result = $mysqli->query($sqlRating);
}

ちなみに、ラジオボタンの値を投稿するチュートリアルはこちらhttp://www.homeandlearn.co.uk/php/php4p10.html

更新: $key に製品の配列が含まれていると仮定します。(例: array('shirt', 'pants', 'jacket') で、ラジオ ボタンの値にマッピングされます。

'shirt' => $_POST['selectOne'];
'pants' => $_POST['selectTwo'];
'jacket' => $_POST['selectThree'];

$key と $ratings に対して $prod_ratings という配列を作成できます

$ratings = array($_POST['selectOne'], $_POST['selectTwo'], $_POST['selectThree']);
$prod_ratings = array_combine($key, $ratings);

次に、配列の値をデータベースに挿入します。

foreach($prod_ratings as $key=>$rating){

   //mysql
   $sqlRating = "INSERT into ratings (product, rating) VALUES ('".$key."', '".$rating."')";
   $result = $mysqli->query($sqlRating);
}
于 2013-01-09T08:17:29.310 に答える