0

受け取った仕様テーブルの値に応じて、テーブルのすべての「車」を「仕様」のリストに表示しようとしています。

テーブル:

車:

dcar: 1 / width:30 / length:10 / weight:300
idcar: 2 / width:20 / length:12 / weight:210
idcar: 3 / width:20 / length:21 / weight:230
idcar: 4 / width:40 / length:11 / weight:210

スペック表:

idspec:1 spec:width
idspec:2 spec:weight
idspec:3 spec:length

出力は次のようになります。

Width
car-1 width-30
car-2 width-20
car-3 width-20
car-4 width-40


Weight
car-1 weight-300
car-2 weight-210
car-3 weight-230
car-4 weight-210

Length
car-1 length-10
car-2 length-12
car-3 length-21
car-4 length-11

私の質問は大丈夫ですか?しばらくの間、または foreach (php) で使用したい

$resultjoin = mysqli_query($connecDB,"SELECT specs.idspec, specs.spec, cars.idcar FROM (specs) LEFT JOIN cars ON cars.idcar = specs.idspec");

ありがとうございました!

4

6 に答える 6

2

テーブルのピボットを解除しようとしているようです。もしそうなら、あなたのクエリはかなりずれています。

SELECT c.idcar, 'width' as which, width as value
FROM cars c
union all
SELECT c.idcar, 'length' as which, length as value
FROM cars c
union all
SELECT c.idcar, 'weight' as which, weight as value
FROM cars c
于 2013-07-04T14:48:58.847 に答える
1

これを試して:

SELECT
    CONCAT('car-',idcar),
    CONCAT('width-',width)
FROM
    cars
UNION
SELECT
    CONCAT('car-',idcar),
    CONCAT('weight-',weight)
FROM
    cars
UNION
SELECT
    CONCAT('car-',idcar),
    CONCAT('length-',length)
FROM
    cars
于 2013-07-04T14:48:09.827 に答える
0

終わり!

$resultlast = mysqli_query($connecDB,"select * from cars order by (case id when $idcar then 0 else id end), name asc");

$rows = array();
    while($row = mysqli_fetch_array($resultlast)){
        $rows[] = $row;
    }

    while($rowspec = mysqli_fetch_array($resultspec)){
        echo '<div id="'.$rowspec["name"].'">';

            foreach($rows as $row){ 
                $car = stripslashes($row['name']);
                echo '<div id="'.$rowspec["name"].'">' . $car . '</div>';
            }

        echo '</div>';
    }
于 2013-07-04T17:37:58.050 に答える
0

'` で置き換えてください ! それを試してみてください !

于 2013-07-04T14:48:50.943 に答える