2012-01-26 3 views
1

Может ли кто-нибудь увидеть, что я делаю неправильно с этим массивом php? Я "пытаюсь создать динамический массив, но почему-то не работает, и получить внутреннюю ошибку сервера при попытке доступа к нему из браузераУстранение ошибок при создании массива из значений базы данных

$index = 0; 
$columnIndex = 0 

while($row = mysqli_fetch_array($result, MYSQL_NUM)) 
{ 
    $test = array(); 
    $test[$arrayIndex] = $row[$columnIndex]; 
    $coumnIndex = 1; 

    if(is_string($row[$number])) 
    { 
    preg_match("/(?:\d+\.)?(?:\s*)?$stop?(?:\s*)?(.*):(.*)",{$row[$columnIndex]},$match1);  
    $test[$index] = '<p> <strong> . $match1[1] . </strong> . $match1[2] . </p>'; 
    }  

    ++$arrayIndex; 
    ++$columnIndex; 
} 

$jsonData = json_encode($test); 
echo $jsonData; 
+0

Вы повторно инициализируете массив $ test при каждом цикле, который кажется немного бессмысленным ... где задано число $? –

+0

Где находится '$ arrayIndex'? – Calvin

+0

Проверьте журнал ошибок. Вероятно, здесь есть синтаксическая ошибка: '{$ row [$ columnIndex]}'. –

ответ

0

Вы получаете ошибку, скорее всего, потому, что вы делаете $test[$arrayIndex] = $row[$columnIndex]; когда Я не вижу $arrayIndex определен (таким образом, это нуль) вы не можете установить нулевой индекс массива

Если вы хотите простой динамический массив в PHP, вы могли бы сделать что-то подобное вместо этого:..

$test = array(); 
while(/* however you want to define your loop */) { 
    $test[] = /* something */; 
} 

И вы завершите массив $test, который содержит все, что вы помещаете в /* something */ на каждую строку. Посмотрите раздел «Создание/изменение с помощью синтаксиса квадратной скобки» на странице PHP Arrays.

+0

также, '$ coumnIndex = 1;', похоже, имеет опечатку – horatio

0

У вас есть опечатка:

$coumnIndex = 1; 

Должно быть columnIndex.

Вы также пренебрегаете закрытием кавычек, прежде чем пытаться объединить переменную на линии $text[$index].

Смежные вопросы