其實(shí)很簡單,你要抓住一點(diǎn):mysql_fetch_row,mysql_fetch_array這樣的函數(shù),會在執(zhí)行一次之后,把指針往后推移一次。你下面成功的代碼中,mysql_fetch_row用的同一個資源句柄作為參數(shù),while里面執(zhí)行了一次,推移一次指針,if里面再執(zhí)行的時候,就會是后面一條記錄了。但是,你失敗的代碼里,$Query,$SQuery并不是同一個資源句柄,第一次執(zhí)行推移$Query,而不是$SQuery.懂了么?
為相山等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及相山網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站制作、成都網(wǎng)站設(shè)計、相山網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
你這樣的數(shù)組結(jié)構(gòu)肯定是不行的,每次都只會遍歷一個元素,除非你是個二維數(shù)組,二維數(shù)組里面是兩個元素,這樣才可以,比如說
$arr?=?[[1,2],[3,4]];
foreach?($arr?as?$key?=?$value)?{
echo?$arr[$key][0];
echo?$arr[$key][1];
}
結(jié)果已經(jīng)有了,我就說下這句話的區(qū)別
mysql_select_db,字面上就能理解,選擇數(shù)據(jù)庫
去PHP手冊中可以發(fā)現(xiàn)該函數(shù)的返回值是bool,也就是布爾值
bool mysql_select_db ( string $database_name [, resource $ link_identifier ] )
只是確定操作是否成功
$result = mysql_query($sql, $link); // 執(zhí)行查詢語句
是執(zhí)行查詢語句,這時返回的是
resource mysql_query ( string $query [, resource $link_identifier ] )
資源符號,通過var_dump($result)可以看到該變量的類型,不是數(shù)組
隨后通過mysql_fetch_array($result);獲取實(shí)際查詢語句所能獲取的數(shù)據(jù)
每次操作,返回一行數(shù)據(jù)
該操作會變相的移動該資源的指針,PHP的概念里面沒有指針,但需要知道該函數(shù)可以多次執(zhí)行
概念和foreach一致
所以通過
while ($bookInfo = mysql_fetch_array($result)){
}
可以獲取所有的行數(shù)據(jù)
如果沒有數(shù)據(jù)會返回false,所以while會自動停止循環(huán)
//查看數(shù)組這里有2個函數(shù)
print_r 和 var_dump
其中var_dump會輸出數(shù)組值的數(shù)據(jù)類型。
你試一試使用
var_dump($rq);
或者
print_r($rq);
如果格式不是很好看,在上面的語句前面加上
echo "pre";
這樣數(shù)組就能按格式輸出,方便查看。
var_dump — 打印變量的相關(guān)信息
此函數(shù)顯示關(guān)于一個或多個表達(dá)式的結(jié)構(gòu)信息,包括表達(dá)式的類型與值。數(shù)組將遞歸展開值,通過縮進(jìn)顯示其結(jié)構(gòu)。
例如:
?php
$a = array(1, 2, array("a", "b", "c"));
var_dump($a);
?
輸出:
array(3) {
[0]= int(1)
[1]= int(2)
[2]= array(3) {
[0]= string(1) "a"
[1]= string(1) "b"
[2]= string(1) "c"
}
}
$conn=?mysqli_connect($DbIP,$DbUserName,$DbPwd,$DbName);//數(shù)據(jù)庫地址,用戶名,密碼,數(shù)據(jù)庫名
$name?=?'123';
$sql?=?"SELECT?name?FROM?order?WHERE??name?='".$name."'";
$res?=?mysqli_query($conn,$sql);//也可以直接用?$res?=?mysqli_query($sql);
$arr?=?array();
if($res??is_object($res)){
while($row=mysql_fetch_assoc($res)){
$arr[]?=?$row;
}
}
print_r($arr);