Вызов функции PHP в SQL-запрос - PullRequest
       1

Вызов функции PHP в SQL-запрос

0 голосов
/ 01 августа 2010

У меня есть таблица MySQL с именем "invoice_prod":

id | qte | price | id_tva 

И еще одна таблица с именем "tva":

id_tva | content

Теперь я хочу найти сумму счета-фактуры, поэтому я сделал этот запрос, и он работает.

$sql_mnt = mysql_query("
    SELECT SUM( (qte * price) * ( 1 + (tva / 100))) AS total_un_prod
    FROM invoice_prod 
    WHERE id='$id_invoice'
    ");

У меня есть только одна проблема с этим запросом.«Тва» возвращает «идентификатор тва», а не его содержание.Что я должен извлечь его содержимое из таблицы "tva".

Очевидно, этот запрос возвращает это значение tva: "1", или он должен возвращать "18%", который является содержаниемID tva.

Я попытался создать функцию PHP, которая извлекает содержимое tva из идентификатора и включает его в SQL-запрос следующим образом:

$sql_mnt = mysql_query("
    SELECT SUM(( qte * price) * ( 1 + (" .
    tva_get_by_id(tva) . "/ 100))) AS total_un_prod
    FROM invoice_prod 
    WHRE id='$id_invoice'
    ");

Но это не работает.

Что мне делать?

Большое спасибо за помощь и хорошего дня:)

Ответы [ 2 ]

5 голосов
/ 01 августа 2010

use

$sql_mnt = mysql_query("
         SELECT SUM((`qte`*`price`)*(1+(`content`/100))) AS `total_un_prod`
         FROM `invoice_prod`
         LEFT JOIN `tva` USING (`id_tva`)
         WHERE `id`='".mysql_real_escape_string($id_invoice)."'");

это соединяет две таблицы в mysql, поэтому вы можете напрямую использовать поле content, которое, как я полагаю, содержит процент TVA.

edit отформатировал и обратился также к экранированию id_invoice (я полагаю, что это int, так что приведения будет достаточно, но если нет, это также будет работать)

0 голосов
/ 01 августа 2010

Я не уверен, что правильно понимаю, что вы здесь делаете, но похоже, что вы хотите ВНУТРЕННЕЕ СОЕДИНЕНИЕ в таблице tva, а затем использовать tva.content в своих вычислениях. Это правильно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...