Это мой ratings.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? Пожалуйста, помогите спасибо!
ваш $rating
– массив
вы должны хранить такие значения, как $rating[0]
или $rating[1]
или $rating[2]
, поэтому для их хранения так, как вы можете управлять ими в php, какая кнопка выбрана или нажата, затем сохраните их в своей таблице
Поместите их разделенным запятыми способом с помощью 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 для поиска в этом столбце при фильтрации данных.
попробуйте поместить его внутри цикла 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
Обновление: предположим, что ключ $ содержит массив продуктов. (например, массив («рубашка», «брюки», «куртка»), и он отображается на значения переключателей.
'shirt' => $_POST['selectOne']; 'pants' => $_POST['selectTwo']; 'jacket' => $_POST['selectThree'];
Мы можем создать массив с именем $ prod_ratings для $ key и $ 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); }