Mi a baj ezzel a php kóddal?
<?php
$servername = "localhost";
$username = "root";
$password = "P@ssw0rd";
$dbname = "mywebshop";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: ".$conn->connect_error);
}
session_start();
$idProduct = $_GET["idProduct"];
$idCustomer = $_SESSION['idCustomer'];
$sql = "INSERT INTO Order (idCustomer, idProduct)
VALUES ('$idCustomer', '$idProduct')";
mysqli_close($con);
header('Location: /guitars.php');
?>
A probléma: Nem adja hozzá az táblához az értékeket.
1. A kapcsolat jó, különben problémát jelezne ki.
2. A $idProduct és $idCustomer változó értéke is jól. A kód végéről a "header('Location: /guitars.php');"-t kitörölve echoval kiirattam az értékeket. Mindig megfelelőt adott. Plusz az $sql részre random számokat beírva sem rakott be semmilyen értéket sem.
Valószínűleg ezzel lehet a probléma:
$sql = "INSERT INTO Order (idCustomer, idProduct)
VALUES ('$idCustomer', '$idProduct')";
de nem értem, hogy mi ... mert ugyan ez az SQL kód működik a MySQLen belül és ott hozzá tudom adni az értékeket.





Hogyan lehetne megcsinálni?
kb 1,5 napja használom a phpt ... semmit sem tudok róla





Használd a PHP doksit, különben óránként fogsz idejárni kérdésekkel és órákat várhatsz a válaszra.
mysqli_query($conn, $sql);
$sql = "INSERT INTO Order (idCustomer, idProduct)
VALUES ('$idCustomer', '$idProduct')";
mysqli_query($conn, $sql);
mysqli_close($conn);
header('Location: /guitars.php');
Így beraktam, de még mindig semmi sem történik :'(





illetve ez hibás mert nincs $con változód: mysqli_close($con);
(lemaradt egy n betű)
Illetve nyilván ha kívülről érkező adatokkal dolgozol, akkor azokat szűrni kell ha publikus az oldal, $_GET, $_POST, $_SERVER mind veszélyforrás ha közvetlenül írod adatbázisba.
Majd ha ott tartasz, akkor erre egyszerű megoldás lesz prepared statementeket használni, vagy saját szűrőket írni ha pontosabban tudod milyen adat jöhet.
Oké ott lemaradt egy N betü, de ez nem befolyásolja ... csak nem zárja le a kapcsolatot.
Azt is kijavítottam, de még így sincs semmi.





a mysqli_query helyett:
if(!mysqli_query($conn, $sql)){
echo "Hibakód: ".mysqli_errno($conn).", ".mysqli_error($conn);
}
Így lefut az IF feltételében lévő query, ha hamis értékkel tér vissza akkor a tagadás ( ! ) miatt igaz lesz, tehát belemegy az ifbe, és kiírja a hibakódot és annak magyarázatát.
<?php
$servername = "localhost";
$username = "root";
$password = "P@ssw0rd";
$dbname = "mywebshop";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: ".$conn->connect_error);
}
session_start();
$idProduct = $_GET["idProduct"];
$idCustomer = $_SESSION['idCustomer'];
$sql = "INSERT INTO Order (idCustomer, idProduct)
VALUES ('$idCustomer', '$idProduct')";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: ".$sql."<br>".$conn->error;
}
?>
Most ezzel próbálkoztam meg ... amit a W3School ír.
Ezt a hibaüzenetet dobta ki:
Error: INSERT INTO Order (idCustomer, idProduct) VALUES ('1', '1')
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Order (idCustomer, idProduct) VALUES ('1', '1')' at line 1





Ja igen, nekem sem tűnt fel :) az 'order' az alapból mysql kulcsszó a rendezésre. Tedd ` jelek közé ha olyan táblanevet használsz ami parancs is egyben. (altGr + 7)
INSERT INTO `Order` ...
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!