Php две строки в одной переменной - PullRequest
0 голосов
/ 12 октября 2018

Здравствуйте, у меня есть две строки с датой, которую они заказали, и мне нужно получить из двух строк [12] [13] эхо каждой отдельной строки эха.от последней к самой старой из 2 строк в одной переменной

image mysql -> мне нужно из этих двух строк получить TOP LIST от самой последней (самой новой) до самой старой

$sqll = "SELECT * FROM users ORDER BY publishedAt DESC, publishedAt1 DESC";
$i = 0;
    if ($latest=mysqli_query($conn,$sqll)) {
        while ($row=mysqli_fetch_row($latest)){  
            $allchannels[] = $row[12];
            echo $allchannels[$i++].' / ';
        }
    }

Ответы [ 3 ]

0 голосов
/ 12 октября 2018

Если я правильно понял, вы могли бы сделать так:

$allchannels[ $row[12] ] = $row[13];

Таким образом, один будет индексом, а другой - значением, делая его единичным.

0 голосов
/ 12 октября 2018

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

$sqll = "SELECT publishedAt, publishedAt1 FROM users";
if ($latest = mysqli_query($conn,$sqll)) {
    $datetimes = [];
    while ($row = mysqli_fetch_row($latest)){
        $datetimes[] = $row[0];
        $datetimes[] = $row[1];
    }
    rsort($datetimes);  // descending order
    echo "<table border=1>";
        echo "<tr><td>" , implode("</td></tr><tr><td>", $datetimes) , "</td></tr>";
    echo "</table>";
}

Это вернет только два желаемых столбца данных для каждой строки.

Вывод будет:

|--------------------------|
| 2018-09-10T13:41:14.000Z |
| 2018-09-09T10:00:05.000Z |
| 2018-09-07T11:10:54.000Z |
| 2018-09-04T12:00:03.000Z |
| ... etc ...              |
|--------------------------|

Проще говоря, вы можете использовать UNION для создания одного столбца datetime и ORDER BY для сортировки набора результатов.

SELECT publishedAt AS stamp FROM `users` UNION SELECT publishedAt1 AS stamp FROM publishedAt1 ORDER BY stamp DESC

Затем просто итерируйте отсортированные данные столбца, какэто:

echo "<table border=1>";
    while ($row = mysqli_fetch_row($latest)){
        echo "<tr><td>{$row[0]}</td></tr>";
    }
echo "</table>";
0 голосов
/ 12 октября 2018

Если я правильно интерпретирую ваш вопрос, вы можете попробовать это:

$allchannels[] = $row[12] . ' ' . $row[13];

ИЛИ:

$allchannels[] = array(

  $row[12],
  $row[13]

);

ИЛИ:

$allchannels[] = $row[12];
$allchannels[] = $row[13];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...