わかりました。質問は、サイト 702web.com/tutors でカスタム ジオロケーションを行っていることです。
ホームページ検索は行っておりませんので、検索は内ページをご利用ください。
ユーザーが郵便番号を入力せず、件名がすべてのチューターを表示するようにセットアップし、郵便番号が入力されていない場所にセットアップし、サブジェクトを選択すると、そのサブジェクトを教えるすべてのチューターが表示されます。郵便番号が入力され、ユーザーが選択すると、その郵便番号の任意のチューターが表示されます.4番目と最後のユーザーが郵便番号と主題を入力すると、その主題とその郵便番号を教えるすべてのチューターが表示されます.
そのようにするのは簡単ですが、3 番目と 4 番目を少し複雑にするために、ユーザーが入力した郵便番号から半径 40 マイル以内にあるすべての郵便番号を選択します (すべての郵便番号と緯度と経度の表を使用)。 )。その半径内のすべての郵便番号の検索が機能しています。
私の質問はこれ です 配列を使用してそのデータベースにクエリを実行する方法は? その半径内のすべての郵便番号は配列に入れられているため、SELECT ステートメントを使用して "SELECT * FROM wp_testimonials WHERE postcode = '".$THIS IS MY ARRAY??"' AND find_in_set( '".$_REQUEST ['件名']."'、件名)"
結果ページのコード
<?php
if(isset($_REQUEST['send']) OR !empty($_REQUEST['zipcode'])) {
if(!preg_match('/^[0-9]{5}$/', $_REQUEST['zipcode'])) {
include('search_page.php');
}
else {
//connect to db server; select database
$link = mysql_connect('t0tors102938.db.7131821.hostedresource.com', 't0tors102938', 'aL8#Jfo89!') or die('Cannot connect to database server');
mysql_select_db('t0tors102938') or die('Cannot select database');
//query for coordinates of provided ZIP Code
if(!$rs = mysql_query("SELECT * FROM wp_us_zipcodes WHERE zip_code = '$_REQUEST[zipcode]'")) {
echo "<p><strong>There was a database error attempting to retrieve your ZIP Code.</strong> Please try again.</p>\n";
}
else {
if(mysql_num_rows($rs) == 0) {
echo "<p><strong>No database match for provided ZIP Code.</strong> Please enter a new ZIP Code.</p>\n";
}
else {
//if found, set variables
$row = mysql_fetch_array($rs);
$lat1 = $row['latitude'];
$lon1 = $row['longitude'];
$d = 40;
$r = 3959;
//compute max and min latitudes / longitudes for search square
$latN = rad2deg(asin(sin(deg2rad($lat1)) * cos($d / $r) + cos(deg2rad($lat1)) * sin($d / $r) * cos(deg2rad(0))));
$latS = rad2deg(asin(sin(deg2rad($lat1)) * cos($d / $r) + cos(deg2rad($lat1)) * sin($d / $r) * cos(deg2rad(180))));
$lonE = rad2deg(deg2rad($lon1) + atan2(sin(deg2rad(90)) * sin($d / $r) * cos(deg2rad($lat1)), cos($d / $r) - sin(deg2rad($lat1)) * sin(deg2rad($latN))));
$lonW = rad2deg(deg2rad($lon1) + atan2(sin(deg2rad(270)) * sin($d / $r) * cos(deg2rad($lat1)), cos($d / $r) - sin(deg2rad($lat1)) * sin(deg2rad($latN))));
//find all coordinates within the search square's area
//exclude the starting point and any empty city values
$query = "SELECT * FROM wp_us_zipcodes WHERE (latitude <= $latN AND latitude >= $latS AND longitude <= $lonE AND longitude >= $lonW) AND city != '' ORDER BY state, city, latitude, longitude";
if(!$rs = mysql_query($query)) {
echo "<p><strong>There was an error selecting nearby ZIP Codes from the database.</strong></p>\n";
}
elseif(mysql_num_rows($rs) == 0) {
echo "<p><strong>No nearby ZIP Codes located within the distance specified.</strong> Please try a different distance.</p>\n";
}
else {
//output all matches to screen
while($row = mysql_fetch_array($rs)) {
foreach($row['zip_code'] as $rows) {
$queryzipcodes[] = $rows;
}
}
$sqlzip = implode(',',$queryzipcodes);
echo "$queryzipcodes";
//echo 'ok';
if($_REQUEST['subject']!='' && $_REQUEST['zipcode']!='')
{
$sql="SELECT * FROM wp_testimonials WHERE postcode IN ($sqlzip) AND find_in_set( '".$_REQUEST['subject']."', subject )";
}elseif($_REQUEST['subject']!='') {
$sql="SELECT * FROM wp_testimonials WHERE find_in_set( '".$_REQUEST['subject']."', subject )";
}
elseif($_REQUEST['zipcode']!='') {
$sql="SELECT * FROM wp_testimonials WHERE postcode = '".$_REQUEST['zipcode']."'";
}
else
{
$sql="SELECT * FROM wp_testimonials";
}
//echo $sql;
$tutors = $wpdb->get_results($sql);
$count = 0;
print('<br>');
foreach ($tutors as $tutor)
{
$odd = $count%2;
if ($odd == 1)
{
$bgcolor='#fafafa';
}elseif ($odd == 0)
{
$bgcolor='#f0f0f0';
}
$sql3="SELECT sfimgurl FROM wp_testimonials WHERE testid='".$tutor->testid."'";
$res3=mysql_query($sql3);
$data3=mysql_fetch_assoc($res3);
$blogurl = get_bloginfo('wpurl');
$imgsrc = '/wp-content/uploads/';
$tutorimg = $data3['sfimgurl'];
print('<table width="100%" style="border-radius: 10px;" bgcolor="'.$bgcolor.'">');
print('<tr height="145px"><td width="110px" style="padding: 10px 5px 10px 10px; vertical-align: top; "><div style="height:145px; overflow:hidden; float: left; padding-right: 10px; border: dotted; border-width: 0 1px 0 0"><img src="'.$blogurl.'' .$imgsrc.'' .$tutorimg.'" width="100" height="145" />');
print('</div></td>');
print('<td valign="top" width="150px" style="float:left; padding-left: 5px; padding-top:5px;"><div style="float: left; font-size:12px;"><strong>TUTOR:<br><a href="?page_id=175&tid=' .$tutor->testid. '">'.$tutor->clientname.'</a><br></strong><br>');
$subj=$tutor->subject;
$arrr_subject=explode(',', $subj);
for($i=0;$i<3;$i++) {
//$i<count($arrr_subject)
$sql2="select * from wp_tutorcat WHERE subid='".$arrr_subject[$i]."'";
$res2=mysql_query($sql2);
$data2=mysql_fetch_assoc($res2);
$subject2 = (strlen($data2['subject']) > 20) ? substr($data2['subject'],0,17).'...' : $data2['subject'];
echo $subject2.'<br>';
}
//print('<br> '.$tutor->text_full.'<br/><br/>');
print('<br><strong>Zip Code: '.$tutor->postcode.'</strong></div></td>');
print('<td width="350px" style="padding-left:10px; padding-top: 5px; vertical-align: top; border: dotted; border-width: 0 0 0 1px;"><div style="float: left; font-size: 12px; position: relative; padding-right: 5px; ">');
$idnum=$tutor->testid;
//$bio=$data['text_full'];
$sql3="SELECT text_full FROM wp_testimonials WHERE testid='".$idnum."'";
$res3=mysql_query($sql3);
$data3=mysql_fetch_assoc($res3);
$ses = "'s";
$bio = (strlen($data3['text_full']) > 103) ? substr($data3['text_full'],0,100).'...' : $data3['text_full'];
echo '<strong>BIO:</strong>
<br>'.$bio.'<br></div>';
print('<div align="center"><p style="text-align: center;"><span class="bk-button-wrapper"><a href="?page_id=175&tid=' .$tutor->testid. '" target="_self" class="bk-button red center rounded small" style="margin-top: 15px;">View '.$tutor->clientname.''. $ses . ' Profile</a></span></p></div>');
print('</td></tr></table>');
$count++;
}
}
}
}
}
}
?>