2-мерный массив, получение данных - PullRequest
1 голос
/ 18 ноября 2010
...
while ($data = mysql_fetch_array($results) && $Record_Count < 5) {
      $Record_Count = $Record_Count + 1; 
      $_SESSION['files'][] = $sid . '-' . $data['Id'] . '-slow';

что-то вроде этого извлекает информацию о файлах из $ _SESSION ['files'] [], см. Ниже?

echo $_SESSION['files'][0];
echo $_SESSION['files'][1];
echo $_SESSION['files'][2];
echo $_SESSION['files'][3];
echo $_SESSION['files'][4];

также я собираюсь пройтись по каждому элементу и сохранитьфизически в правильную папку.В операторе If я добавлю несколько дополнительных проверок ошибок, но выглядит ли базовая структура нормально, $ scrtmp будет проходить все один за другим или выводить все массивы?

    $scrtmp = $_SESSION['files'][];
    if (file_exists($scrtmp)) {
    @copy("/temp/" . $scrtmp ,"/items/" . date(Y) . "/" . date(m) . "/" . $scrtmp);
}

1 Ответ

1 голос
/ 18 ноября 2010

Операторы && и < имеют более высокий приоритет относительно =, поэтому:

while ($data = mysql_fetch_array($results) && $Record_Count < 5) {

будет рассматриваться как:

while ($data = ( mysql_fetch_array($results) && ($Record_Count < 5) ) {

присвоение true или false $data.

Вы исправите это, введя круглые скобки как:

while ( ($data = mysql_fetch_array($results)) && $Record_Count < 5) {

Кроме того, я вижу еще несколько возможных проблем:

$scrtmp = $_SESSION['files'][];

неверно. Вам нужно иметь второй индекс. Что-то вроде:

for($i=0;$i<count($_SESSION['files']);$i++) {
    $scrtmp = $_SESSION['files'][$i];
    ....
}

Также ваша функция file_exists проверяет, существует ли файл $scrtmp в текущем рабочем каталоге (при условии, что $scrtmp имеет только имя файла, а не путь). Но ваш copy копирует тот же файл из каталога с именем /temp. Это то, что вы хотите сделать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...