[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите новичку ошибку разобрать (двумерный масси
Гость_Артём
Пишу программу потипу клиента-сервера, сообщается она по pho с sql.
Цель - обновить данные в таблице.
Код:

$buza[$c] = mysql_fetch_array($q);
$newOstatok=$buza[$c][ostatok]-$buza[$c][rashod]+buza[$c][prihod];


Даёт ошибку
Parse error: syntax error, unexpected '[' in **** on line 74.

Как лучше организовать этот кусок? Нужно иметь возможность динамически обращаться как к результату fetch_array, так и к числовому индексу...



Спустя 57 минут, 21 секунда (9.12.2010 - 02:05) sixpoundeeer написал(а):
Боюсь, что с таким описанием проблемы, Вам тут никто не поможет.

Спустя 5 часов, 43 минуты, 48 секунд (9.12.2010 - 07:49) Guest написал(а):
Ок.
Кассовая программа

$q = mysql_query("SELECT * \n FROM kassa \n WHERE number >= '$newNumbStatyi' \n ORDER BY number ASC");
$buza[-1] = mysql_fetch_array($q);
for ($c=0; $c<mysql_num_rows($q)-1; $c++)
{
$buza[$c] = mysql_fetch_array($q, MYSQL_ASSOC);
$newOstatok=$buza[ostatok][$c]-$buza[rashod][$c]+buza[prihod][$c];
$newOstatok=$buza[$c-1][ostatok]-$buza[$c][rashod]+buza[$c][prihod];
mysql_query("UPDATE kassa \n SET ostatok = '$newOstatok' \n WHERE number = 'buza[$c][number]'");
}
[php]
Вопрос собственно такой: как организовать двумерный массив, чтобы одним индексом шли значения строки из

mysql_fetch_array($q, MYSQL_ASSOC);
[php]
а вторым произвольные числа?

Спустя 1 минута, 39 секунд (9.12.2010 - 07:51) Гость_Артём написал(а):
В коде вот эта строчка не нужна*

$newOstatok=$buza[$c-1][ostatok]-$buza[$c][rashod]+buza[$c][prihod];

Спустя 3 часа, 19 минут, 38 секунд (9.12.2010 - 11:10) linker написал(а):
$buza = array();
$q = mysql_query("SELECT * \n FROM `kassa` \n WHERE `number` >= '$newNumbStatyi' \n ORDER BY `number` ASC");
while($row = mysql_fetch_assoc($q))
{
$buza[] = $row;
$newOstatok = $row['ostatok'] - $row['rashod'] + $row['prihod'];
...
// Далее думаем сами
}


Спустя 4 часа, 36 минут, 53 секунды (9.12.2010 - 15:47) Гость_Артём написал(а):
Я ацки ступил :(
Писал ночью, забыл $ поставить. Код работает с $, всё ок. Получается нормальный двумерный массив. Только вот с проблемой столкнулся ещё одной:

echo "$buza[$c][ostatok]";

даёт "array[ostatok]" - прям текстом вот так.

$i=$buza[$c][ostatok];
echo "i";

даёт значение, лежащее в переменной.

Т.е. видимо есть премудрости использования двумерного массива в двойных кавычках, м.б. кто подскажет как с этим дело обстоит? В примере просто echo, а проблема эта стоит в sql_query...

П.С. - сам больше в плане ООП, а не веба пишу, поэтому извиняюсь за некомпетентность.

Спустя 2 часа, 56 минут, 34 секунды (9.12.2010 - 18:44) kovaldm написал(а):
Так не пробовал?
echo $buza[$c]['ostatok'];

Спустя 6 часов, 52 минуты, 53 секунды (10.12.2010 - 01:37) Гость_Артём написал(а):
Цитата (Гость_Артём @ 9.12.2010 - 12:47)
Т.е. видимо есть премудрости использования двумерного массива в двойных кавычках, м.б. кто подскажет как с этим дело обстоит? В примере просто echo, а проблема эта стоит в sql_query...

П.С. - сам больше в плане ООП, а не веба пишу, поэтому извиняюсь за некомпетентность.

читаем

Спустя 1 день, 19 часов, 58 минут, 37 секунд (11.12.2010 - 21:35) Гость_Артём написал(а):
А есть дебагеры, позволяющие выполнять пошаговую трассировку в php, если серв не у меня на компьютере?
Скажем, опустить запросы к sql и потрейсить остальной код?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.