Mi a hiba ebben a php kódban?
<table id="customers">
<tr>
<th>Item</th>
<th>Describtion</th>
<th>Prices</th>
</tr>
<?php
session_start();
$idCustomer = $_SESSION['idCustomer'];
$sql = "SELECT Product.idProduct,
Product.ProductName,
Product.Price,
Product.Description
FROM
Product JOIN ‘Order’
ON Product.idProduct = ‘Order’.idProduct
WHERE
‘Order’.idCustomer = $idCustomer;";
$result = $conn->query($sql) or die("query fails");
$total = 0;
if ($result->num_rows > 0) {
// output data of each row
while ($row = $result->fetch_assoc()) {
echo "<tr>"."<td>".$row["Product.ProductName"]."</td>";
echo "<td>".$row["Product.Description"]."</td>";
echo "<td>".$row["Product.Price"]."€"."</td>";
$total += $row["Product.Price"];
}
}
} else {
echo "<tr>"."<td>"."No Item Selected"."</td>";
echo "<td>"."No Item Selected"."</td>";
echo "<td>"."0 €"."</td>";
}
?>
</table>
Kapcsolódik a szervezhez és elvileg jó az sql kód, de valamiért nem működik. Már egy ideje nézegetem a képernyőt, de már ötlesem sincs mi lehet a probléma....
Hát a phpnál ha hiba történik szimplán nem tölti be az oldalt ... Úgy kicsit nehéz.
Amúgy ha végig olvasod sok helyen van olyan kód aminek jelezni kéne ha valami "baj" van.
Plusz csekkoltam MySQLban az SQL kódot és az jó ... Jó a kapcsolat a szerverrel stb...
Mit kell még ezen debuggolni?
Kezdetnek az idézőjelekkel szenvedés helyett igazán adhatnál már normális nevet a tábláidnak, így csak plusz hibaforrások. Orders, Customers, stb.
Debugolni pl. az echo utasítással lehet, minden művelet után kiíratod a megváltozott változók értékeit és meggyőződsz róla, hogy helyesek. Nem elképzelhetetlen pl. hogy valamiért már rögtön a _SESSION érték nem jön át, onnan meg borul az egész.
Az SQL lekérdezésnél pedig kommenteld ki a mostanit és kezdd el újra, lépésről lépésre felépíteni a lekérdezést, minden lépésnél kipróbálva, hogy működik-e. Először csak egy sima SELECT, aztán apránként a többi.
A session érték is jó. Azt is próbáltam, de akkor sem történik semi ha statikus értéket adok meg Customer Idnak pl.: 1, ami tudom, hogy létezik és van a nevén áru az Order listában.
Szóval valószínűleg az Inner Jointot használom rosszul, de igazából nem tudom, mert ugyan ezt a kódot a MySQL WorkBenchben sikeresen letudtam futatni ... szóval elvileg ezzel sem kéne, hogy probléma legyen...
Ezért tette ki a kérdést. Nem mással akarom megoldani a feladatot, csak ténylegesen elakadtam sok próbálkozás után és már ötletem sincs, hogy mit csináljak, mert minden normálisnak tűnik neki.
Ezért ha valakinek feltünik, hogy mi a rossz a kódban kérem írja le
$sql = "SELECT Product.idProduct,
Product.ProductName,
Product.Price,
Product.Description
FROM
Product JOIN ‘Order’
ON Product.idProduct = ‘Order’.idProduct
WHERE
‘Order’.idCustomer = $idCustomer;";
Egyébként kell a végére mindkét pontosvessző? Nem értek hozzá, csak úgy feltűnt.
8# Nem kell, de lehet használni, de már nélküle is megpróbáltam.
6# Ha elolvastad volna a kommenteket akkor tudnád, hogy már debuggoltam amennyire csak tudtam...
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, 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!