使用phpMyAdmin并运行以下查询,我得到19个寄存器:
SELECT * FROM trayecto tr, lugar lu WHERE idAeropuerto = '3' AND tr.idLugar = lu.idLugar GROUP BY tr.idAeropuerto, tr.idLugar ORDER BY lu.nombre
但在网站上运行此查询获取数据throw和PHP调用我只获得18个寄存器(所有这些寄存器,但最后一个在数据库中输入)。
$q=$_GET["q"];
include('init_bd.php');
$selectLugaresDeAeropuerto="SELECT * FROM trayecto tr, lugar lu WHERE idAeropuerto = '".$q."' AND tr.idLugar = lu.idLugar GROUP BY tr.idAeropuerto, tr.idLugar ORDER BY lu.nombre";
$resultLugaresDeAeropuerto = mysql_query($selectLugaresDeAeropuerto) or die('Consulta fallida: ' . mysql_error());
echo "<SELECT SIZE='1' NAME='Lugar'>";
while($row = mysql_fetch_array($resultLugaresDeAeropuerto))
{
printf("<OPTION VALUE=%s>%s</OPTION>", $row["idLugar"], $row["nombre"]);
}
echo " </SELECT>";
mysql_free_result($resultLugaresDeAeropuerto);
include('close_bd.php');
您可以执行此PHP以查看结果: http://www.transferbus.com/bd/getLugar.php?q=3
我有一个MySQL数据库,其中包含以下表格和结构:
TRAYECTO
idAeropuerto - int(8)
idLugar - int(8)
idTipoTransporte - int(8)
precio - double
tiempo - varchar(5)
distancia - varchar(5)
LUGAR
idLugar - int(8) - auto_increment
nombre - varchar(40)
知道为什么我会在同样的查询中获得不同的结果吗?
答案 0 :(得分:0)
在PHP脚本中,您将数字3作为字符串查询(带引号)虽然您将表定义为int(8)。
str(3)与int(3)
不同除此之外:请在互联网上阅读有关SQL注入的内容。 将$ _GET ['q']直接传递给数据库服务器并不是很聪明!
答案 1 :(得分:0)
您正在连接两个不同的数据库。如果您需要有关连接到正确数据库的帮助,请与您的Web提供商联系。