Другие ответы здесь должны в достаточной мере ответить на вашу проблему, но я просто хотел добавить дополнительный совет по отладке, который поможет вам столкнуться с подобной проблемой в будущем.
Вы можете выполнить некоторую базовую отладку, просто распечатав на экране информацию о переменных, с которыми вы работаете. (PHP IDE часто будет иметь более мощные функции отладки, но для чего-то подобного эта проблема подойдет)
Ваш оригинальный код:
while($row = mysql_fetch_row($result))
{
echo '<tr>';
$pk = $row[0]['ARTICLE_NO'];
foreach($row as $key => $value)
{
echo '<td><a href="#" onclick="GetAuctionData(\''.$pk.'\')">' . $value . '</a></td>';
}
}
Вы заметили, что функция GetAuctionData неправильно получает свою переменную. Добавьте эту строку:
$pk = $row[0]['ARTICLE_NO'];
var_dump($pk);
Если вы посмотрите на вывод при запуске файла, вы, вероятно, увидите, что он говорит, что $ pk равно нулю. Хм, это не сработало. Давайте немного его изменим:
$pk = $row[0]['ARTICLE_NO'];
var_dump($row);
Теперь вы видите что-то вроде этого:
array(2) {
[0]=> string(2) "12"
[1]=> string(7) "myValue"
}
Aha! Теперь, когда вы точно видите, с чем работаете, вы увидите, что код, который вы хотели использовать в первую очередь, был:
$pk = $row[0];
var_dump()
твой друг. Если вы работаете с массивами, print_r()
выдает похожую информацию, но с хорошим форматированием.
Удачи.