Kako saznati koji put se prolazi kroz kod

Već sam svoj problem postavljao na forum, ali valjda je u topicu bilo previše pitanja odjednom i/ili previše koda, pa nisam dobio odgovor. Evo pokušaću pojednostaviti i konkretizovati problem.

Kod je podijeljen u index.php (A) i save_item_order.php (B). Baza se u A otvara radi čitanja i ispisa, a u B radi upisa u bazu. B se poziva samo preko forme iz A. Problem je što se u bazu upisuje samo prilikom prvog prolaska kroz B.

Ono što me zanima je kako da provjerim koji put se prolazi kroz B? S ciljem da onda tu negdje (možda prije $sql ili poslije $query) ubacim provjeru vrijednosti nekih varijabli. Ne može mi pasti napamet ništa drugo…

save_item_order.php (B)

<?php
require "../partials/connection.php";

$id = $_GET['id']
$broj = $_GET['broj'];
$duzina = $_GET['duzina'];
$sirina = $_GET['sirina'];
$napomena = $_GET['napomena'];

$kvadratura = $duzina*$sirina/10000;
$cijena = $kvadratura * 0.5;

$sql = "INSERT INTO narudzbaArtikli VALUES ('$id','$broj','$duzina','$sirina','$kvadratura','$cijena','$napomena')";
$query = mysqli_query($db,$sql);

mysqli_close($db);
header('Location: index.php');

 ?>

Moze li vise detalja nije mi bas jasno “prolazi” ?

Možeš li stavit kod forme iz index.php fajla? Da vidimo šta se događa. U svakom slučaju bilo bi dobro da provjeriš da li je mysqli_query() vratio grešku. Imaš primjer na PHP stranici:

https://www.php.net/manual/en/mysqli.query.php

if (!$query = mysqli_query($db, $sql)) {
    die(printf("Error: %s\n", mysqli_error($db)));
}

Pa javi koju grešku dobijaš. To će vjerovatno bit rješenje problema.

1 Like

Da, znao sam da je žešća glupost u pitanju. :grin:
Ponavljanje vrijednosti za primary key! Zato je prvi unos bio ok, a već drugi nije. Ostaje mi nejasno kako nikakav error ne prijavljuje…
@igor hvala na rješenju, @Sacir_Satko hvala na interesovanju za problem.

Ubacuj kod u try catch blok:

try {
    // any code here
} catch (\Exception $e) {
    exit($exception->getMessage());
}
1 Like

Bravo!

I taj odgovor je na stranici gore:

Return Values

Returns FALSE on failure. For successful SELECT, SHOW, DESCRIBE or EXPLAIN queries mysqli_query() will return a mysqli_result object. For other successful queries mysqli_query() will return TRUE.

Znači dobijaš boolean FALSE ako query ne uspije. I onda je na tebi da to nekako riješiš, ispišeš neku grešku ili napraviš redirect na drugu stranicu ili nešto drugo

1 Like

@tpojka, @igor korisno, hvala!

1 Like

Isteklo vrijeme za edit

try {
    // any code here
} catch (\Exception $e) {
    exit($e->getMessage());
}