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 и ег печать в таблицу хтмл

 PHP.SU

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


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

> Описание: запрос-массив-его печать в таблицу
wmicha
Отправлено: 02 Февраля, 2010 - 17:06:12
Post Id


Новичок


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


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




Привет всем.

Есть таблица, делаю запрос, результат запроса записываю в ассоц.массив.


вот пример:

-----------------------------

$query = "SELECT * FROM price WHERE name like '%$search_3chr%' order by cost";

$result = mysql_query($query) or die("Запрос ошибочный");

$result1 = mysql_fetch_array($result,MYSQL_ASSOC);

mysql_free_result($result); /* Освобождение памяти, занятой результатом запроса */

mysql_close($link); /* Закрытие соединения */

------------------------
Если я правильно понимаю, то теперь в массиве $result1 у меня будет записан весь результат поиска? Т.е 2-ный массив с k количеством столбоцев и n строк.
Далее необходимо вывести этот массив на печать в таблицу html
Умные люди подскажите как сделать это наиболее правильно.
 
 Top
JustUserR
Отправлено: 02 Февраля, 2010 - 17:27:57
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


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




wmicha пишет:
Если я правильно понимаю, то теперь в массиве $result1 у меня будет записан весь результат поиска? Т.е 2-ный массив с k количеством столбоцев и n строк.
Там будет только первая строка - если хотите получить двухмерный массив $res то делайте примерно так $res=array(); while($res[]=mysql_fetch_array($result)) {}


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
wmicha
Отправлено: 03 Февраля, 2010 - 04:31:23
Post Id


Новичок


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


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




Спасибо, сейчас попробую.
(Добавление)
Не получается, ничего.

Можно плиз подробней. Или что не так.

$query = "SELECT * FROM price WHERE name like '%$search_3chr%' order by cost";

$result = mysql_query($query) or die("Запрос ошибочный");

$res=array();

while($res=mysql_fetch_array($result)) {

$res = $result;
}


mysql_free_result($result); /* Освобождение памяти, занятой результатом запроса */

mysql_close($link); /* Закрытие соединения */

echo ($res["name"][3]); // по идее ведь должно вывести третью строке в столбце "name"
 
 Top
valenok Модератор
Отправлено: 03 Февраля, 2010 - 08:41:33
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


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




$res[] = $result;
echo ($res[3]["name"]);

Я очень надеюсь что если Вы сами не поймете почему так, а не как у вас, то Вы хотябы спросите.


-----
Truly yours, Sasha.
 
My status
 Top
wmicha
Отправлено: 03 Февраля, 2010 - 10:04:36
Post Id


Новичок


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


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




Вот спрашиваю, правильно ли я передаю значения результатов запроса SQL в массив $res?

$query = "SELECT * FROM price WHERE name like '%$search_3chr%' order by cost";

$result = mysql_query($query) or die("Запрос ошибочный");

// теперь передаю результаты поиска в массив $res

$res=array();

while($res[]=mysql_fetch_array($result)) {

$res[] = $result;
}
///////

mysql_free_result($result); /* Освобождение памяти, занятой результатом запроса */

mysql_close($link); /* Закрытие соединения */

echo ($result1[1]["name"]); // выдает: Resource id #4 - а такого в базе вообще нет
echo ($result1[1]);/ тоже выдает: Resource id #4- а такого в базе вообще нет
 
 Top
Phantik
Отправлено: 03 Февраля, 2010 - 10:19:05
Post Id


Посетитель


Покинул форум
Сообщений всего: 305
Дата рег-ции: Июнь 2009  


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




Будьте внимательнее

echo ($res[3]["name"]);
echo ($result1[1]["name"]);

Во первых $result и $result1 - это разные переменные.
Во вторых $res - это тип массив а $result - это тип ресурс

И вообще у вас цикл неправильный. Надо




while($row = mysql_fetch_array($result))
{
$res[] = $row;
}

(Отредактировано автором: 03 Февраля, 2010 - 10:22:26)

 
 Top
wmicha
Отправлено: 03 Февраля, 2010 - 10:32:00
Post Id


Новичок


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


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




Phantik пишет:
Будьте внимательнее

echo ($res[3]["name"]);
echo ($result1[1]["name"]);

Во первых $result и $result1 - это разные переменные.
Во вторых $res - это тип массив а $result - это тип ресурс

И вообще у вас цикл неправильный. Надо


Большое спасибо. Все теперь разобрался. Все получилось!
 
 Top
JustUserR
Отправлено: 03 Февраля, 2010 - 16:22:53
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


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




wmicha пишет:
Большое спасибо. Все теперь разобрался. Все получилось!
Кстати это некое напоминание вам о том что надо использовать более осмысленые имена переменных - вот хотя бы уже второй код у вас почти бы работал если обращаться именно к массиву $res (Правда записи ды дублировались - добавления в массив с помощью $res[] надо делать только один раз для одной записи)


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
wmicha
Отправлено: 05 Февраля, 2010 - 11:52:45
Post Id


Новичок


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


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




Можно еще вопрос.

После того как я получил ассоц. массив по результам запроса - res
Мне необходимо передать значения данного массива в следующий массив, но не все данные а только те где например содержится некоторые символы, допустим "abc".

правильно ли сделать так?

сначала передать все данные в новый массив, пусть он называется new_res и делаю я это так, но почему-то никакие значения не передаются:

$new_res=array();
$c=0;
while ($c<>count($res)) {

$new_res[$c]["name"]=$res[$c]["name"];

$new_res[$c]["cost"]=$res[$c]["cost"];

$new_res[$c]["vendor"]=$res[$c]["vendor"];

$c=$c+1;

}



а потом уже в нем используя какую-нить хитрую функцию удалить и оставить лишь нужные мне элементы (напишите пожалуйста какую, и как её использовать)
(Добавление)
Вообщем если кратко, так как передать данные из одного двумерного ассоц массива в другой, но не все а только те где содержатся определенные символы, например "абв"

(Отредактировано автором: 05 Февраля, 2010 - 11:56:11)

 
 Top
JustUserR
Отправлено: 06 Февраля, 2010 - 01:15:41
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


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




wmicha пишет:
Вообщем если кратко, так как передать данные из одного двумерного ассоц массива в другой, но не все а только те где содержатся определенные символы, например "абв"
К примеру можно сделать двойной цикл по двухмерному массиву и в нем делать соответствующую проверку - если нужна проверка по значению массива то если какое-то поле соответствует шаблону то копируете весь одномерный подмассив иначе не копируете - а если нужна проверка по ключу то при копировании одномерного массива проверяете нужные ключи и вставляете только их
Если хотите осуществить копирование массивов и разбор их элементов на основе встроенных в PHP функций то смотрите в сторону функций array_map и array_walk


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB