Я пытаюсь проверить, не введен ли цвет в базу данных, если цвет не должен быть введен и сохранен в базе данных, и должен отображаться следующий код ошибки <p>This color has already been entered!</p>
. Но по какой-то причине я не могу заставить это работать, может кто-то мне помочь?Задача проверки PHP и MySQL
Имена цветов вводятся в $_POST['color']
, который является массивом, введенным пользователем.
Адрес: html code, который собирает цветы.
<input type="text" name="color[]" />
<input type="text" name="color[]" />
<input type="text" name="color[]" />
<input type="text" name="color[]" />
<input type="text" name="color[]" />
<input type="text" name="color[]" />
<input type="text" name="color[]" />
<input type="text" name="color[]" />
<input type="text" name="color[]" />
Вот код PHP & MySQL.
for($i=0; $i < count($_POST['color']); $i++) {
$color = "'" . $_POST['color'][$i] . "'";
}
$mysqli = mysqli_connect("localhost", "root", "", "sitename");
$dbc = mysqli_query($mysqli,"SELECT *
FROM colors
WHERE color = '$color'
AND user = '$user_id' ");
if(mysqli_num_rows($dbc) == TRUE) {
echo '<p>This color has already been entered!</p>';
} else if(mysqli_num_rows($dbc) == 0) {
// enter the color into the database
}
Вы знаете, какой SQL-запрос вы хотите запустить? –
Вы переписываете '$ color' в свой оператор for, поэтому берется только последний. Но в любом случае, если вы напечатаете '
Этот цвет уже введен!
'как пользователь знает **, который ** один из них? –@Col. Шрапнель, что ты имеешь в виду? – IPADvsSLATE