У меня есть цикл while, который присваивает идентификатор пользователя переменной. Переменная – это массив. Когда я назначаю переменную другому в такой ссылке: она возвращает правильный идентификатор на клике, но только тогда, когда ссылка находится в цикле while. Как (возможно) разместить ссылку за пределами цикла while и получить те же идентификационные данные, которые имеет переменная?
Этот код работает:
while ( $row = mysqli_fetch_array($sql)) { $variable = $row['user_id']; echo "<a href='index.php?var=$variable'></a>"; }
В этом случае этого не происходит:
PHP:
while ( $row = mysqli_fetch_array($sql)) { $variable[] .= $row['user_id']; }
HTML:
for ($i = 0 ; $i <100 ; $i++ ); <a href='index.php?var=$variable[$i]'></a>
Спасибо за комментарии.
while ( $row = mysqli_fetch_array($sql)) { $variable[] .= $row['user_id']; //Wrong $variable[] = $row['user_id']; //Correct } foreach($variable as $value) { echo "<a href='index.php?var=$value'></a>"; // Be sure to use double quotes }
У вас есть синтаксис goof:
for ($i = 0 ; $i <100 ; $i++ ); ^----
Точка с запятой завершает цикл for, поэтому вы выполняете пустой цикл. Измените его на:
for ($i = 0 ; $i <100 ; $i++ ) echo "<a href......etc....";
или еще лучше:
for ($i = 0 ; $i <100 ; $i++ ) { echo "<a href......etc...."; }
В игру вступают несколько вопросов:
$variable
определена внутри области цикла while, поэтому она недоступна вне указанного цикла (хотя PHP может позволить вам уйти с этим). $sql
. Хотя это может быть правдой, это не очень хорошая практика, чтобы принять это, и вы должны обрабатывать, однако, многие строки фактически возвращаются, выполняя этот запрос. <a href='index.php?var=$variable[$i]'></a>
в контексте HTML, это не сработает, поскольку $variable[$i]
PHP-код. Вам нужно будет поместить это в PHP-документ, где-то между тегами <?php
и ?>
.