PHP.SU

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

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

> Найдено сообщений: 10
makbeth Отправлено: 14 Января, 2014 - 14:50:02 • Тема: Перебор массива • Форум: Вопросы новичков

Ответов: 1
Просмотров: 101
Подскажите как через foreach() перебрать следующий массив:
нужна информация из вложенного массива. Заранее благодарю.
PHP:
скопировать код в буфер обмена
  1. array (size=2)
  2.   3 =>
  3.     array (size=3)
  4.       0 =>
  5.         object(Basis)[71]
  6.           private '_new' (CActiveRecord) => boolean false
  7.           private '_attributes' (CActiveRecord) =>
  8.             array (size=4)
  9.               ...
  10.           private '_related' (CActiveRecord) =>
  11.             array (size=0)
  12.               ...
  13.           private '_c' (CActiveRecord) => null
  14.           private '_pk' (CActiveRecord) => string '1' (length=1)
  15.           private '_alias' (CActiveRecord) => string 't' (length=1)
  16.           private '_errors' (CModel) =>
  17.             array (size=0)
  18.               ...
  19.           private '_validators' (CModel) => null
  20.           private '_scenario' (CModel) => string 'update' (length=6)
  21.           private '_e' (CComponent) => null
  22.           private '_m' (CComponent) => null
  23.       1 =>
  24.         object(Basis)[72]
  25.           private '_new' (CActiveRecord) => boolean false
  26.           private '_attributes' (CActiveRecord) =>
  27.             array (size=4)
  28.               ...
  29.           private '_related' (CActiveRecord) =>
  30.             array (size=0)
  31.               ...
  32.           private '_c' (CActiveRecord) => null
  33.           private '_pk' (CActiveRecord) => string '2' (length=1)
  34.           private '_alias' (CActiveRecord) => string 't' (length=1)
  35.           private '_errors' (CModel) =>
  36.             array (size=0)
  37.               ...
  38.           private '_validators' (CModel) => null
  39.           private '_scenario' (CModel) => string 'update' (length=6)
  40.           private '_e' (CComponent) => null
  41.           private '_m' (CComponent) => null
  42.       2 =>
  43.         object(Basis)[73]
  44.           private '_new' (CActiveRecord) => boolean false
  45.           private '_attributes' (CActiveRecord) =>
  46.             array (size=4)
  47.               ...
  48.           private '_related' (CActiveRecord) =>
  49.             array (size=0)
  50.               ...
  51.           private '_c' (CActiveRecord) => null
  52.           private '_pk' (CActiveRecord) => string '3' (length=1)
  53.           private '_alias' (CActiveRecord) => string 't' (length=1)
  54.           private '_errors' (CModel) =>
  55.             array (size=0)
  56.               ...
  57.           private '_validators' (CModel) => null
  58.           private '_scenario' (CModel) => string 'update' (length=6)
  59.           private '_e' (CComponent) => null
  60.           private '_m' (CComponent) => null
  61.   4 =>
  62.     array (size=1)
  63.       0 =>
  64.         object(Basis)[74]
  65.           private '_new' (CActiveRecord) => boolean false
  66.           private '_attributes' (CActiveRecord) =>
  67.             array (size=4)
  68.               ...
  69.           private '_related' (CActiveRecord) =>
  70.             array (size=0)
  71.               ...
  72.           private '_c' (CActiveRecord) => null
  73.           private '_pk' (CActiveRecord) => string '4' (length=1)
  74.           private '_alias' (CActiveRecord) => string 't' (length=1)
  75.           private '_errors' (CModel) =>
  76.             array (size=0)
  77.               ...
  78.           private '_validators' (CModel) => null
  79.           private '_scenario' (CModel) => string 'update' (length=6)
  80.           private '_e' (CComponent) => null
  81.           private '_m' (CComponent) => null
makbeth Отправлено: 16 Декабря, 2013 - 11:40:21 • Тема: mysql вывод не пустых полей • Форум: Вопросы новичков

Ответов: 14
Просмотров: 1388
тогда попробуйте этот вариант:
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM (SELECT * FROM `table`) AS t WHERE url!='' ORDER BY RAND() LIMIT 1
makbeth Отправлено: 16 Декабря, 2013 - 10:40:05 • Тема: Увеличение значения переменной в БД • Форум: Вопросы новичков

