SQL два выбирает несколько и два соединения - PullRequest
0 голосов
/ 19 сентября 2019

У меня есть 3 таблицы

tblmodel
id  modelname
1   model1
2   model2
3   model3
4   model4
5   model5

tblbrand
id  brandname
1   brand1
2   brand2
3   brand3
4   brand4
5   brand5

tblvehicles (vehiclemodel and vehiclebrand are "IDs" from tblbrand and tblmodel)
id  vehiclemodel  vehiclebrand
1   1             4
2   3             3
3   5             2
4   5             4
5   2             2 

Я хочу выбрать идентификатор бренда и название бренда AS "bid", а затем присоединиться к tblbrand по адресу tblbrand (id) = tblvehicle (vehiclelebrand)

AND

идентификатор модели и название модели AS "mid", затем присоединитесь к tblmodel по tblmodel (id) = tblvehicle (vehiclemodel)

WHERE tblvehicles (id) =: id

вот мойКод SQL:

"
SELECT v.*
     , m.ModelName
     , m.id as mid
     , b.BrandName
     , b.id as bid 
  from tblvehicles v
  join tblmodel m
   on m.id = v.VehicleModel 
  join tblbrand b
   on b.id = v.VehiclesBrand 
 where v.id=:id
";

У меня есть два выпадающих меню / выбор (один - модель, а другой - бренд), но всякий раз, когда я пытаюсь их редактировать (например: модель1 -> модель4 или марка3 ->brand2), они перезапишут друг друга, например, если я поменяю model1 -> model4, мой brand3 тоже станет -> model4.

Вот мой PHP / HTML-код для выбора / выпадающего меню

МОДЕЛЬ:

<select class="selectpicker" name="modelname" required>
    <option value="<?php echo htmlentities($result->mid);?>"><?php echo htmlentities($mdname=$result->ModelName); ?> </option>
        <?php 
            $ret="select id, ModelName from tblmodel";
            $query= $dbh -> prepare($ret);
            $query-> execute();
            $resultss = $query -> fetchAll(PDO::FETCH_OBJ);
                if($query -> rowCount() > 0){
                    foreach($resultss as $results){
                if($results->ModelName==$mdname){
                    continue;
            } else{
        ?>
    <option value="<?php echo htmlentities($results->id);?>"><?php echo htmlentities($results->ModelName);?></option>
<?php }}} ?>
</select>

BRAND

    <select class="selectpicker" name="brandname" required>
        <option value="<?php echo htmlentities($result->bid);?>"><?php echo htmlentities($bdname=$result->BrandName); ?> </option>
            <?php 
                $ret="select id, BrandName from tblbrand";
                $query= $dbh -> prepare($ret);
                $query-> execute();
                $resultss = $query -> fetchAll(PDO::FETCH_OBJ);
                    if($query -> rowCount() > 0){
                        foreach($resultss as $results){
                    if($results->BrandName==$bdname){
                        continue;
                } else{
            ?>
        <option value="<?php echo htmlentities($results->id);?>"><?php echo htmlentities($results->BrandName);?></option>
    <?php }}} ?>
    </select>

Может кто-нибудь помочь мне, что не так с кодом SQL, который вызывает его перезапись?Или сама структура неверна?

> ОБНОВЛЕНИЕ: На самом деле это работает на стороне сервера.Когда я проверяю базу данных, она получает правильный идентификатор, который я выбираю для каждого в BrandName и ModelName.но когда я возвращаю его обратно клиентской стороне, данные, которые появляются в «Выбрать», неверны.имя модели становится brand1.Он получает идентификатор бренда.

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