Maison  >  Article  >  développement back-end  >  appcan开发提示错误syntax error, unexpected ']', expecting T_STRING or T_VARIABLE or T_

appcan开发提示错误syntax error, unexpected ']', expecting T_STRING or T_VARIABLE or T_

WBOY
WBOYoriginal
2016-06-20 12:54:531744parcourir
1server.php
date_default_timezone_set("Asia/Shanghai");
header("Content-Type: text/html; charset=utf-8");
require_once("Config.php");
?>


 $request = $_GET['jsoncallback']; 

//sql查询语句
$sql = "SELECT Id,Bookname,Pubdate,Author FROM td_book where tid=".$Id.";
$query = mysql_query($sql);
//给Json数组赋值
while($row=mysql_fetch_array($query))
{
$demoData[]=array( 
'tid'=>'$row['Id']',
'subject'=>$row['Bookname'],
'dateline'=>$row['Pubdate'],
'author'=>$row['Author'],
);
}

//让Json支持中文UTF-8编码
class Json{

    public static function encode($str){

        $code = json_encode($str);

        return preg_replace("#\\\u(([0-9a-f]+?){4})#ie", "iconv('UCS-2', 'UTF-8', pack('H4', '\\1'))", $code);

    }

    public static function decode($str){

        return json_decode($str);

    }

}

//json数据返回客户端
echo $request.'('.json_encode($demoData).')'; 
//关闭数据库
exit;
?>

2页面html
nbsp;html>

  
     <br>     
    
    
    
    
    
    
    
    
    

    <script></script>
<script></script>
    <script></script>
    <script></script>
  





  
 



 

     

 


<script></script>
<script></script>
<script></script>
<script> <br /> zy_init(); <br /> window.uexOnload=function(type) <br /> { <br /> if(!type){ <br /> } <br /> getBookList(); <br /> } <br /> <br /> </script>


3book.js

/**
 * 客户端与服务器端数据交互示例
 * 
 * 
 */

/**
 * 服务器地址
 */
var bookHost = "http://localhost:1000/server.php?jsoncallback=?";

/**
 * js端base64实例化
 */
var b64 = new Base64();


/**
 * 网络请求中转函数
 * 
 * @param {Object} url  服务器请求地址
 * @param {Object} callback     回调函数
 */
function xmlHttp(url,callback){
    if(url == ''){
        uexWindow.alert('参数错误','请求地址不能为空!','返回');
    }else{
        $.getJSON(url,callback);
    }
}

/**
 * 获取帖子列表
 */
function  getBookList(){
    uexWindow.toast("1","5","数据加载中…","0");
    
    var url = bookHost;
    xmlHttp(url,showList);
}

/**
 * 回调函数,用于处理服务器端返回的帖子数据,显示在客户端上
 * @param {Object} items    服务器端返回的json数据
 */
function showList(items){
    var forumObj = $("#book_list");
    forumObj.html('');
    
    for(var i in items){
        var item = items[i];
        
        var tr = '';
        var trHeader = '
';
        var trTitle = '
'+b64.decode(item.subject)+'
';
        var trOtherInfo = '
'+b64.decode(item.dateline)+' '+b64.decode(item.author)+'
';
        var trFooter = '
';
        tr = trHeader+trTitle+trOtherInfo+trFooter;
        forumObj.append(tr);
    }
    uexWindow.closeToast();
}



提示错误
Parse error: syntax error, unexpected ']', expecting T_STRING or T_VARIABLE or T_NUM_STRING in D:\WWW\server.php on line 17

求解!!!
我想显示的结果是


回复讨论(解决方案)

这个问题我搞了好几天,我是菜鸟,求各位指点一下

$sql = "SELECT Id,Bookname,Pubdate,Author FROM td_book where tid=".$Id.";

'tid'=>'$row['Id']',

$sql = "SELECT Id,Bookname,Pubdate,Author FROM td_book where tid=".$Id.";

'tid'=>'$row['Id']',



大神,改哪?

 $sql = "SELECT Id,Bookname,Pubdate,Author FROM td_book where tid=".$Id.";


 $sql = "SELECT Id,Bookname,Pubdate,Author FROM td_book where tid=".$Id.";



没改动啊,哪里有问题呢



有人说是类型转换错误,但要怎么改动?

第一处:
$sql = "SELECT Id,Bookname,Pubdate,Author FROM td_book where tid=".$Id. ";
最后是一个双引号,显然是不合语法的,因为除了在引号中,引号必须成对出现
现在你把他的伴侣拐跑了,他就要让你哭了

第二处:
'tid'=> '$row['Id'] ',
单引号中的单引号和双引号中的双引号,都必须转义,否则 php 不知道引号括起了什么
单引号中的变量不会被取值,显然你这也不符合业务需求

版主大人,又出现这种问题了
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in D:\WWW\server.php on line 16

//sql查询语句

$sql = "SELECT Id,Bookname,Pubdate,Author FROM td_book where tid=".$Id."";
$query = mysql_query($sql);
//给Json数组赋值
while($row = mysql_fetch_array($query))
{
$demoData[]=array( 
"tid"=>$row['Id'],
"subject"=>$row['Bookname'],
"dateline"=>$row['Pubdate'],
"author"=>$row['Author'],
);
}

加了一个if(is_resource($query)){},运行为null
什么意思,数据库里面明明有数据的

我真的快哭了

$query = mysql_query($sql)  or die(mysql_error()) ;
就看到哪儿不对了

No database selected

$mysql_server_name = "localhost";
$mysql_username = "root";
$mysql_password = "123456";
DEFINE('mysql_database','tyshichang');
$mysqldb = mysql_connect($mysql_server_name,$mysql_username,$mysql_password);
DEFINE('conn',$mysqldb);
mysql_query('set names utf8');
if(!conn){
  echo ('{"Status":"not db"}');
  };
?>

上面是Config.php

server.php
date_default_timezone_set("Asia/Shanghai");
header("Content-Type: text/html; charset=utf-8");
require_once("Config.php");
?>

怎么会没链接呢

No database selected 没有选择数据库
在你的 Config.php 中并没有看到 mysq_select_db 函数的使用

你没选择数据库,少了mysql_select_db("tyshichang"); 这一句。

可以了,但是显示页面有乱码

我知道为什么有乱码了,改好了,太感谢你们了

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn