Ik heb een pagina met PHP en HTML code. Deels wordt de html-code gegenereerd door de PHP-code.
Heel veel loopt goed. Maar nu heb ik een bug in mijn pagina zitten die ik niet kan verklaren en waar misschien een hele simpele oplossing voor is.
Ik heb een tabel in mijn database zitten waar ik een id_product heb en een collected.
Als ik op mijn pagina klik op een knopje in een regel van een tabel, dan neemt hij id_product mee naar de volgende code.
$query_exist = "SELECT * FROM `prstshp_collect_products` WHERE `id_product` = $idproduct;";
$result_exist = mysqli_query($con,$query_exist);
$match_found = mysqli_num_rows($result_exist)>0;
$row_exists = mysqli_fetch_array($result_exists,MYSQLI_ASSOC);
$collected = $rows_exists["collected"];
if ( $match_found )
{
// Voor dit product is al een regel aanwezig
// Als het record er al wel is, dan moet met UPDATE het veld collected van 0 naar 1 worden omgezet of omgekeerd.
if ( $collected = 1)
{
$query_3 = "UPDATE prstshp_collect_products SET collected = 0 WHERE id_product = $idproduct;";
}
else
{
$query_3 = "UPDATE prstshp_collect_products SET collected = 1 WHERE id_product = $idproduct;";
}
}
else
{
// Voor dit product is nog geen regel aanwezig
// Deze query plaatst een nieuw record omdat er geen recod met dit id_product is.
$query_3 = "INSERT INTO prstshp_collect_products ( id_product, collected ) VALUES ( $idproduct, 1 );";
}
mysqli_query($con, $query_3);
header("Location: " . $_SERVER['PHP_SELF']);
mysqli_close($con);
exit();
De eerste keer gaat goed. Er wordt een record aangemaakt. Nog steeds werkt alles perfect.
De tweede keer doe ik precies het zelfde en wordt er een update gedaan van de bewuste regel. Collected wordt van 1 naar 0 gezet. (Nog steeds goed)
Dan de derde keer. Ik doe weer precies het zelfde, maar gek genoeg wordt collect nu niet terug naar 1 gezet.
Als ik mijn code bekijk zie ik bij de 2 UPDATE regels geen verschil. Natuurlijk wel de 1 en de 0 die omgezet moeten worden.
Wie heeft er een idee wat ik hier niet goed heb gedaan?