Ответов: 6
Просмотров: 274
Напишите более развернуто о проблеме. Желательно добавить список полей в Вашей таблице и указать на то поле, значение которого вы собираетесь менять. Еще было бы здорово, если Вы укажете по какому условию это значение должно меняться (что должен сделать пользователь что бы поменялось значение определенной строки).
makbeth Отправлено: 16 Декабря, 2013 - 10:35:48 • Тема: mysql вывод не пустых полей • Форум: Вопросы новичков

Ответов: 14
Просмотров: 1388
Попробуйте примерно следующее:
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM TABLE WHERE url!=NULL LIMIT 1

Если не сработает - попробуйте этот вариант:
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM TABLE WHERE url!='' LIMIT 1
makbeth Отправлено: 12 Декабря, 2013 - 14:00:59 • Тема: Сортировка или вывод максимального числа • Форум: Вопросы новичков

Ответов: 10
Просмотров: 443
Еще бы посоветовал Вам обратить внимание на PhpStorm. Очень удобная штука.
makbeth Отправлено: 12 Декабря, 2013 - 13:36:05 • Тема: Сортировка или вывод максимального числа • Форум: Вопросы новичков

Ответов: 10
Просмотров: 443
Да все верно. Забыл кавычку в конце поставить. Попробуйте:
PHP:
скопировать код в буфер обмена
  1.  $qr_result = mysql_query("select * from " . $db_table_to_show." ORDER BY spojili DESC");
makbeth Отправлено: 12 Декабря, 2013 - 13:09:31 • Тема: Сортировка или вывод максимального числа • Форум: Вопросы новичков

Ответов: 10
Просмотров: 443
PHP:
скопировать код в буфер обмена
  1.  $qr_result = mysql_query("select * from " . $db_table_to_show." ORDER BY spojili DESC)
makbeth Отправлено: 12 Декабря, 2013 - 13:00:48 • Тема: foreach() • Форум: Вопросы новичков

Ответов: 4
Просмотров: 205
VenZell пишет:
PHP:
скопировать код в буфер обмена
  1. function function_name($arguments){
  2.  
  3.    /*
  4.     *Some logic here
  5.     *...
  6.     */
  7.  
  8.    $output = array();
  9.    $r = mysql_query("SELECT * FROM table");
  10.    $row = mysql_fetch_assoc($r);
  11.        
  12.    foreach ($row as $data){
  13.       if($data['lastname'] === 'Фамилия-образец') {
  14.          $output[] = array(
  15.             'name' => $row['name'],
  16.             'lastname' => $row['lastname'],
  17.          );
  18.       }
  19.    }
  20.  
  21.    return (empty($output)) ? false : $output;
  22. }


Спасибо большое! То что надо! Только вот что бы это заработало надо заменить в 13-ой строке $data['lastname'] на $row['lastname'].
makbeth Отправлено: 12 Декабря, 2013 - 12:17:32 • Тема: foreach() • Форум: Вопросы новичков

Ответов: 4
Просмотров: 205
Flash_PR пишет:
Зачем так сложно, запрашивай сразу SQL-запросом поля только те у которых lastname=="Фамилия-образец

Это я для примера написал. На самом деле проверкой в самом запросе там не обойтись (там храниться доменное имя, к которому надо узнать ip адрес и через сторонний рессурс в виде json данных, которые надо декодировать через json_decode(), в нем найти нужный элемент и сравнивать с этим шаблоном), да и не нужно мне это (хочу по максимуму отделять SQL запросы работу с БД от основного кода).
makbeth Отправлено: 12 Декабря, 2013 - 11:52:58 • Тема: foreach() • Форум: Вопросы новичков

Ответов: 4
Просмотров: 205
Есть ассоциативный массив, содержащий в себе информацию, взятую из БД. Например три столбца: id| name| lasname|
Строк в таблице например 100.
Весь массив нахоится в переменной $row после вызова данной функции:
//$r = mysql_query("SELECT * FROM table");
//$row = mysql_fetch_assoc($r);
Далее мне нужно вывести например только фамилию и сравнить ее с образцом. Если такая же - вывести на экран имя и фамилию.
Понятно что можно использовать для этой цели следующую конструкцию:
$r = mysql_query("SELECT * FROM table");
while ($row = mysql_fetch_assoc($r)){
if($row['lastname']=="Фамилия-образец"){
echo "$row['name'] $row['lastname'] <br>";
}
}

Как-то так. А что делать, если я массив, содержащийся в переменной $row захочу обработать по-другому, например отправив его return-ом в нужное мне место?
Для этого мне понадобится использовать foreach(). Но проблема в том что я не могу представить вид этой конструкции для получения такого же результата, как и с while().
Буду очень благодарен за подсказку.

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB