ibmak47 2012-08-29 17:07
浏览 448
已采纳

请问,为什么无法把变量循环输入数据库中呢,是SQL语句错误还是程序嵌套问题?

[code="java"]<?php
$con = mysql_connect("localhost","root","5555555551");
//mysql_query("SET NAMES 'UTF-8'");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("zuobiao",$con); //选择数据库
for ($i=1;$i<=5;$i++){
$x= mysql_query("select x,y from t1 order by DrugSId asc limit 1,$i");
$rs = mysql_fetch_array($x);
$cc=$rs['y'].",".$rs['x'];
//echo $cc."
";
$url="https://maps.googleapis.com/maps/api/place/search/json?language=zh-CN&location=$cc&&radius=500&sensor=false&key=AIzaSyCxLAQfEbXSARI3UD7_Nkj0WbVvQqnQuX0";
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$body=curl_exec($curl);
curl_close($curl);
$place=json_decode($body,true);
foreach ($place as $b){

           foreach((array)$b as $c){
          if(!is_array($c))
             continue;
               $d=$c['name'].",";
                //echo $d; 
                 $sql=mysql_query("insert into t1(keywords) values ('$d')");
                 // echo $sql
               // or  die ('SLQ Syntax error '.mysql_error());                     
                if ($d == null){
         continue;}
     }
 }  

}
?>

[/code]
数据库结构如下

[img]http://dl.iteye.com/upload/attachment/0073/0323/41ad7c14-c43d-3877-9bcc-6603a329135f.jpg[/img]

如果直接输出$d,是正常的,可以获得一串地名,但是如果插入数据库就只能获得一串地名中的一项.请问哪个地方写错了,如何修改?
为方便各位高手调试,给出1-5之内的数据

[img]http://dl.iteye.com/upload/attachment/0073/0340/f7b747fd-9bf0-3a2b-bc77-e3298e7f7a71.jpg[/img]

  • 写回答

3条回答 默认 最新

  • jinnianshilongnian 2012-08-29 19:32
    关注

    你是不是需要这样的功能;

    1、首先根据x 和 y 到google 那边查 数据,如果查出来是多个区域[a,b,c],则更新到数据库时是a,b,c

    2、因此你需要更新x 和 y的keywords功能 而不是插入,可以参考下面语句:
    2.1、首先拿到所有keywords 通过“,”拼起来;
    2.2、执行update

    [code="java"]在 $cc=$rs['y'].",".$rs['x']; 定义

    $xx = $rs['x'];
    $yy = $rs['y'];

    foreach ($place as $b){

    $d = "";
    foreach((array)$b as $c){

    if(!is_array($c))

    continue;

    if($d != "") {
    $d = ",".$d;
    }
    $d=$d.$c['name'];

    }

    $sql=mysql_query("update t1 set keywords = '$d' where x='$xx' and y='$yy'");

    } [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)