2015-06-29 3 views
1

Мне нужно отобразить текст в строке, исходя из значения из другой таблицы, я объясню ... шаг за шагом, чтобы все было очень CLEAR.mysqli данные отображения на основе значения строки ID

таблица называется «ссылки» есть строка под названием «title_id»

Эта строка «title_id» из «ссылки», имеют одинаковое значение в другой таблице под названием «заголовки» в строке с именем «ID».

В таблице «заголовки» есть еще одна строка называется «название» - и СДП Wath мне нужно отобразить таким образом ...

A HREF = .... /> Таблица связывает ряд title_id = к TABLE title rows id -> DISPLAY ЗДЕСЬ Название заголовка таблицы заголовка (на основе строки title_id из ссылок таблицы) </a ...

Надеюсь, вы можете понять, результат должен быть (a href = ...> TEXT MOVIE TITLE </a>)

Вот базовый код, wath Мне нужно изменить (я прокомментировал изменения детали wath):

<?php 
    $servername = "localhost"; 
    $username = "username"; 
    $password = "password"; 
    $dbname = "dbname"; 

    // Create connection 
    $conn = new mysqli($servername, $username, $password, $dbname); 
    // Check connection 
    if ($conn->connect_error) { 
     die("Connection failed: " . $conn->connect_error); 
    } 

    $sql = "SELECT id, label, title_id, season, episode, approved FROM links WHERE approved = 1 order by id desc LIMIT 30 OFFSET 1"; 
    $result = $last_id = $conn->query($sql); 


    if ($result->num_rows > 0) 
    { 
     echo "<table><tr><th>ID</th><th>Audio</th><th>URL</th><th>Temporada</th><th>Episodio</th><th>Aprobado</th></tr>"; 
     // output data of each row 
     while($row = $result->fetch_assoc()) { 
      echo "<tr><td>".$row["id"]."</td><td>".$row["label"]."</td>"; 
      echo "<td>"; 
      if (empty($row['episode'])) { 
     echo "<a href="; 
     echo '/peliculas-online/'.$row["title_id"]; 
     echo ">HERE MUST HAVE THE VALUE FROM TABLE titles -> row title - based on $row["title_id"] </a>"; 
// ------------------------- 
     } 
     else { 
     echo "<a href="; 
     echo '/series-online/'.$row['title_id'].'/seasons/'.$row['season'].'/episodes/'.$row["episode"]; 
     echo ">HERE MUST HAVE THE VALUE FROM TABLE titles -> row title - based on $row["title_id"] </a>"; 
// ----------------------------------- 
      } 
      echo "</td>"; 
      echo "<td>".$row["season"]."</td><td>".$row["episode"]."</td><td>".$row["approved"]."</td></tr>"; 


     } 
     echo "</table>"; 
    } else { 
     echo "0 results"; 
    } 
    $conn->close(); 
    ?> 

ответ

1

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

SELECT l.id, l.label, l.title_id, t.title, l.season, l.episode, l.approved 
FROM links l 
JOIN titles t 
ON l.title_id = t.id 
WHERE approved = 1 
ORDER by id DESC 
LIMIT 30 OFFSET 1 

Тогда вы можете назвать ваши переменные во многом таким же образом, вы делали раньше; тот же запрос будет иметь row['title']

Узнайте больше о MySQL Joins

Чтобы получить это в сценарии, просто замените эту строку:

echo ">HERE MUST HAVE THE VALUE FROM TABLE titles -> row title - based on $row["title_id"] </a>"; 

с этим:

echo '>'.$row['title'].'</a>'; 
Смежные вопросы