|
|
|
| Честно говоря, я сам не понимаю, что я запрашиваю, и тем более не могу прочесть результат запроса. Это пример типового обращения к базе, которая мне не принадлежит, предоставленный владельцем базы.
Мне кажется, что здесь не один запрос, а три. Разве можно их отсылать все вместе таким образом?
Кроме того, непонятно, какие индексы должны быть в $row.
<?php
$query = "
SET @NUMBER = '1244211212';
SET @LNG_ID = 16; /* 1 - Немецкий язык; 16 - Русский язык */
SELECT DISTINCT
IF (ART_LOOKUP.ARL_KIND IN (3, 4), BRANDS.BRA_BRAND, SUPPLIERS.SUP_BRAND) AS BRAND,
ART_LOOKUP.ARL_SEARCH_NUMBER AS NUMBER,
ART_LOOKUP.ARL_KIND,
ART_LOOKUP.ARL_ART_ID,
DES_TEXTS.TEX_TEXT AS ART_COMPLETE_DES_TEXT
FROM
ART_LOOKUP
LEFT JOIN BRANDS ON BRANDS.BRA_ID = ART_LOOKUP.ARL_BRA_ID
INNER JOIN ARTICLES ON ARTICLES.ART_ID = ART_LOOKUP.ARL_ART_ID
INNER JOIN SUPPLIERS ON SUPPLIERS.SUP_ID = ARTICLES.ART_SUP_ID
INNER JOIN DESIGNATIONS ON DESIGNATIONS.DES_ID = ARTICLES.ART_COMPLETE_DES_ID
INNER JOIN DES_TEXTS ON DES_TEXTS.TEX_ID = DESIGNATIONS.DES_TEX_ID
WHERE
ART_LOOKUP.ARL_SEARCH_NUMBER = @NUMBER AND
ART_LOOKUP.ARL_KIND IN (1, 2, 3, 4) AND
DESIGNATIONS.DES_LNG_ID = @LNG_ID
GROUP BY
BRAND,
NUMBER"
;
//Выполнение SQL-запроса
$result = mysql_query($query);
echo mysql_errno()." 46 : ".mysql_error()."<BR>";
//Обработка и вывод результатов SQL-запроса
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)){
print "\t<tr><td>".$row["NUMBER"]."</td>";
print "<td>".$row["MOD_CDS_TEXT"]."</td>";
print "<td>".$row["MOD_PCON_START"]."</td>";
print "<td>".$row["MOD_PCON_END"]."</td></tr>\n";
}
|
Результат исполнения запроса:
1064 46 : You have an error in your SQL syntax; check the manual that corresponds to your MySQL
server version for the right syntax to use near 'SET @LNG_ID = 16; /* 1 - Немецкий язык; 16 - Русский язык' at line 3
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in W:\home\alave\www\detal.php on line 51
Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in W:\home\alave\www\detal.php on line 58
|
| |
|
|
|
|
|
|
|
для: Владимир55
(14.06.2012 в 12:23)
| | mysql_query() не поддерживает выполнение нескольких запросов за один вызов.
Это умеет mysqli::multi_query(). Либо можно разделить запрос и выполнить запросы последовательно. | |
|
|
|
|
|
|
|
для: Саня
(14.06.2012 в 15:24)
| | Я тоже полагаю, что все три запроса правильнее посылать по очереди.
С индексами $row удалось разобраться. | |
|
|
|
|
|
|
|
для: Владимир55
(14.06.2012 в 15:46)
| | Можно поинтересоваться, где Вы тут увидели три запроса? | |
|
|
|
|
|
|
|
для: bishake
(15.06.2012 в 14:00)
| | То, что они все находятся в одной строковой переменной, не означает что запрос один :) | |
|
|
|
|
|
|
|
для: bishake
(15.06.2012 в 14:00)
| | Можно поинтересоваться, где Вы тут увидели три запроса?
Раз:
SET @NUMBER = '1244211212';
|
Два:
SET @LNG_ID = 16; /* 1 - Немецкий язык; 16 - Русский язык */
|
Три:
| |
|
|
|