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
Форумы портала PHP.SU :: Версия для печати :: В массив выборку из БД
Форумы портала PHP.SU » » Вопросы новичков » В массив выборку из БД

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

1. landsturm - 19 Ноября, 2011 - 16:55:50 - перейти к сообщению
Как бы мне правильно сделать выборку определённых ячеек из базы данных в массив?
$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];
}
Если делать так, то выводится одно и тоже содержимое два раза и если одна из ячеек пуста, то вывод вообще не происходит. Помогите.
2. sKaa - 19 Ноября, 2011 - 17:05:02 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $ssql = mysql_query("SELECT ячейка1, ячейка2, ячейка3 FROM таблица");
  2. $arr = mysql_fetch_assoc($ssql);
  3. print_r($arr);
3. landsturm - 19 Ноября, 2011 - 17:19:24 - перейти к сообщению
sKaa
Так выводится значение из ячейки только первой записи, а мне нужно всех.
4. Bio man - 19 Ноября, 2011 - 17:28:39 - перейти к сообщению
где выводишь? как выводишь?
5. landsturm - 19 Ноября, 2011 - 17:31:34 - перейти к сообщению
Bio man
print_r($arr);
А вообще я пытаюсь сравнить два массива.
6. Bio man - 19 Ноября, 2011 - 17:33:47 - перейти к сообщению
landsturm, можно весь код? экстрасенсов тут мало...
7. sKaa - 19 Ноября, 2011 - 17:35:18 - перейти к сообщению
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.  
8. De-Luxis - 19 Ноября, 2011 - 17:43:07 - перейти к сообщению
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.  
9. Bio man - 19 Ноября, 2011 - 17:44:13 - перейти к сообщению
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.  

результат сюда выложи
10. landsturm - 19 Ноября, 2011 - 17:49:19 - перейти к сообщению
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
)
11. Bio man - 19 Ноября, 2011 - 17:56:32 - перейти к сообщению
landsturm, вне цикла выводи!
12. landsturm - 19 Ноября, 2011 - 17:56:39 - перейти к сообщению
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
)
13. snikers987 - 19 Ноября, 2011 - 18:21:11 - перейти к сообщению
Цикл закрой }
14. landsturm - 19 Ноября, 2011 - 18:25:08 - перейти к сообщению
snikers987
Так он и так закрыт.
15. Bio man - 19 Ноября, 2011 - 18:27:26 - перейти к сообщению
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 имел ввиду закрыть до вывода

 

Powered by ExBB FM 1.0 RC1