Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Вывод данных из БД

Сообщения:  [1-7] 

 
 автор: Ученик   (23.03.2006 в 16:11)   письмо автору
 
   для: Ученик   (23.03.2006 в 15:31)
 

В два запроса получилось вот так

<?
require_once "../../config.php";

if(!
$_GET[id]) $id=6;
else 
$id=$_GET[id];

$sql="SELECT catalog_charater_name.name_char
FROM catalog_production,
 catalog_charater_name
WHERE catalog_charater_name.id_char = catalog_production.id_charater
 AND catalog_production.id_name=
$id
 GROUP BY catalog_production.id_charater"
;

    
$result=mysql_query($sql);
    echo 
"<table>
    <tr>"
;
    while(
$r=mysql_fetch_array($result)){ 
    echo 
"<td>$r[name_char]</td>\n";
    }
    echo 
"</tr>";
    
$num_cols=mysql_num_rows($result);


$sql="SELECT
 catalog_production.text
FROM
 catalog_production,
 catalog_charater_name,
 catalog_prod_name 
WHERE 
 catalog_production.id_name=catalog_prod_name.id
 AND catalog_charater_name.id_char=catalog_production.id_charater
 AND catalog_production.id_name=
$id
 ORDER BY  catalog_production.id_num"
;

$result=mysql_query($sql);

    
$i=0;
    while(++
$i<=mysql_num_rows($result))
    {
       
$r=mysql_fetch_array($result);
       echo 
"<td>$r[text]</td>";
        if(
$i%$num_cols==0) echo "</tr><tr>";
       }

echo 
"</tr></table>";
?>

   
 
 автор: Ученик   (23.03.2006 в 15:31)   письмо автору
 
   для: Artemy   (23.03.2006 в 15:18)
 

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

Артикул    SM-G (с бортиком)        
Размер, мм    6х40        
от 3000$    11,73        
до 3000$    12,90        
до 500$    14,08        
Артикул    SM-G (с бортиком) Н.Ф.        
Размер, мм    6х40        
от 3000$    10,53        
до 3000$    11,58        
до 500$    12,64

А мне нужно чтобы он выводил вот так. Заголовок ячеек у всех одинаковый, а потом выводяться характеристики, но смотрю что в 1запрос уже не получитсья :(

Артикул    Размер, мм    от 3000$   до 3000$   до 500$
SM-G (с бортиком) 6х40__11,73__12,90__    14,08
SM-G (с бортиком) Н.Ф.6х40__10,53__11,58__12,64

   
 
 автор: Artemy   (23.03.2006 в 15:18)   письмо автору
 
   для: Ученик   (23.03.2006 в 15:01)
 

Неуловил вопрос! В чем проблема?

   
 
 автор: Ученик   (23.03.2006 в 15:01)   письмо автору
 
   для: Artemy   (23.03.2006 в 14:33)
 

Немного переделал запрос, теперь он выводит подряд характеристики изделий

$sql="SELECT 
catalog_charater_name.name_char, 
catalog_production.id_charater, 
catalog_production.text, 
FROM 
catalog_production, 
catalog_charater_name, 
catalog_prod_name 
WHERE 
catalog_production.id_name=catalog_prod_name.id 
AND catalog_charater_name.id_char=catalog_production.id_charater 
AND catalog_production.id_name=6
 ORDER BY catalog_production.id_num"; 

   
 
 автор: Ученик   (23.03.2006 в 14:43)   письмо автору
 
   для: Artemy   (23.03.2006 в 14:33)
 

Спасибо про

while

запомню.

Вот смотрите у меня в таблице catalog_production хранятся идентификаторы характеристик изделий

id_charater
, идентификаторы каталога которому это изделие соответствует

id_name

Идентификатор самого изделия

id_num

И сама характеристика

text

Если использовать ваш вариант, то все будет выводитсья не совсем так как нужно. Вот смотрите

id_num

здесь только 1 и 2, тоесть у меня 2 изделия. А они выводяться все подряд


И там наверно вот-так...

   echo "<tr><td>".$r['name_char']."</td><td>".$r['text']."</td><td>".$r['id_num']."</tr>"; 

   
 
 автор: Artemy   (23.03.2006 в 14:33)   письмо автору
 
   для: Ученик   (23.03.2006 в 13:37)
 

Ну для начала, лучше выводить так
<?
 
while($r=mysql_fetch_array($result)){ 
   echo 
$r['name_char'].$r['text'].$r['id_num']."<br>"
 } 
?>

Формируем таблицу
<?PHP
$sql
="SELECT 
catalog_charater_name.name_char, 
catalog_production.id_charater, 
catalog_production.text, 
catalog_production.id_num 
FROM 
catalog_production, 
catalog_charater_name, 
catalog_prod_name 
WHERE 
catalog_production.id_name=catalog_prod_name.id 
AND catalog_charater_name.id_char=catalog_production.id_charater 
AND catalog_production.id_name=
$id"

$result=mysql_query($sql);
 echo 
'<table border="0">';
 while(
$r=mysql_fetch_array($result)){ 
   echo 
"<td>".$r['name_char']."</td><td>".$r['text']."</td><td>".$r['id_num']."</tr>"
 }
 echo 
'</table>'
?>

   
 
 автор: Ученик   (23.03.2006 в 13:37)   письмо автору
4.5 Кб
 
 

Вчера вы мне помогли со структурой в БД. Может теперь поможете с выводом, этих данных в хмтл, таблицу? Дамп таблиц в аттаче. Вот до чего я дошел сам.

<?
require_once "../../config.php";

if(!
$_GET[id]) $id=6//Сейчас только по этой категории есть данные в БД
else $id=$_GET[id];


$sql="SELECT
 catalog_charater_name.name_char,
 catalog_production.id_charater,
 catalog_production.text,
 catalog_production.id_num
FROM
 catalog_production,
 catalog_charater_name,
 catalog_prod_name 
WHERE 
 catalog_production.id_name=catalog_prod_name.id
 AND catalog_charater_name.id_char=catalog_production.id_charater
 AND catalog_production.id_name=
$id";

$result=mysql_query($sql);

    
$i=0;
    while(++
$i<=mysql_num_rows($result))
    {
       
$r=mysql_fetch_array($result);
       echo 
"$r[name_char] $r[text] $r[id_num]<br>";
       }

?>


Но у меня данные выводяться все что соответствуют этой категории и совсем не отформатированые. Можно было бы использовать цикл, но хочетсья уложиться в один запрос...

   

Сообщения:  [1-7] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования