2015-12-05 2 views
-1

У меня есть массив PHP, который я хочу кодировать в JSON, чтобы впоследствии передать его в свой файл JavaScript.PHP выводит NULL при кодировании массива в JSON

Когда я попробовал это, JavaScript, выводимый:

"SyntaxError: Unexpected token N"

Затем я попытался повторить эту строку JSON в PHP и выводимый:

NULL 
{ 
    "cg": "3", 
    "cb": 0, 
    "cc": "0%", 
    "ci": "0", 
    "wm": 0, 
    "tl": "120" 
} 

Почему есть NULL? Вот мой код:

$table = array(
"cg" => $v1, 
"cb" => $v2, 
"cc" => $v3, 
"ci" => $v4, 
"wm" => $v5, 
"tl" => $v6 
); 

echo json_encode($table); 

Edit для решения комментариев:

В базе данных $ v1 является VARCHAR (255) и $ v6 является INT (11)

Значение извлекается как это:

function fetchinfo($rowname,$tablename,$finder,$findervalue) { 
    if($finder == "1") $result = mysql_query("SELECT $rowname FROM $tablename"); 
    else $result = mysql_query("SELECT $rowname FROM $tablename WHERE `$finder`='$findervalue'"); 
    $row = mysql_fetch_assoc($result); 
    return $row[$rowname]; 
} 

Однако это не всегда так, иногда это значение может быть простой строки: $ v6 = "120";

+1

Каковы значения переменных, от '$ v1' до' $ v6'? –

+0

$ v1 = fetchinfo ("value", "information", "name", "gID"); $ num = fetchinfo («число», «g», «id», $ gID); $ v6 = $ num * 13; – user3757605

+0

Функция fetchinfo получает информацию из базы данных MySQL – user3757605

ответ

-1

Предполагая, что значения переменных указаны в приведенных выше json-данных, я не могу воспроизвести ошибку - кажется, нормально.

$v1=3; 
    $v2=0; 
    $v3='%0'; 
    $v4=0; 
    $v5=0; 
    $v6=120; 

    $table = array(
     "cg" => $v1, 
     "cb" => $v2, 
     "cc" => $v3, 
     "ci" => $v4, 
     "wm" => $v5, 
     "tl" => $v6 
    ); 

    echo json_encode($table); 
    /* 
     {"cg":3,"cb":0,"cc":"%0","ci":0,"wm":0,"tl":120} 
    */ 
Смежные вопросы