Как заглянуть в другую таблицу

249
21 декабря 2016, 02:28

Всех приветствую. Есть форма добавления "uslugi" и в ней поле "idOpis" и сейчас у меня при добавлении в таблицу "uslugi" выбирается цифра из поля "idOpis" , а как мне сделать,чтобы выбиралась не цифра, а буквенное обозначение соответствующее этому Id в другой таблице с которой она связана? Т.е. в данном случаи данные брались из поля примечание таблицы "opisanie "

код формы сейчас:

        $connection=mysql_connect("localhost","reklama","reklama") ;
        $db=mysql_select_db(reklama);
        mysql_set_charset("utf8");
        if (!$connection || !$db) { exit(mysql_error());}
        include_once("db1.php"); 
        function names()
        {
            $query="SELECT `idOpis` FROM `uslugi`ORDER BY `uslugi`.`idOpis` ASC";
            $query_res=mysql_query($query);
            $names = array();
            while($row = mysql_fetch_assoc($query_res))
            {
                $names[] = $row;
            }
            return $names;
        }
        $names = names();
        echo "<select name='idOpis'>";
        foreach($names as $item)
        { 
            echo "<option value=' ".$item['idOpis']." '>".$item['idOpis']."        </option>";
        } 
        echo "</select><br/><br/>";
        ?>
        Цена:<br/>
        <input type="text" name="cena"  /><br/><br/>
        <input type="submit" name="add" value="Добавить" />
    </form>
    <?php
    include_once("db1.php");
    if (isset($_POST['add']))  
    {
        $naimenUslugi=strip_tags(trim($_POST['naimenUslugi']))  ;
        $idOpis = $_POST['idOpis'];
        $cena = $_POST['cena'];
        $result = mysql_query("
            INSERT INTO uslugi (naimenUslugi,idOpis,cena)
            VALUES ('{$naimenUslugi}', '{$idOpis}', '{$cena}')  
            ");
        if($result==TRUE){
            echo 'Новость успешно добавлена';
        }
        else    
            echo mysqli_connect_error() .  'Ошибка БД. Обратитесь к администратору' ;
        mysql_close();
    }
    ?>
</body>
</html>
Answer 1

1.Способ это сделать внутри while то есть при каждом выводе делать запрос на другаю таблицу с полученным id.

2.Способ Select внутри select'a :http://www.mysql.ru/docs/man/ANSI_diff_Sub-selects.html

Пример:

SELECT * FROM xxx WHERE xxx = (SELECT xxx FROM xxx WHERE xxx = xxx)
Answer 2
SELECT
    `uslugi`.`idOpis`,
    `opisanie`.`поле описания` 
FROM
    `uslugi` 
JOIN
    `opisanie`
    ON
        `opisanie`.`idOpis` = `uslugi`.`idOpis`
ORDER BY
    `uslugi`.`idOpis` ASC
READ ALSO
php mysql не выполняется 2 запроса подряд

php mysql не выполняется 2 запроса подряд

В php-скрипте идут два запроса:

282
Как создать двумерный массив на основе данных из базы

Как создать двумерный массив на основе данных из базы

ЗдравствуйтеУ меня есть двумерный массив:

311
Mysql: обновление триггером своей же таблицы

Mysql: обновление триггером своей же таблицы

У меня есть таблица с платежами, где помимо суммы платежа хранится баланс человека на момент платежаЯ хотел с помощью триггера mysql сделать...

286