Mi lehet a logikai hiba ebben a PHP kód részletben?
Akárhányszor fut le ez a rész, mindig az ELSE ágba fut, pedig teljesen üres a 'tabla' nevű tábla.
Hogy kellene átírni ahhoz, hogy üres tábla esetén ne az ELSE ágba fusson? VAgy hogy ellenőrizzem le, hogy egy adott tábla éppen üres-e?
PASTEBIN /S1bHfJRA
Nem elég a query, az eredményeket vissza is kell kapni, nézz meg egy sima tutorilat.
Hiába üres a tábla, egy üres eredményt kapsz vissza.
A másik, ami fontosabb, NE HASZNÁLD a mysql_* függvényeket.
Helyettük a mysqli-vel vagy a PDO-val ismerkedj.
Pl. ezzel a függvénnyel megkapod egy tömbben a query eredményét:
De tényleg felejtsd el a mysql_ kezdetű függvényeket. Használj mysqli_ kezdetűeket helyettük, vagy PDO-t.
A kis példa kódomat megírnád/átírnád úgy, hogy ezzel akkor jól működjön? (mivel még csak most tanulom az egészet).
Tehát egy olyan kis feltételnél kellene jól működnie, hogyha a lekérdezett tábla üres (nincs benne semmi, de biztosan létezik), akkor belépjen az IF feltétel azon részébe.
köszi! :)
Nem vagyok biztos benne hogy azt szeretnéd a megnézni hogy a lekérdezés eredménye üres e vagy pedig a tábla. Ha azt akarod megnézni hogy a tábla üres e akkor:
SELECT COUNT(*) FROM table
Ez visszaadja a tábla sorainak számát, tehát meg kell nézned hogy az eredmény 0 e.
Így használod:
$row = mysqli_fetch_row(mysqli_query('SELECT COUNT(*) FROM table'));
if (!$row) {
//Üres a tábla
}
Ahogy felettem is írták, használj mysqli-t vagy PDO-t.
A php valahogy így nézne ki az esetedben:
<?php
$connect=mysqli_connect("localhost","my_user","my_password","my_db");
if (mysqli_connect_errno()) {
die("Nem sikerült csatlakozni az adatbázishoz: " . mysqli_connect_error());
}
if ($result=mysqli_query($connect,$parancs)) {
if (!mysqli_num_rows($result)) {
echo "A lekérdezés eredménye üres!";
} else {
//Sikeres lekérdezés, használd a mysqli_fetch_* függvényeket
}
} else {
//Hibás lekérdezés vagy nem létező tábla
echo "Hiba történt a lekérdezéskor!";
}
mysqli_close($con);
?>
Ezen kívül meg lehet nézni hogy létezik e a tábla:
if (mysqli_num_rows(mysql_query("SHOW TABLES LIKE '".$table."'")) > 0) {
echo "Létezik a tábla";
} else {
echo "Nem létezik a tábla";
}
Természetesen mivel tanulni szeretnél és nem megíratni másokkal, tekintsd ezt példának és írd meg a kódot magad copy-paste helyett (amúgy se működne a kód copy-paste-el).
#5
Természetesen, ez már bőven elég, boldogulni fogok, köszi! :)
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!