Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Duplikuje se mi jméno tabulky při mysql_query

Aktivity
Avatar
iceman980
Člen
Avatar
iceman980:4.8.2016 0:54
<?php
    $dbHost = 'localhost';
    $dbUsername = 'root';
    $dbPassword = '';
    $connect = mysqli_connect($dbHost, $dbUsername, $dbPassword);
    $dbName = 'mods';
    $output = '';

    header('Content-Type: text/html; charset=UTF-8');
    mysqli_connect($dbHost, $dbUsername, $dbPassword) or die("Nemůžeme návázat spojení se serverem!");
    mysqli_select_db($connect, $dbName) or die("Požadovaná databáze nebyla nalezena!");

    if (isset($_POST['search'])) {
        $searchq = $_POST['search'];
        $searchq = preg_replace("#[^0-9a-z]#i", "", $searchq);

        $query = mysqli_query($connect, "SELECT name, type, description FROM mods WHERE name LIKE '%" . $searchq . "%' OR type LIKE '%" . $searchq  ."%'");

        if (!$query) {
            die(mysqli_error($connect));
        }

        $count = mysqli_num_rows($query) or die("Nefunguje vyhledávání!");
        if ($count == 0) {
            $output = 'Nemohli jsme nálezt požadovanou položku!';
        } else {
            while ($row = mysql_fetch_array($query)) {
                $name = $row['name'];
                $type = $row['type'];
                $description = $row['description'];

                $output .= '<div>'.$name.' '.$type.' '.$description.'.</div>';
            }
        }
    }
?>

A vyhodí mi to:
Table 'mods.mods' doesn't exist

Mohli byste mi prosím pomoci jak mám upravit kód ? Popřípadě mi ho vylepšit ? :)
Děkuji moc

 
Odpovědět
4.8.2016 0:54
Avatar
iceman980
Člen
Avatar
iceman980:4.8.2016 0:59

*Databáze, ne tabulky ... promiňte za chybu

 
Nahoru Odpovědět
4.8.2016 0:59
Avatar
Ondřej Štorc
Tvůrce
Avatar
Odpovídá na iceman980
Ondřej Štorc:4.8.2016 4:16

Bych si tipnul ze ten mods před tečkou je název Db... Každopádně si zkontroluj jestli to mas napsaný správně a taky bych i doporučil přejít na PDO, který není zastaralý jako mysqli_* funkce. Víc info o PDO a proč je na nej lepší přejít najdeš v zdejší sekci o PHP

P.S: všiml jsem ze tam mas taky neo šetrnou SQL injection. Což je jedna z věci která se ti při správném použití PDO nestane

Editováno 4.8.2016 4:18
Nahoru Odpovědět
4.8.2016 4:16
Život je příliš krátký na to, abychom bezpečně odebírali USB z počítače..
Avatar
Ondřej Štorc
Tvůrce
Avatar
Odpovídá na Ondřej Štorc
Ondřej Štorc:4.8.2016 4:21

P.S.S: Tak jsem se na to koukl ještě jednou a asi to mas ošetřeny tím regexem, ale byt tebou tak bych na to nespoléhal a přešel na PDO i tak...

Nahoru Odpovědět
4.8.2016 4:21
Život je příliš krátký na to, abychom bezpečně odebírali USB z počítače..
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.