Oldal: 1 / 3 123 UtolsóUtolsó
Eredmény: 1 - 10 (28) összesen

Téma: MYSQL - Ha az adat már megtalálható az adatbázisban

  1. #1
    li
    li nem elérhető
    mint Trinity li logója
    Csatlakozott
    08-09-18
    Hozzászólás
    321
    Begyűjtött 4 köszönetet
    3 hozzászólásával

    Alapbeállítás MYSQL - Ha az adat már megtalálható az adatbázisban

    Eddig mindig Google barátomat használtam, hasonló problémákra, de most úgy gondoltam kérek egy kis segítséget a seo fórumot látogató programozóktól:

    Azt szeretném, hogy az űrlapom vizsgálja meg, hogy egy adat szerepel e már az adatbázisban és ha igen, akkor hibát írjon ki.

    function cimellenor($cim) {
    global ....
    dologgal próbálkoztam, de összezavarodtam
    le tudnátok írni, mi is kéne ide?

    a kereséshez a nevek a következők:

    "SELECT cim FROM linkek WHERE cim = '$cim'";
    a hiba kiírása:

    } else if (!cimellenor($_POST['cim'])) {
    $hibauzenet = "Az oldal már szerepel az adatbázisban!";
    Előre is köszönöm a segítséget!



  2. #2
    Rubyist Geri logója
    Csatlakozott
    07-12-15
    Hely
    \x90
    Hozzászólás
    5.749
    Begyűjtött 1.432 köszönetet
    895 hozzászólásával

    Alapbeállítás re: MYSQL - Ha az adat már megtalálható az adatbázisban

    PHP kód:
    <?php

    function ellenor($adat){ //nem bkv :)
      
    $sql mysql_query("select count(*) from linkek where cim = '$adat'");
      if(
    $sql>0){
       return 
    false;  //ha van ilyen az adatbazisban
      
    }else{
       return 
    true;   //nincs meg ilyen az adatbazisban
      
    }


    }

    ?>




  3. #3
    kow
    kow nem elérhető
    KowDerMei$ter kow logója
    Csatlakozott
    07-05-09
    Hely
    Budapest
    Hozzászólás
    1.447
    Begyűjtött 0 köszönetet
    0 hozzászólásával

    Alapbeállítás re: MYSQL - Ha az adat már megtalálható az adatbázisban

    Hát Geri, ez így nem jó, mert a mysql_query true/resourceID-val vagy false-al tér vissza.
    http://hu.php.net/mysql_query

    Jobb konkrétan rákeresni, hogy benne van-e
    select id from linkek where cim = '$adat'
    majd:
    mysql_num_rows()
    és ha 0-t ad vissza akkor küldhet vissza az "ellenor" trure / false értéket.

    LILI, túrj bele a manualba, olvass át minden adatbázis függvényt, de legalább egyszer nézd meg mielőtt használod.



  4. #4
    li
    li nem elérhető
    mint Trinity li logója
    Csatlakozott
    08-09-18
    Hozzászólás
    321
    Begyűjtött 4 köszönetet
    3 hozzászólásával

    Alapbeállítás re: MYSQL - Ha az adat már megtalálható az adatbázisban

    ok, köszönöm próbálkozom!



  5. #5
    nimda AlBrown logója
    Csatlakozott
    07-06-15
    Hely
    Budapest
    Hozzászólás
    405
    Begyűjtött 10 köszönetet
    7 hozzászólásával

    Alapbeállítás re: MYSQL - Ha az adat már megtalálható az adatbázisban

    tehát a végleges
    PHP kód:
    <?php

    function ellenor($adat){ //nem bkv :)
      
    $vane mysql_fetch_row(mysql_query("select ID from linkek where cim = '".mysql_real_escape_string($adat)."' limit 1"));
      if (
    $vane){
       return 
    true;  //ha van ilyen az adatbazisban
      
    }else{
       return 
    false;   //nincs meg ilyen az adatbazisban
      
    }


    }

    ?>




  6. #6
    Rubyist Geri logója
    Csatlakozott
    07-12-15
    Hely
    \x90
    Hozzászólás
    5.749
    Begyűjtött 1.432 köszönetet
    895 hozzászólásával

    Alapbeállítás re: MYSQL - Ha az adat már megtalálható az adatbázisban

    igazatok van. asszem reggel nem kellene tanacsokat osztogatnom, mert nem vagyok formaban



  7. #7
    Törzsvendég MKarcsi logója
    Csatlakozott
    08-04-04
    Hely
    Budakeszi || Szolnok
    Hozzászólás
    103
    Begyűjtött 0 köszönetet
    0 hozzászólásával

    Alapbeállítás re: MYSQL - Ha az adat már megtalálható az adatbázisban

    Én így használom

    PHP kód:
    $van mysql_result(msql_query("SELECT COUNT(*) FROM linkek WHERE cim = '$adat'"), 0); 
    Én jelenlegi tudásom szerint ez a leggyorsabb módja, hogy lekérdezd van-e ilyen adatod az adatbázisban. Persze pár száz, ezer soros táblánál semmi jelentősége, hogy melyiket használod, mert nem érezni a különbséget.

    Ha meg mindenképpen mysql_num_rows-t akarsz használni akkor dobj bele egy limitet, hogy ne túrja végig az egész táblát azután, hogy megtalálta amit kerestél:
    PHP kód:
    $van2 mysql_num_rows(mysql_query("SELECT id FROM linkek WHERE adat = '$adat' LIMIT 1")) 
    K



  8. #8
    Bölcs
    Csatlakozott
    08-10-05
    Hozzászólás
    1.162
    Begyűjtött 147 köszönetet
    118 hozzászólásával

    Alapbeállítás re: MYSQL - Ha az adat már megtalálható az adatbázisban

    Én tömörebben írnám. Nem kell a szószaporítás.

    Idézet AlBrown eredeti hozzászólása Hozzászólás megtekintése
    tehát a végleges
    PHP kód:
    <?php

    function ellenor($adat){ //nem bkv :)
      
    return mysql_fetch_row(mysql_query("select ID from linkek where cim = '".mysql_real_escape_string($adat)."' limit 1")) !== false;
    }

    ?>




  9. #9
    li
    li nem elérhető
    mint Trinity li logója
    Csatlakozott
    08-09-18
    Hozzászólás
    321
    Begyűjtött 4 köszönetet
    3 hozzászólásával

    Alapbeállítás re: MYSQL - Ha az adat már megtalálható az adatbázisban

    no nálam a fenti példák nem adnak hibát akkor sem ha már létezik az adat

    function cimellenor($cim){ //nem bkv
    $vane = mysql_num_rows(mysql_query("SELECT azonosito FROM linkek WHERE cim = '$cim' LIMIT 1"));
    if ($vane){
    return true; //ha van ilyen az adatbazisban
    }else{
    return false; //nincs meg ilyen az adatbazisban
    }

    }
    ez meg mindenre hibát ad:

    function cimellenor($cim)
    {
    $result = mysql_query ("SELECT * FROM linkek WHERE cim = '$cim'");
    if (!$result) {
    die(mysql_error());
    }
    }
    ??



  10. #10
    Rubyist Geri logója
    Csatlakozott
    07-12-15
    Hely
    \x90
    Hozzászólás
    5.749
    Begyűjtött 1.432 köszönetet
    895 hozzászólásával

    Alapbeállítás re: MYSQL - Ha az adat már megtalálható az adatbázisban

    PHP kód:
    function cimellenor($cim){ //nem bkv
    $sql mysql_query("SELECT cim FROM linkek WHERE cim = '$cim' LIMIT 1");
    $result mysql_num_rows($sql);
    if (
    $result>0){
    //echo "VAN ILYEN";
    return true//ha van ilyen az adatbazisban
    }else{
    //echo "NINCS ILYEN";
    return false//nincs meg ilyen az adatbazisban
    }


    probald ezzel. a hibat az okozhatta hogy az elnevezesek nalad masok. de gondolom cim nevu oszlop van a tablaban



Oldal: 1 / 3 123 UtolsóUtolsó

A téma címkéi:

Könyvjelzők

Hozzászólás szabályai

  • Új témákat nem hozhatsz létre
  • Válaszokat nem küldhetsz
  • Fájlokat nem csatolhatsz
  • A hozzászólásaidat nem módosíthatod
  •