Mért nem ad vissza értéket az alábbi PHP kód?
Php kosártartalom listázás,
A kód a következő:
<?php
session_start();
if($_SESSION['kosar']) {
$list = array_keys($_SESSION['kosar']);
$list = implode(',',$list);
$sql = "SELECT * FROM termekek WHERE termek_id in ($list)";
include('connect.php');
$result = mysqli_query($connection, $sql);
var_dump($result);
if (mysqli_num_rows($result)>0)
{
while($a=mysqli_fetch_assoc($result))
{$termek[ $a["termekid"] ] = $a;}
echo "<table border=\"1\">";
$osszeg=0;
foreach($_SESSION['kosar'] AS $id => $db) {
$reszosszeg = $db * $termek[$id]['termek_ar'];
$osszeg+= $reszosszeg;
echo "<tr>";
echo "<td>" . $termek[$id]['termek_nev'] . "</td>";
echo "<td>" . $termek[$id]['termek_ar'] . "</td>";
echo "<td>" . $db . "</td>";
echo "<td>" . $reszosszeg . "</td>";
echo "</tr>";
}
echo "<tr>Végösszeg: $osszeg FT</tr>";
} else {echo "Nem létező termék*";}
} else {echo 'A kosar üres';}}
innen és így kapja az adatokat:
<?php
session_start();
if (isset($_POST["termekid"]) and isset($_POST["db"]))
{ $termekid=$_POST["termekid"];
$db = $_POST["db"] ;
if ($db>0)
{ print $termekid . $db;
if (isset($_SESSION['kosar'][$termekid]))
{ $_SESSION['kosar'][$termekid]=$_SESSION["kosar"][$termekid]+$db;
echo 'hozzaadva mennyiseghez';
var_dump($_SESSION);
}
else {$_SESSION['kosar'][$termekid] = $db;
echo 'kosar letrehozva';
var_dump($_SESSION);}
} else { echo "Nincs hozzá adott mennyiség"; }
} else { echo "Nincs átadott érték"; }
?>
Jééézusom! Ilyen gányolással remélem soha nem fogsz nagy látogatottságú oldalt fejleszteni.
- User inputot közvetlenül, szűrés nélkül a Session-be teszel, aztán azt ismét szűrés nélkül SQL lekérdezésbe?! Gratuálok!
- Magyar változónevek? Ne nevettess!
- Kód és HTML vegyítve? Ne már!
Amúgy talán segíteni is tudnánk, ha mondjuk leírnád a hibaüzenetet, vagy hogy mi a kimenet, amit kapsz...
2-3 napja tanulom... Még gyenge tudom!
var_dump miatt ezt adja:
object(mysqli_result)#2 (5) { ["current_field"]=> int(0) ["field_count"]=> int(7) ["lengths"]=> NULL ["num_rows"]=> int(2) ["type"]=> int(0) } V�g�sszeg: 0 FT
aztán táblázat:
| üres | üres | szám ami a darab | üres|
ez annyiszor ahány termék van a kosárban...
amúgy youtubes okt vidből van többnyire
https://www.youtube.com/watch?v=iVd2YoInjLI
csak a mysql függvénnyel nem ment át kellett írni mysqli-re...
gyanítom hogy ott az objektumkezeléssel van valami probléma, de azt mivel tudom megcsinálni, vagy hogy lehet egyszerűbben megcsinálni, Nem működő oldalra kell, csak gyakorolgatok..., de ez most kicsit bonyolult.
Túl a nyilvánvaló hibákon. Ezt a részt nézd át:
while($a=mysqli_fetch_assoc($result))
{$termek[ $a["termekid"] ] = $a;}
és ez után csinálj egy var_dump-ot (vagy inkább egy var_export-ot) a $termek tömbödre, mert szerintem ott van egy kis kavarodás.
Illetve nem világos, hogy az adatbázisban `termek_id` vagy `termekid` a cella neve, mert mindkettőt használod, úgy sejtem az utóbbi a hibás, hiszen akkor a lekérdezés is elhasalt volna, ha az első lenne a rossz. (ld. 14. sor)
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!