Бутони image не работи

iveto89

Registered
Имам 2 бутона image. Първият за like работи, другият не.


if (isset($_POST['submit'])) {
$insert = mysqli_query($mysqli, "INSERT INTO `voting` (`likes`) VALUES ('1')");
} else {
die();
}
if (isset($_POST['submit1']) || isset($_POST['submit1_x'])) {
$insert2 = mysqli_query($mysqli, "INSERT INTO `voting` (`dislikes`) VALUES ('1')");
} else {
die();
}

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input type="image" name="submit" value="Submit" src='like.jpg'>
<input type="image" name="submit1" value="Submit1" src='2.jpg'>
</form>
 
Като за начало това die() не ти трябва. Също така ти препоръчвам да използваш по-описателни имена за променливите, така в даден момент, ако ти се наложи да променяш нещо по кода, ще ти е по-лесно да разбереш кое за какво е. В крайна сметка кода може да се съкрати до:
PHP:
<?php
if (isSet($_POST['submitLike'])) {
    $insertLike = mysqli_query($mysqli, "INSERT INTO `voting` (`likes`) VALUES ('1')");
elseif (isSet($_POST['submitDislike']) || isSet($_POST['submit1_x'])) {
    $insertDislike = mysqli_query($mysqli, "INSERT INTO `voting` (`dislikes`) VALUES ('1')");
else {
    echo '
    <form method="post">
        <input type="image" name="submitLike" src="like.jpg">
        <input type="image" name="submitDislike" src="2.jpg">
    </form>
    ';
}
?>
 
Еlse изобщо не ти е нужен според зависи от логиката ти но като цяло може да направиш така:
Код:
<?php
if (isset($_POST['submit'])) {
	$insert = mysqli_query($mysqli, "INSERT INTO `voting` (`likes`) VALUES ('1')");
}
if (isset($_POST['submit1']) || isset($_POST['submit1_x'])) {
	$insert2 = mysqli_query($mysqli, "INSERT INTO `voting` (`dislikes`) VALUES ('1')");
}
?>
<form action="" method="post">
<input type="image" name="submit" value="Submit" src='like.jpg'>
<input type="image" name="submit1" value="Submit1" src='2.jpg'>
</form>
 
Ако си говорим за ненужни неща - лоша идея е да се гледа това, а и е напълно ненужно:

Код:
|| isset($_POST['submit1_x'])

Също така може да се разкарат променливите $insert и $insert2, щом няма да се проверяват.

Колкото до проблема ти - защо първата заявка прави запис, а втората не - най-вероятно "проблема" се състои в това, че нямаш указана стойност по подразбиране за колоната "likes", но имаш за "dislikes". Самия начин е много погрешен - принципно трябва да се прави ъпдейт с инкрементация (брояч) на лайкове и дислайкове на базата на това, за което се отнасят, а не да пълниш две колони с 1-ки или нещо друго и после да не знаеш какво да ги правиш. Освен ако не искаш да запазваш и IP-та, които впоследствие да проверяваш и да режеш, но една фрагментация с нормализиране ще е по-добре в такъв случай.
 

Back
Горе