2013-06-15 3 views
0

Привет ребята мне нужна поддержка на числовом формате в SQL INSERT INTOформат номера в SQL INSERT

мне нужно преобразовать {$ данных [ «ранг»] [ «точки»]}, как формат числа, так что вместо того, чтобы он показывает, как 5467389 это преобразовывает его в 54,673,89 данные были импортированы из данных API

это мой код

$host="hostname"; // Host name 
$username="database"; // Mysql username 
$password="password"; // Mysql password 
$db_name="dbname"; // Database name 
$tbl_name="table"; // Table name 

// Connect to server and select database. 
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB"); 


// API Data 
$url = "http://api.erpk.org/citizen/profile/3121752.json?key=Yn3AsG80"; 
$json = $json = file_get_contents($url); 
$data = json_decode($json, true); 

date_default_timezone_set('Europe/London'); 

// Insert data into mysql 
$sql="INSERT INTO $tbl_name(citid, citname, rankpoints)VALUES('{$data['id']}', '{$data['name']}', '{$data['rank']['points']}')"; 
$result=mysql_query($sql); 

// if successfully insert data into database, displays message "Successful". 
if($result){ 
echo "Successful"; 
echo "<BR>"; 
echo "<a href='supplies_insert.php'>Back to main page</a>"; 
} 

else { 
echo "ERROR"; 
} 
+2

почему? зачем вставлять число в виде строки в базу данных? – luk2302

+0

Непонятно, в чем проблема. Каков тип данных столбца «rankpoints» в вашей таблице? Вы вставляете значение в этот столбец как значение символа (поскольку оно заключено в кавычки). – David

+0

@ luk2302 действительно имеет хороший момент. Вероятно, вы должны использовать 'number_format' * после * вы извлекаете данные * из * базы данных, а не вставляете их в базу данных. Таким образом, он может быть сохранен как целое или плавающее. – kuujo

ответ

1

Попробуйте это:

$query = sprintf("INSERT INTO `%s` (citid, citname, rankpoints) VALUES ('%s', '%s', '%s')", 
    mysql_real_escape_string($tbl_name), 
    $data['id'], 
    mysql_real_escape_string($data['name']}), 
    mysql_real_escape_string(number_format($data['rank']['points']))); 
$result = mysql_query($query); 
+0

спасибо, что это был soltuion, который я искал и работает так, как мне это нужно. –

0

Вы можете использовать функцию РНР number_format(), если я понимаю ваш требование правильно. Дайте мне знать, если вы этого не хотите.

+0

Мне нужно вставить number_format() для {$ data ['rank'] ['points']} not view –

+0

Я имею в виду, если вы хотите вставить его как отформатированный номер, вы можете сделать это в своем запросе на вставку, ($ data ['rank'] ['points']) – tornados