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 Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
landsturm
Отправлено: 19 Ноября, 2011 - 16:55:50
Post Id


Частый гость


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


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




Как бы мне правильно сделать выборку определённых ячеек из базы данных в массив?
$arr = array();
$ssql = mysql_query("SELECT ячейка1, ячейка2, ячейка3 FROM таблица");
while($ars=mysql_fetch_assoc($ssql)){
$arr[] = $ars[ячейка1];
$arr[] = $ars[ячейка2];
$arr[] = $ars[ячейка3];
}
Если делать так, то выводится одно и тоже содержимое два раза и если одна из ячеек пуста, то вывод вообще не происходит. Помогите.
 
 Top
sKaa
Отправлено: 19 Ноября, 2011 - 17:05:02
Post Id



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


Покинул форум
Сообщений всего: 979
Дата рег-ции: Окт. 2011  
Откуда: Россия г. Нижний Новгород


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

[+]


PHP:
скопировать код в буфер обмена
  1. $ssql = mysql_query("SELECT ячейка1, ячейка2, ячейка3 FROM таблица");
  2. $arr = mysql_fetch_assoc($ssql);
  3. print_r($arr);
 
 Top
landsturm
Отправлено: 19 Ноября, 2011 - 17:19:24
Post Id


Частый гость


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


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




sKaa
Так выводится значение из ячейки только первой записи, а мне нужно всех.
 
 Top
Bio man
Отправлено: 19 Ноября, 2011 - 17:28:39
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


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




где выводишь? как выводишь?
 
 Top
landsturm
Отправлено: 19 Ноября, 2011 - 17:31:34
Post Id


Частый гость


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


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




Bio man
print_r($arr);
А вообще я пытаюсь сравнить два массива.
 
 Top
Bio man
Отправлено: 19 Ноября, 2011 - 17:33:47
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


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




landsturm, можно весь код? экстрасенсов тут мало...
 
 Top
sKaa
Отправлено: 19 Ноября, 2011 - 17:35:18
Post Id



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


Покинул форум
Сообщений всего: 979
Дата рег-ции: Окт. 2011  
Откуда: Россия г. Нижний Новгород


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

[+]


PHP:
скопировать код в буфер обмена
  1.     $ssql = mysql_query("SELECT ячейка1, ячейка2, ячейка3 FROM таблица");
  2.     $rows = mysql_num_rows($ssql);
  3.     for($k=0;$k<$rows;$k++){
  4.     $arr = mysql_fetch_assoc($ssql);
  5.     print_r($arr);
  6.     }
  7.  
 
 Top
De-Luxis
Отправлено: 19 Ноября, 2011 - 17:43:07
Post Id



Новичок


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


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




PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. $res = mysql_query("SELECT * FROM table");
  4. $arRows = array();
  5. while ($row = mysql_fetch_assoc($res))
  6.  $arRows[] = $row;
  7.  
  8. var_dump($arRows);
  9.  
  10.  
 
 Top
Bio man
Отправлено: 19 Ноября, 2011 - 17:44:13
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


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




landsturm пишет:
PHP:
скопировать код в буфер обмена
  1. $arr = array();
  2. $ssql = mysql_query("SELECT ячейка1, ячейка2, ячейка3 FROM таблица");
  3. while($ars=mysql_fetch_assoc($ssql)){
  4. $arr[] = $ars[ячейка1];
  5. $arr[] = $ars[ячейка2];
  6. $arr[] = $ars[ячейка3];
  7. }
  8. echo '<pre>';
  9. print_r($arr);
  10. echo '</pre>';
  11.  

результат сюда выложи
 
 Top
landsturm
Отправлено: 19 Ноября, 2011 - 17:49:19
Post Id


Частый гость


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


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




Bio man
Array
(
[0] => 1321717591.jpg
[1] =>
[2] => s1321717591.jpg
[3] => 1321717615.jpg
[4] =>
[5] => s1321717615.jpg
)
Array
(
[0] => 1321717591.jpg
[1] =>
[2] => s1321717591.jpg
[3] => 1321717615.jpg
[4] =>
[5] => s1321717615.jpg
)
 
 Top
Bio man
Отправлено: 19 Ноября, 2011 - 17:56:32
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


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




landsturm, вне цикла выводи!
 
 Top
landsturm
Отправлено: 19 Ноября, 2011 - 17:56:39
Post Id


Частый гость


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


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




PHP:
скопировать код в буфер обмена
  1. $result = "SELECT * FROM таблица";
  2. $query = mysql_query("$result") or die (mysql_error());
  3.  
  4. while ($res = mysql_fetch_array($query)){
  5. $board = $res['раздел'];
  6. $dir = "ПУТЬ К ПАПКЕ С ФАЙЛАМИ";
  7. $files = scandir($dir);
  8.  
  9. $arr = array();
  10.  
  11. $result = array_diff($files, $arr);


Суть этого скрипта в том, что он сканирует папку с файлами, а дальше сравнивает с массивом из БД, если в папке есть файлы, названия которых нет в массиве БД, то он их удаляет.
(Добавление)
Я бы ещё хотел узнать почему он выводится два раза?
Array
(
[0] => 1321717591.jpg
[1] =>
[2] => s1321717591.jpg
[3] => 1321717615.jpg
[4] =>
[5] => s1321717615.jpg
)
Array
(
[0] => 1321717591.jpg
[1] =>
[2] => s1321717591.jpg
[3] => 1321717615.jpg
[4] =>
[5] => s1321717615.jpg
)
 
 Top
snikers987
Отправлено: 19 Ноября, 2011 - 18:21:11
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


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




Цикл закрой }

(Отредактировано автором: 19 Ноября, 2011 - 18:22:44)



-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
landsturm
Отправлено: 19 Ноября, 2011 - 18:25:08
Post Id


Частый гость


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


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




snikers987
Так он и так закрыт.
 
 Top
Bio man
Отправлено: 19 Ноября, 2011 - 18:27:26
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


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




landsturm, делать нечего мне, на держи
PHP:
скопировать код в буфер обмена
  1. function scan($dirname = './') {
  2.         $files = scandir($dirname);
  3.         $scan = array();
  4.         foreach($files as $file) {
  5.                 if(is_dir($dirname.'/'.$file)) {
  6.                         if(($file == '.') || ($file == '..')) continue;
  7.                         $scan['dirs'][] = $file;// массив с директориями
  8.                 }
  9.                 else $scan['files'][] = $file;// массив с файлами
  10.         }
  11.         return $scan;
  12. }
  13. $query = "SELECT * FROM таблица";
  14. $result = mysql_query($query) or die (mysql_error());
  15. $files = scan();
  16. $diff = array();
  17.  
  18. while ($row = mysql_fetch_row($result)){
  19.         $diff = array_diff($files['files'], $row);
  20.         if($diff) {// массив пустой?
  21.                 // нет, не пустой...
  22.                 foreach($diff as $fname) {
  23.                         unlink($fname);
  24.                 }
  25.         }
  26. }

(Добавление)
landsturm пишет:
Так он и так закрыт.
snikers987 имел ввиду закрыть до вывода
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB