Kezdőoldal » Számítástechnika » Programozás » Mi lehet a logikai hiba ebben...

Mi lehet a logikai hiba ebben a PHP kód részletben?

Figyelt kérdés

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


2015. jan. 17. 10:40
 1/6 anonim ***** válasza:

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.

2015. jan. 17. 10:43
Hasznos számodra ez a válasz?
 2/6 A kérdező kommentje:
Akkor hogy kellene módosítani a kód részletet, hogy el tudjam dönteni, hogy az adott táblában van-e valami, vagy pedig üres?
2015. jan. 17. 11:11
 3/6 anonim ***** válasza:

Pl. ezzel a függvénnyel megkapod egy tömbben a query eredményét:

[link]


De tényleg felejtsd el a mysql_ kezdetű függvényeket. Használj mysqli_ kezdetűeket helyettük, vagy PDO-t.

2015. jan. 17. 12:16
Hasznos számodra ez a válasz?
 4/6 A kérdező kommentje:

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! :)

2015. jan. 17. 14:43
 5/6 anonim ***** válasza:

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).

2015. jan. 17. 16:08
Hasznos számodra ez a válasz?
 6/6 A kérdező kommentje:

#5

Természetesen, ez már bőven elég, boldogulni fogok, köszi! :)

2015. jan. 17. 16:28

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!