PHP與SQL資料庫資料顯示與連結的問題

Jinwei wrote:
你"一層"的房客應該不會到一百間吧~~XD

噗....事實上有耶....哈哈...
大約是在80到100"間"的矩陣.....

json回來的資料還可以再做查詢嗎?
json, xml等是一種結構化的資料

我的sample網站裡面的js有一個load function
url: "loaddata.php",
type: "POST",
data: {"build": v_build, "floor": v_floor},
dataType: "json",
success: function(Jdata) { <---取得資料成功就把資料放jdata
for (var i = 0; i < Jdata.length; i++) { <---迴圈拿資料
//拼html顯示用而已
var tmpdiv = "";
tmpdiv += "住戶 : "+Jdata[i].username+"
";
tmpdiv += "入住日 : "+Jdata[i].checkdate+"
";
tmpdiv += "房租 : "+Jdata[i].price+"
";
$("#room_div_"+Jdata[i].room).html(tmpdiv);
$("#room_div_"+Jdata[i].room).attr('class','userdiv');
}
}

功能就是去跟loaddata.php拿回某棟大樓某一層的所有房間資料回來
取回之後, jdata這個變數裡面就是放了所有這層的住戶資訊, 也就是房間資訊
我再透過for迴圈去把每個房間的資料取出來用
只要你的頁面沒有reload, 你就能隨時再把jdata拿來用
但要注意全域變數跟區域變數的問題就是了~~

loaddata.php 範例
因為我有一些自己的mysql class, 所以只是給你看一下我的寫法跟邏輯而已
是很簡單的一支程式
$build = $_POST["build"]; //大樓
$floor = $_POST["floor"]; //樓層

//query取出樓層所有房客資料
$sql = "select * from roomer where build='$build' and floor=$floor";
$sql .= " order by room asc";

if($result = $db->sql_query($sql)){
if($db->sql_numrows($result)>0){
while($row = $db->sql_fetchrow($result)){
$data[] = $row; //把每間資料丟進data陣列變數
}

echo json_encode($data); //直接轉成json格式return
}else{
echo "[]";
}
}

php這都是很初階的code, js那邊當初反而搞的比較搞剛xd

http://test.jin.tw/room/room.zip <--完整程式碼跟mysql db dump給你參考~~
因為是那個下午邊看你需求邊寫的所以沒有做什麼深入的構思, 都是想到啥補啥
所以程式可能比較雜亂~~你就盡力的看吧 :p
https://jin.tw

Jinwei wrote:
var tmpdiv = "";
tmpdiv += "住戶 : "+Jdata[i].username+"
";
tmpdiv += "入住日 : "+Jdata[i].checkdate+"
";
tmpdiv += "房租 : "+Jdata[i].price+"
";
$("#room_div_"+Jdata[i].room).html(tmpdiv);
$("#room_div_"+Jdata[i].room).attr('class','userdiv');
}
}

是的,我有偷拿這一段來使用,改成$i<100來建立比較大的矩陣。
我有想要用像是EXCEL那樣標示座標(A1,B5,C3...),還在想要怎麼做就是了。

我覺得比較有趣的是大大的load與edit的function都是去向loaddata.php要資料。我後來是直接寫兩份,一份查build及floor,另一份查build、floor及roomid。不過我有想到這樣設計可能可以把兩份合成一份: $build=$_POST['build'];
$floor=$_POST['floor'];
if (isset($_POST['roomid'])){
$roomid=$_POST['roomid'];
$qry="SELECT * FROM table WHERE build=$build AND floor=$floor AND roomid=$roomid";}
else{
$qry="SELECT * FROM table WHERE build=$build AND floor=$floor";}
$result=mysql_query($qry,$data);
$row=mysql_fetch_array($result);
$list=array("name" => $row['pname'],"age"=>$row['age'],"price"=>$row['rent price']);
echo json_encode($list);

是說還沒試過能不能用就是了。
Jinwei wrote:
功能就是去跟loaddata.php拿回某棟大樓某一層的所有房間資料回來
取回之後, jdata這個變數裡面就是放了所有這層的住戶資訊, 也就是房間資訊
我再透過for迴圈去把每個房間的資料取出來用

了解,那麼例如我想從return回來的json中再查比如32歲的有誰或誰脽谁,這樣是可行的嗎?

Jinwei wrote:
http://test.jin.tw/room/room.zip <--完整程式碼跟mysql db dump給你參考~~
因為是那個下午邊看你需求邊寫的所以沒有做什麼深入的構思, 都是想到啥補啥
所以程式可能比較雜亂~~你就盡力的看吧 :p

多謝,您幫了大忙了。
>>我有想要用像是EXCEL那樣標示座標(A1,B5,C3...),還在想要怎麼做就是了。
你可以找javascript 二維陣列去看看, 不要用excel的概念去想~~邏輯很容易卡住

>>我覺得比較有趣的是大大的load與edit的function都是去向loaddata.php要資料。我後來是直..
其實我的loaddata.php就是寫在一起

>>例如我想從return回來的json中再查比如32歲的有誰或誰脽谁,這樣是可行的嗎
一樣是要靠迴圈跑一次整個資料
然後寫判斷, 符合條件的就顯示, 其他就不管
https://jin.tw
文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!