我正在做一个报告系统而且我有这个代码,我不知道为什么它会继续抛出这个错误
header('Access-Control-Allow-Origin: *');
$conn=mysql_connect($hostname,$username,$password);
mysql_select_db($database);
$where = "where 1=1 ";
if($_GET["desarrollo"] != 0)
$where .= " and satisfaccion_cliente.clave_desarrollo = ".mysql_real_escape_string($_GET["desarrollo"])." ";
if($_GET["del"] != "" && $_GET["al"] != "")
$where .= " and fecha_creacion between '".mysql_real_escape_string($_GET["del"])."' and '".mysql_real_escape_string($_GET["al"])."' ";
$sql = "SELECT COUNT (id_encuesta) as total, primer_apellido, segundo_apellido, nombres";
$sql .= "FROM satisfaccion_cliente";
$sql .= "INNER JOIN usuarios ON satisfaccion_cliente.clave_usuario = usuarios.clave_usuario";
$sql .= "INNER JOIN personas ON usuarios.id_persona = personas.id_persona";
$sql .= "INNER JOIN desarrollos ON desarrollos.clave_desarrollo = satisfaccion_cliente.clave_desarrollo";
$sql .= $where;
$sql .= "GROUP BY satisfaccion_cliente.clave_usuario";
$data = array();
$data["total"] = 0;
$data["data"] = array();
$resultado = mysql_query($sql);
while ($fila = mysql_fetch_assoc($resultado)) {
$data["total"] += $fila["total"];
$temp["nombre"] = utf8_encode($fila["nombres"]." ".$fila["primer_apellido"]." ".$fila["segundo_apellido"]);
$temp["total"] = $fila["total"];
$temp["color"] = $color[rand(0, 24)];
array_push($data["data"],$temp);
}
mysql_free_result($resultado);
mysql_close($conn);
echo json_encode($data);
我希望你能帮助我,谢谢你
答案 0 :(得分:0)
您收到此错误是因为mysql_query返回false。 SQL语句中存在错误。使用mysql_error找出错误。
$resultado = mysql_query($sql);
if(!$resultado) echo mysql_error();
while ($fila = mysql_fetch_assoc($resultado)) {
连接时缺少空格。添加空格,也许您的查询将无错运行
$sql = "SELECT COUNT (id_encuesta) as total, primer_apellido, segundo_apellido, nombres ";
$sql .= "FROM satisfaccion_cliente ";
$sql .= "INNER JOIN usuarios ON satisfaccion_cliente.clave_usuario = usuarios.clave_usuario ";
$sql .= "INNER JOIN personas ON usuarios.id_persona = personas.id_persona ";
$sql .= "INNER JOIN desarrollos ON desarrollos.clave_desarrollo = satisfaccion_cliente.clave_desarrollo ";
$sql .= $where;
$sql .= "GROUP BY satisfaccion_cliente.clave_usuario";
答案 1 :(得分:0)
我冒昧地改变了一堆伤害眼睛的东西(为了我自己的清晰和清醒)。我重写了你的代码,以摆脱看起来最可能的罪魁祸首
更正并重新格式化代码:
header('Access-Control-Allow-Origin: *');
$conn = mysql_connect($hostname,$username,$password);
mysql_select_db($database);
$where = array();
if($_GET['desarrollo'] !== '0') {
$where[] = 's.clave_desarrollo="'.mysql_real_escape_string($_GET["desarrollo"]).'"';
}
if($_GET['del'] !== '' && $_GET['al'] !== '') {
$where[] = sprintf('u.fecha_creacion BETWEEN "%s" AND "%s"',
mysql_real_escape_string($_GET['del']),
mysql_real_escape_string($_GET['al']));
}
$sql = 'SELECT COUNT (id_encuesta) as total, primer_apellido, segundo_apellido, nombres';
$sql .= ' FROM satisfaccion_cliente AS s';
$sql .= ' INNER JOIN usuarios AS u ON s.clave_usuario = u.clave_usuario';
$sql .= ' INNER JOIN personas AS p ON u.id_persona = p.id_persona';
$sql .= ' INNER JOIN desarrollos AS d ON d.clave_desarrollo = s.clave_desarrollo';
$sql .= $where ? ' WHERE '.implode(' AND ',$where) : '';
$sql .= ' GROUP BY s.clave_usuario';
$data = array();
$data['total'] = 0;
$data['data'] = array();
//if ($debug) echo __FILE__.' query: '.$sql.PHP_EOL;
$resultado = mysql_query($sql);
while ($fila = mysql_fetch_assoc($resultado)) {
$data['total'] += $fila['total'];
$temp['nombre'] = utf8_encode($fila['nombres'].' '.$fila['primer_apellido'].' '.$fila['segundo_apellido']);
$temp['total'] = $fila['total'];
//$color is currently undefined
$temp["color"] = $color[rand(0, 24)];
$data['data'][] = $temp;
}
mysql_free_result($resultado);
mysql_close($conn);
echo json_encode($data);
这显然是西班牙语,所以为了以防万一,我会非常清楚地为你准备
En tu sentencia sql hace falta muchos espacios,deberíasaadadiunalíneadeDesuracracónentu entorno de desarrollo para confirmar que tus sentencias son correctas。 Tambiéndeberíasinformartea traves de mysql_error()
y mysql_errno()
sihayalgúninrordurantelaejecucióndela sentencia sql。 Perdona que me haya tomado la libertad de reescribir grandes porciones detucódigo,lo hago para poder aclararme mejor