如果这是一个愚蠢的问题,请原谅我。我只有一周的编程时间......
我得到了我的获取错误"或者死了"第87行触发的声明(至少在我的编辑器中它是87,不知道它将如何显示在这里)。奇怪的是它仍然有效。接下来两行中的变量正在设置并正确回显。任何关于为什么会发生这种情况的想法将不胜感激感谢。
<?php
include 'header.php';
//$results_per_page=10;
//$count_results=mysql_query("SELECT COUNT('zipcodes') FROM jobposts");
//$page_results=$count_results;
//echo $count_results;
//if ($count_results%$results_per_page!=0)
//{
//$page_results+=1;
//}
/////// zip code search setup ///////////
$homezip=22102;
$radius=10;
$id=1;
$query="select longitude,latitude from zipcodes where zipcode='$homezip'";
$run_query=mysql_query($query) or die ("run query error");
$findzip2=mysql_fetch_array($run_query) or die ("test");
$homelong=$findzip2['longitude'] or die ("array error");
$homelat=$findzip2['latitude'] or die ("array error");
function calcDist($lat_A, $long_A, $lat_B, $long_B) {
$distance = sin(deg2rad($lat_A))
* sin(deg2rad($lat_B))
+ cos(deg2rad($lat_A))
* cos(deg2rad($lat_B))
* cos(deg2rad($long_A - $long_B));
$distance = (rad2deg(acos($distance))) * 69.09;
return $distance;
}
//////// end zip code search setup ////////////////
echo "<table border='1'>";
if (isset($_POST['search']))
{
$keywords=$_POST['keywords'];
$zipcode=$_POST['zipcode'];
if ($zipcode=="")
{
($zipcode_search="");
}
else
{
($zipcode_search=" and zipcode='$zipcode'");
}
if (!(isset($_POST['hidden'])))
{
$search = "select * from jobposts where description LIKE '%$keywords%' $zipcode_search";
$run_search=mysql_query($search) or die ("cannot run search");
//$zip_array=$main_array[''];
//echo count($zip_array)."<br>";
//echo $zip_array['zipcode'];
////store results in array
////pull zip codes out of array one at a time
////put the zip codes in the radius function - if statement
////if less than allowable radius - publish results
$count=0;
if (mysql_num_rows($run_search)>=1)
{
while ($query_rows=mysql_fetch_assoc($run_search))
{
$zip_array[$count]=($query_rows['zipcode']);
$zip_to_test=$zip_array[$count];
$testquery="select longitude,latitude from zipcodes where zipcode='$zip_to_test'";
$testrun_query=mysql_query($testquery) or die ("run query error");
$testfindzip2=mysql_fetch_assoc ($testrun_query) or die ("fetch error - testfindzip2");
$testlong=$testfindzip2['longitude'] or die ("array error");
$testlat=$testfindzip2['latitude'] or die ("array error");
$count++;
echo $testlong."<br>";
if (calcDist($homelat,$homelong,$testlat,$testlong)<$radius)
{
echo "<tr><td>".$query_rows['company']."</td><td>".$query_rows['zipcode']."</td></tr>";
}
}
}
else
{
echo "No results found.";
}
}
else
{
echo "Please submit search data before submitting.";
}
}
else
{
echo "Failed to submit search request.";
}
?>
答案 0 :(得分:3)
mysql函数只返回false,如果查询出错,会触发你的die():语法错误,没有连接,权限被拒绝等等......
不返回结果的查询不是错误条件,不会触发or die()
。空结果集是完全有效的结果集。
同样,
$var = $othervar or die();
没有任何意义,因为作业总会成功(除非你的内存不足或其他东西)。
答案 1 :(得分:0)
如果调用die
语句,脚本无法继续执行。我不相信魔法。所以,程序的输出是
...
fetch error - testfindzip2
...<br>
...
如果“是” - 你在php中发现了一些主要的错误。如果“不”,请在此处显示。