Как получить конкретные данные из таблицы1, используйте их в таблице2 - PullRequest
0 голосов
/ 24 июня 2019

Я пытаюсь получить конкретные строки в таблице 1 (stellingen). Я хочу сохранить эти строки, чтобы указать интересующие их строки для второй таблицы (стеллинг). Допустим, в таблице 1 есть 5 строк, в которых идентификатор стеллинга соответствует REGIOID = 5. Эти идентификаторы из идентификатора стеллинга, которые я хочу использовать для извлечения данных из второй таблицы. посмотрите код, чтобы увидеть, что я пытался. Мне не удается найти способ, чтобы и это произошло.

Так что, может быть, слишком ясно, потому что люди всегда говорят, что я не ясно: Есть две таблицы. у них обоих есть соответствующий столбец. Я пытаюсь сказать второй таблице, что мне нужны данные, но только если они соответствуют данным первой таблицы. Как ветвь дерева. Затем я хочу вывести некоторые данные из второй таблицы.

Я пробовал что-то подобное раньше:

SELECT 
  * 
FROM 
  table2 
LEFT JOIN 
  table1 ON 
    table1.ID = table2.table1_id 

Я пытался создать цикл while для получения данных до (после первого оператора if и последнего + = для переменной $ amountofstellinge):

    $amountOfStellinge = 0;
    while ($amountOfStellinge<5){
        mysqli_data_seek($result, $amountOfStellinge);

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

if($result = mysqli_query($con, "SELECT * FROM stellingen WHERE REGIOID=1;")) {

        $row = mysqli_fetch_assoc($result);

        $stellingid= $row["Stelling_ID"];
        //checking.. and the output is obviously not what I want in my next query
        printf($stellingid);

    //defining the variable
        $Timer=0;

$sql1="SELECT * FROM stelling WHERE stelling_iD=$stellingid ORDER BY Timer DESC;";
$records2 =  mysqli_query($con, $sql1);
$recordscheck = mysqli_num_rows($records2);
//max 5 data
if ($recordscheck < 5){
    while ($stelling = mysqli_fetch_assoc($records2)){
        //At the end, i would like to only have the data that is most recent
        $Timer = date('d F', strtotime($stelling['Timer']));



        echo "<p><div style='color:#ED0887'>".$Timer.":</div><a target = '_blank' style='text-decoration:none' href='".$stelling['Source']."'>".$stelling['Title']."</a></p>";

    }}
        $recordscheck+=1;   } // this is totally wrong

enter image description here

EDIT: Я пробовал это, @ noobjs

$Timer=0;

$sql1="SELECT 
* 
FROM 
stelling 
LEFT JOIN 
stellingen 
ON 
stelling.ID = stellingen.stelling_id 
WHERE 
stellingen.REGIOID=1
ORDER BY stelling.Timer  LIMIT 5 DESC ;";

$records2 =  mysqli_query($con, $sql1);
printf($records2);
    while ($stelling = mysqli_fetch_assoc($records2)){
        $Timer = date('d F', strtotime($stelling['Timer']));



        echo "<p><div style='color:#ED0887'>".$Timer.":</div><a target = '_blank' style='text-decoration:none' href='".$stelling['Source']."'>".$stelling['Title']."</a></p>";
       }

с этой ошибкой:

Предупреждение: mysqli_fetch_assoc () ожидает, что параметр 1 будет mysqli_result, логическое значение задано в

РЕДАКТИРОВАТЬ для уточнения Вот некоторые примеры данных sample data

Ожидаемые результаты: каждая страница использует данные из другого REGIOID. Я ожидаю, что на странице будут отображаться данные из таблицы стеллинга (Таблица 1). В соответствии с REGIOID (Таблица 2)

1 Ответ

1 голос
/ 24 июня 2019

если я правильно понял:

SELECT 
  * 
FROM 
  stelling 
LEFT JOIN 
  stellingen 
ON 
  stelling.stellingID = stellingen.stelling_id 
WHERE 
  stellingen.REGIOID=1
ORDER BY stelling.Timer  DESC LIMIT 5 ;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...