Új hozzászólás Aktív témák

  • L3zl13
    nagyúr

    Epp kereseshez irok lekerdezest, az adatbazisban pedig van tobb-tobbes kapcsolat, amit hidtablaban tarolok. Egy checklistben kivalasztom a kapcsolatokat, amire keresni akarok. Az igy kivalasztott kapcsolattal rendelkezo elemek metszetet ill. egy viszonylag egyszeru lekerdezes eredmenyenek metszetet szeretnem listazni.

    Az unionos megoldas is jonak tunik, csak mar egy ilyen egyszeru lekerdezesre is hibauzenetet kapok a a mysql_num_rows sorabol, amit egyebkent nem ad hibatlan lekerdezesnel:

    SELECT * FROM ((SELECT * FROM component WHERE typeID = 2) UNION (SELECT * FROM component WHERE typeID = 1))

    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\...\search.php on line 199

    Első körben az unionnak itt semmi értelme itt szerintem.
    Egy SELECT * FROM component WHERE typeID = 1 or typeID=2 sokkal jobb megoldás szerintem.

    Másrészt meg a fenti példámban írtam a helyes szintaxist. Az al lekérdezésnek kell adni egy aliast, hogy táblaként kezelje.
    Tehát helyesen így lenne:
    SELECT * FROM (SELECT * FROM component WHERE typeID = 2 or typeID=1) as temp

    Unionnál meg egyszerűen írd a végére a te verziódnak, hogy 'as akármi'

    Ja, és javasolnám, hogy szerezz be egy SQL klienst. Például egy phpMyAdmint vagy egy sqlyogot. Akkor nem csak a num_rows-nál derülne ki állandóan, hogy hibás volt a lekérdezés, és értelmes SQL hibaüzenetet kapnál vissza ami sokkal beszédesebb volna.
    Vagy irass ki egy mysql_error()-t a query után.

Új hozzászólás Aktív témák