你理解的差不多,這種一般用不低于三個(gè)表實(shí)現(xiàn)。
10年積累的成都網(wǎng)站制作、成都網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有科爾沁左翼免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
城市表:城市信息
新聞表:應(yīng)該有一個(gè)字段for_all_city,默認(rèn)值0,可設(shè)為1,當(dāng)為1的時(shí)候這個(gè)新聞需要檢查表三,保證它不會(huì)在表三中再次出現(xiàn)
新聞城市從屬關(guān)系表:新聞編號(hào),城市編號(hào)
以上設(shè)計(jì)是因?yàn)榭紤]有時(shí)候新聞可能同時(shí)發(fā)布到多個(gè)城市考慮的,當(dāng)根據(jù)城市選擇新聞時(shí),應(yīng)選擇城市編號(hào)對(duì)應(yīng)或者新聞的for_all_city為1的新聞。
調(diào)用第三方接口。
返回信息如:城市id和自己數(shù)據(jù)庫(kù)中城市id不一樣,城市名稱可以通過address對(duì)|符號(hào)分隔成數(shù)組取[2]獲得,然后模糊查詢自己數(shù)據(jù)庫(kù)的城市id。
首先你需要去申請(qǐng)一個(gè)map api的授權(quán)域名key,map api逆經(jīng)緯度接口為:
關(guān)鍵詞(如廣東深圳)key=申請(qǐng)的APIKEYsensor=falseoutput=xmloe=utf8
請(qǐng)求下來的數(shù)據(jù)時(shí)kml的數(shù)據(jù)格式,怎樣解析呢?我們可以使用xml的方式來進(jìn)行解析,可能參考下面的php代碼,代碼來自于wp的一個(gè)插件第一個(gè)函數(shù)是xml2array(),這個(gè)函數(shù)的作用就是把xml轉(zhuǎn)換為數(shù)組便于操作參數(shù)$url為請(qǐng)求的xml地址,返回的是一個(gè)xml轉(zhuǎn)換成的數(shù)組。
require?'city.php';
//?連接數(shù)據(jù)庫(kù)(PDO)
$pdo=new?PDO('mysql:host=localhost;dbname=city','root','root');
$pdo-exec('set?names?utf8');
$pdo-setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE,PDO::FETCH_ASSOC);
//?實(shí)例化城市類
$c=new?city();
$result=$c-mycity();
$city_id?=?0;
foreach?($result?as?$k=$value)?{
if(count($value)?==?count($value,1)){
$sql="insert?into?city_province?(province)?value?('{$value['province_name']}')";
$smt=$pdo-prepare($sql);
$smt-execute();
}else{
$sql11="insert?into?city_province?(province)?value?('{$value['province_name']}')";
$smt11=$pdo-prepare($sql11);
$smt11-execute();
foreach?($value['city']?as?$v=$value1)?{
$sql2="insert?into?city_name?(name,province_id)?values?('{$value1['city_name']}','{$k}')";
$smt2=$pdo-prepare($sql2);
$smt2-execute();
$city_id?+=?1;
echo?$city_id.'br';
if(!empty($value1['area'])){
foreach?($value1['area']?as?$valu1e2)?{
$sql3="insert?into?city_area?(area,city_id)?values?('{$valu1e2}','{$city_id}')";
$smt3=$pdo-prepare($sql3);
$smt3-execute();
}
}
}
}
}
城市類太大了,發(fā)不了。
我是把省、市、地區(qū)分別存在三個(gè)數(shù)據(jù)表中(我是新手,剛自己寫的)