Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Запрос, массив

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
event
Отправлено: 23 Января, 2015 - 14:36:43
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 542
Дата рег-ции: Май 2011  


Помог: 0 раз(а)




Всем привет.
Есть такой запрос:
CODE (SQL):
скопировать код в буфер обмена
  1. $result = $mysqli->query("SELECT * FROM links WHERE used = 'no' LIMIT 5") OR sqlerr(__FILE__, __LINE__, $mysqli->error);


Как можно все с ячейки link (из таблицы links, та что в запросе) загнать в массив, чтобы получилось

$urls = array("1 ссылка", "2 ссылка)...; и т.д.
(Добавление)
Попробовал как-то так, по дурацкому, но не пашет:

PHP:
скопировать код в буфер обмена
  1. $result = $mysqli->query("SELECT * FROM links WHERE used = 'no' LIMIT 2") or sqlerr(__FILE__, __LINE__, $mysqli->error);
  2.  
  3. while($row = $result->fetch_array()) {
  4.         $url_z .= '"link' . $row['link'] . '", ';
  5. }
  6.  
  7. $urls = array($url_z);

(Отредактировано автором: 23 Января, 2015 - 14:38:30)

 
 Top
skiphog
Отправлено: 23 Января, 2015 - 14:56:32
Post Id



Частый гость


Покинул форум
Сообщений всего: 139
Дата рег-ции: Дек. 2014  
Откуда: Киров, Россия


Помог: 11 раз(а)




PHP:
скопировать код в буфер обмена
  1. $url_z = array();
  2. while($row = $result->fetch_assoc()) {
  3.   $url_z[] = $row['link'];
  4. }
  5. var_dump($url_z);
 
My status
 Top
event
Отправлено: 23 Января, 2015 - 15:06:03
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 542
Дата рег-ции: Май 2011  


Помог: 0 раз(а)




skiphog, спасибо - работает.

Еще такую вопрос, как в этом массиве можно привязать к ссылке номер категории (он хранится в ячейке categoryid в таблице links)?
 
 Top
Sail
Отправлено: 23 Января, 2015 - 15:14:01
Post Id



Участник


Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014  


Помог: 57 раз(а)




event пишет:
как в этом массиве можно привязать к ссылке номер категории (он хранится в ячейке categoryid в таблице links)?

Например, так:
PHP:
скопировать код в буфер обмена
  1. $url_z[] = array('link' => $row['link'], 'categoryid' => $row['categoryid']);

А лучше в запросе выбирать не все, а только требуемые поля, разбирать в массив - с параметром MYSQLI_ASSOC и тогда можно будет, ничтоже сумняшеся делать так:
 
 Top
event
Отправлено: 23 Января, 2015 - 15:22:10
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 542
Дата рег-ции: Май 2011  


Помог: 0 раз(а)




PHP:
скопировать код в буфер обмена
  1. $result = $mysqli->query("SELECT link, categoryid FROM links WHERE used = 'no' LIMIT 10") or sqlerr(__FILE__, __LINE__, $mysqli->error);
  2.  
  3. $urls = array();
  4.     while($row = $result->fetch_assoc()) {
  5.          $urls = $row;
  6. }
  7.  
  8. var_dump($urls);
  9.  


Интересно почему выводит:

CODE (htmlphp):
скопировать код в буфер обмена
  1. array(2) { ["link"]=> string(60) "/11_14749_algoritm-bazovih-reanimatsionnih-meropriyatiy.html" ["categoryid"]=> string(1) "5" }
, должно вывести 10 таких записей...

(Отредактировано автором: 23 Января, 2015 - 15:23:59)

 
 Top
skiphog
Отправлено: 23 Января, 2015 - 15:26:26
Post Id



Частый гость


Покинул форум
Сообщений всего: 139
Дата рег-ции: Дек. 2014  
Откуда: Киров, Россия


Помог: 11 раз(а)




Уточните, что значит привязать?
- В массиве должны быть отдельно линки и категории?
- Или нужно сконкатенировать Линк и категории?
Что должно получится на выходе?

--
P.S.
PHP:
скопировать код в буфер обмена
  1. $urls = $row;
  2. // исправьте на
  3. $urls[] = $row;
 
My status
 Top
event
Отправлено: 23 Января, 2015 - 15:30:27
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 542
Дата рег-ции: Май 2011  


Помог: 0 раз(а)




skiphog, спасибо, заработало:

PHP:
скопировать код в буфер обмена
  1. $result = $mysqli->query("SELECT link, categoryid FROM links WHERE used = 'no' LIMIT 10") or sqlerr(__FILE__, __LINE__, $mysqli->error);
  2.  
  3. $urls = array();
  4.     while($row = $result->fetch_assoc()) {
  5.          $urls[] = $row;
  6. }
  7.  
  8. var_dump($urls);
  9.  


Не знаю как правильно сказать, если ссылка, и к ней должна привязываться ID из ячейки categoryid.

Потом такой foreach должен быть:

PHP:
скопировать код в буфер обмена
  1. foreach ($urls as $key => $value) {
  2.     echo "Ссылка: $key; Категория ссылки: $value<br />\n";
  3. }


Вот так задумано, но не получается(
 
 Top
Sail
Отправлено: 23 Января, 2015 - 15:37:44
Post Id



Участник


Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014  


Помог: 57 раз(а)




event пишет:
Вот так задумано, но не получается(

А так:
PHP:
скопировать код в буфер обмена
  1. foreach ($urls as $value) {
  2.     echo "Ссылка: {$value['link']}; Категория ссылки: {$value['categoryid']}<br />".PHP_EOL;
  3. }

(Отредактировано автором: 23 Января, 2015 - 15:38:46)

 
 Top
skiphog
Отправлено: 23 Января, 2015 - 15:38:39
Post Id



Частый гость


Покинул форум
Сообщений всего: 139
Дата рег-ции: Дек. 2014  
Откуда: Киров, Россия


Помог: 11 раз(а)




--

(Отредактировано автором: 23 Января, 2015 - 15:39:42)

 
My status
 Top
event
Отправлено: 23 Января, 2015 - 15:39:38
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 542
Дата рег-ции: Май 2011  


Помог: 0 раз(а)




Sail, работает, спасибо! Подмигивание Подмигивание
(Добавление)
Кстати, а можно например еще как-то одно значение передать из запроса, например ID?
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB