Каков наилучший способ удалить двойные кавычки из набора строк, используя MySQL _FETCH? - PullRequest
1 голос
/ 13 апреля 2011

У меня есть скрипт php для извлечения данных из базы данных MysQL после вызова ajax. Данные должны быть возвращены на вызывающую веб-страницу в виде строки, представляющей серию значений x, y для отображения на диаграмме рассеяния.

Требуемый формат, который php-скрипт должен вывести на вызывающую страницу (которая будет извлекать его из xmlhttp.responseText), выглядит следующим образом:

[[1,1], [2,2], [3,3], [4,4], [5,5], [6,6], [7,7]]

Что я получаю:

[[0, "69,08"], [1, "53.53"], [2, "61,61"], [3, "72,04"], [4, "82.72"], [5, "103.76" ]]

PHP-код, который я использую для построения возвращаемой строки:

while ($row=mysql_fetch_array($res_Data,MYSQL_NUM)) { 

  $index[$i] = $i;
  $PointArray[0] = $i;
  $PointArray[1] = $row[1];
  $ReturnData[$i] = $PointArray;
  $i = $i + 1;
}

echo json_encode($ReturnData);

Интересно, что когда я отображаю данные в HTML-таблицу, отображаемую на вызывающей странице, а не задаю ее как массив php, двойные кавычки не отображаются.

У меня два вопроса:

(1) Есть ли более элегантный способ построения строки данных, чем тот, который я придумал, который выглядит немного неуклюжим?

(2) Каков наилучший способ удаления двойных кавычек - это следует делать на стороне сервера или в функции javascript на веб-странице, инициирующей вызов?

Большое спасибо

1 Ответ

1 голос
/ 13 апреля 2011

Если вы не хотите, чтобы кавычки появлялись - просто не помещайте строки в массив; -)

Замените ваш код на что-то вроде (я добавил (float) модификатор до $row[1]):

while ($row=mysql_fetch_array($res_Data,MYSQL_NUM)) { 

  $index[$i] = $i;
  $PointArray[0] = $i;
  $PointArray[1] = (float)$row[1];
  $ReturnData[$i] = $PointArray;
  $i = $i + 1;
}

Или немного более компактно:

while ($row=mysql_fetch_array($res_Data,MYSQL_NUM)) { 
  $index[$i] = $i; // what is it used for?
  $ReturnData[$i] = array($i, (float)$row[1]);
  $i++;
}
...