[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не правильно выводятся данные на экран
Гость_Mila
Всем здрасте!
Это опять я со своими глупыми вопросами (не сердчайте на меня)
Делаю вывод на экран из Mysql табличка ресуется но отображаются лишние строки... вот пример:

<?php

$link = mysql_connect("localhost", "root","")or die("Could not connect");
mysql_select_db("order_zpp",$link) or die("Could not select database");

$result = mysql_query("SELECT
dop.dop_name,
dop.dop_kolich,
dop.dop_cena_bnds,
dop.dop_sum_bnds,
dop.dop_sum_nds,
dop.pdop_cena_bnds,
dop.pdop_sum_bnds,
dop.pdop_sum_nds,
tovar.tovar_name,
tovar.tov_kolich,
tovar.tov_cena_bnds,
tovar.tov_sum_bnds,
tovar.tov_sum_nds,
tovar.ptov_cena_bnds,
tovar.ptov_sum_bnds,
tovar.ptov_sum_nds,
sost.sost_name,
sost.sost_kolich,
sost.sost_cena_bnds,
sost.sost_sum_bnds,
sost.sost_sum_nds,
sost.psost_cena_bnds,
sost.psost_sum_bnds,
sost.psost_sum_nds
FROM
tovar,dop,sost
WHERE
tovar.id_tovar = dop.id_tovar AND
tovar.id_tovar = sost.id_tovar
AND `tovar`.`id_tovar`=44"
);
//узнаем, сколько в массиве $result строчек
$n=mysql_num_rows($result);

//вывод на страничку в виде таблицы
echo "<table border=1>
<tr><th>Наименование</th><th>Кол-во</th><th>Цена без НДС</th><th>Сумма без НДС</th><th>Сумма с НДС</th><th>Цена продажи без НДС</th><th>Сумма продажи без НДС</th><th>Сумма продажи с НДС</th></tr>"
;

//вывод построчно
for($a=0;$a<$n;$a++)
echo
"<tr><td>",mysql_result($result,$a,tovar_name),
"</td><td>",mysql_result($result,$a,tov_kolich),
"</td><td>",mysql_result($result,$a,tov_cena_bnds),
"</td><td>",mysql_result($result,$a,tov_sum_bnds),
"</td><td>",mysql_result($result,$a,tov_sum_nds),
"</td><td>",mysql_result($result,$a,ptov_cena_bnds),
"</td><td>",mysql_result($result,$a,ptov_sum_bnds),
"</td><td>",mysql_result($result,$a,ptov_sum_nds),
"</td></tr>";
// Сост.изделия
for($i=0;$i<$n;$i++)
echo
"<tr><td>",mysql_result($result,$i,sost_name),
"</td><td>",mysql_result($result,$i,sost_kolich),
"</td><td>",mysql_result($result,$i,sost_cena_bnds),
"</td><td>",mysql_result($result,$i,sost_sum_bnds),
"</td><td>",mysql_result($result,$i,sost_sum_nds),
"</td><td>",mysql_result($result,$i,psost_cena_bnds),
"</td><td>",mysql_result($result,$i,psost_sum_bnds),
"</td><td>",mysql_result($result,$i,psost_sum_nds),
"</td></tr>";
// Доп. оборудование
for($b=0;$b<$n;$b++)
echo
"<tr><td>",mysql_result($result,$b,dop_name),
"</td><td>",mysql_result($result,$b,dop_kolich),
"</td><td>",mysql_result($result,$b,dop_cena_bnds),
"</td><td>",mysql_result($result,$b,dop_sum_bnds),
"</td><td>",mysql_result($result,$b,dop_sum_nds),
"</td><td>",mysql_result($result,$b,pdop_cena_bnds),
"</td><td>",mysql_result($result,$b,pdop_sum_bnds),
"</td><td>",mysql_result($result,$b,pdop_sum_nds),
"</td></tr>";
//

echo "</table>";

/* Освобождаем память от результата */
mysql_free_result($result);

?>

В табл. товар одна запись, в таблице сост.изделия 2, в доп.оборудовании 1...
И вот в чем беда... на экран выводится в товаре 2 записи(дубль первой), из табл. состав вывод правильный двух записей и в доп.оборудовании тоже 2 записи(дубль первой).... что не так?



Спустя 52 минуты, 49 секунд (9.06.2010 - 17:34) tomash написал(а):
Попробуйте в конце запроса добавить, вот это -

GROUP BY tovar.tovar_name


Спустя 15 часов, 2 минуты, 38 секунд (10.06.2010 - 08:36) Гость_Mila написал(а):
Цитата (tomash @ 9.06.2010 - 14:34)
Попробуйте в конце запроса добавить, вот это -

GROUP BY tovar.tovar_name

Выводит:
из табл товар 1-ну запись - правильно
из табл состав 1-ну запись - НЕ правильно! (должен быть вывод 2-х записей)
из табл доп.оборуд -1ну запись - правильно

Спустя 5 минут, 46 секунд (10.06.2010 - 08:42) Basili4 написал(а):
Привет проблему я сразу и не подскжу как решить но могу подсказать как не надо писать

Вот это не куда годится


//узнаем, сколько в массиве $result строчек
$n=mysql_num_rows($result);

//вывод на страничку в виде таблицы
echo "<table border=1>
<tr><th>Наименование</th><th>Кол-во</th><th>Цена без НДС</th><th>Сумма без НДС</th><th>Сумма с НДС</th><th>Цена продажи без НДС</th><th>Сумма продажи без НДС</th><th>Сумма продажи с НДС</th></tr>"
;

//вывод построчно
for($a=0;$a<$n;$a++)
echo
"<tr><td>",mysql_result($result,$a,tovar_name),
"</td><td>",mysql_result($result,$a,tov_kolich),
"</td><td>",mysql_result($result,$a,tov_cena_bnds),
"</td><td>",mysql_result($result,$a,tov_sum_bnds),
"</td><td>",mysql_result($result,$a,tov_sum_nds),
"</td><td>",mysql_result($result,$a,ptov_cena_bnds),
"</td><td>",mysql_result($result,$a,ptov_sum_bnds),
"</td><td>",mysql_result($result,$a,ptov_sum_nds),
"</td></tr>";
// Сост.изделия
for($i=0;$i<$n;$i++)
echo
"<tr><td>",mysql_result($result,$i,sost_name),
"</td><td>",mysql_result($result,$i,sost_kolich),
"</td><td>",mysql_result($result,$i,sost_cena_bnds),
"</td><td>",mysql_result($result,$i,sost_sum_bnds),
"</td><td>",mysql_result($result,$i,sost_sum_nds),
"</td><td>",mysql_result($result,$i,psost_cena_bnds),
"</td><td>",mysql_result($result,$i,psost_sum_bnds),
"</td><td>",mysql_result($result,$i,psost_sum_nds),
"</td></tr>";
// Доп. оборудование
for($b=0;$b<$n;$b++)
echo
"<tr><td>",mysql_result($result,$b,dop_name),
"</td><td>",mysql_result($result,$b,dop_kolich),
"</td><td>",mysql_result($result,$b,dop_cena_bnds),
"</td><td>",mysql_result($result,$b,dop_sum_bnds),
"</td><td>",mysql_result($result,$b,dop_sum_nds),
"</td><td>",mysql_result($result,$b,pdop_cena_bnds),
"</td><td>",mysql_result($result,$b,pdop_sum_bnds),
"</td><td>",mysql_result($result,$b,pdop_sum_nds),
"</td></tr>";
//

echo "</table>";



Спустя 8 минут, 56 секунд (10.06.2010 - 08:51) Basili4 написал(а):

echo "<table border=1>
<tr><th>Наименование</th><th>Кол-во</th><th>Цена без НДС</th><th>Сумма без НДС</th><th>Сумма с НДС</th><th>Цена продажи без НДС</th><th>Сумма продажи без НДС</th><th>Сумма продажи с НДС</th></tr>"
;
while($row=mysql_fetch_assoc($result))
{
echo
"<tr><td>",$row['tovar_name'],
"</td><td>",$row['tov_kolich'],
"</td><td>",$row['tov_cena_bnds'],
"</td><td>",$row['tov_sum_bnds'],
"</td><td>",$row['tov_sum_nds'],
"</td><td>",$row['ptov_cena_bnds'],
"</td><td>",$row['ptov_sum_bnds'],
"</td><td>",$row['ptov_sum_nds'],
"</td></tr>";
echo "<tr><td>",$row['sost_name'],
"</td><td>",$row['sost_kolich'],
"</td><td>",$row['sost_cena_bnds'],
"</td><td>",$row['sost_sum_bnds'],
"</td><td>",$row['sost_sum_nds'],
"</td><td>",$row['psost_cena_bnds'],
"</td><td>",$row['psost_sum_bnds'],
"</td><td>",$row['psost_sum_nds'],
"</td></tr>";
echo
"<tr><td>",$row['dop_name'],
"</td><td>",$row['dop_kolich'],
"</td><td>",$row['dop_cena_bnds'],
"</td><td>",$row['dop_sum_bnds'],
"</td><td>",$row['dop_sum_nds'],
"</td><td>",$row['pdop_cena_bnds'],
"</td><td>",$row['pdop_sum_bnds'],
"</td><td>",$row['pdop_sum_nds'],
"</td></tr>";
}
echo "</table>";

Спустя 6 минут, 55 секунд (10.06.2010 - 08:58) Гость_Mila написал(а):
Спасибо за подсказочу по реализации вывода в табличку .... но результат один и тотже (что мой вариант, что Ваш)

Спустя 24 минуты, 32 секунды (10.06.2010 - 09:23) justIAM написал(а):
Для начала скопируй SELECT в консоль БД, если выведет то что нужно, бум дальше искать траблу. Если нет --- проверяй запрос


Спустя 1 час, 7 секунд (10.06.2010 - 10:23) Гость_Mila написал(а):
Цитата (justIAM @ 10.06.2010 - 06:23)
Для начала скопируй SELECT в консоль БД, если выведет то что нужно, бум дальше искать траблу. Если нет --- проверяй запрос

Да... Вы правы что-то с запросом (

Спустя 19 минут, 24 секунды (10.06.2010 - 10:42) tomash написал(а):
Покажите как должно вывести! Так как вы хотите, мне кажеться запрос нужно разделить на два!
Или сделать UNION

Спустя 1 день, 3 часа, 5 минут, 41 секунда (11.06.2010 - 13:48) Гость_Mila написал(а):
Цитата (tomash @ 10.06.2010 - 07:42)
Покажите как должно вывести! Так как вы хотите, мне кажеться запрос нужно разделить на два!
Или сделать UNION

мне нужен примерно вот такой результат... а как его получить .... пока не знаю

-----------------------------------------------------------
|наименование|количество|Цена|Сумма1|Сумма2|
-----------------------------------------------------------
Изделие | Утюг | 1 | 50 | 50 | 75 |
-----------------------------------------------------------
Состав изделия | Провод | 2 | 50 | 100 | 120 |
| Разетка | 2 | 10 | 20 | 20.40 |
-----------------------------------------------------------
Доп.оборудование| стол | 1 | 50 | 50 | 75 |
-----------------------------------------------------------

А выводит сейчас вот так:


-----------------------------------------------------------
|наименование|количество|Цена|Сумма1|Сумма2|
-----------------------------------------------------------
| Утюг | 1 | 50 | 50 | 75 |
| Утюг | 1 | 50 | 50 | 75 |
| Провод | 2 | 50 | 100 | 120 |
| Разетка | 2 | 10 | 20 | 20.40 |
| стол | 1 | 50 | 50 | 75 |
| стол | 1 | 50 | 50 | 75 |
-----------------------------------------------------------

И еще один глупый вопрос... может это возможно сделать в виде отчета (папример как в 1С форма счета)

Спустя 34 минуты, 43 секунды (11.06.2010 - 14:23) tomash написал(а):
Тогда двумя запросами!

Спустя 8 минут, 52 секунды (11.06.2010 - 14:31) Гость_Mila написал(а):
а прмер можно? я не совсем поняла, как это 2-мя запросами сделать

Спустя 13 минут, 30 секунд (11.06.2010 - 14:45) tomash написал(а):
$res_tov = mysql_query("SELECT t.tovar_name,  d.dop_name 
FROM tovar AS t, dop AS d
WHERE t.id_tovar = d.id_tovar AND t.id_tovar = 44"
);
$res_sost = mysql_query("SELECT sost_name FROM sost
WHERE id_tovar = 44"
);

while ($row_tovar = mysql_fetch_assoc($res_tov))
{
echo $row_tovar['tovar_name'];
while ($row_sost = mysql_fetch_assoc($res_sost))
{
echo $row_sost['sost_name'];
}
echo $row_tovar['dop_name'];
}

Спустя 32 минуты, 22 секунды (11.06.2010 - 15:17) Гость_Mila написал(а):
Ой... СПАСИБО Вам огроменное! Все выводит, как нужно!!!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.