本文目錄一覽:
- 1、php從資料庫取值後做成一個數組類型的隨機數
- 2、php中如何將mysql資料庫的內容返回到一個二維數組
- 3、php $row = mysql_fetch_array($result) 返回一個數組
- 4、php查詢的資料庫的時候,得到的是一個數組類型的數據,數組中有空的數據,怎麼讓空的數組刪除?
php從資料庫取值後做成一個數組類型的隨機數
從你的表述,我的分析是:你的資料庫有30條左右的數據行,每次全部都查出來(需要一個二維數組,這樣便於管理),每一行數據有3個欄位,你需要的結果是,當頁面刷新的時候,每次隨即顯示7條數據。代碼如下:
?php
// 連接資料庫
$link = mysql_connect(‘主機名’, ‘用戶名’, ‘密碼’);
// SQL查詢語句,條件WHERE如果沒有可以不加,不需要LIMIT,全部查出來
$sql = “SELECT `欄位1`, `欄位2`, `欄位3` FROM `表名` WHERE `條件`;”;
// 執行SQL語句,獲取查詢結果集
$result = mysql_query($sql, $link);
// 循環遍歷結果集 用意是為了構建二維數組,不懂不要緊用了就明白,雙!!號是為了將while循環中表達式的值強制轉換成布爾值,便於判斷,可以不加,我習慣加上
while (!!$assoc = mysql_fetch_assoc($result)) {//以關聯數組的方式解析結果集
$data[] = $assoc; // 將解析的結果放入數組中,創建一個二維數組
}
// 初始化一個數組,下面要用到,是用來存放隨即7個數組的下標的
$keys = array();
// 寫一個自定義函數,需要用到遞歸演算法
function get_key($keys, $data) {
// 這裡用到了一個隨即數字函數mt_rand()而不是rand(),因為前者是後者的加強版,個人比較喜歡前者,當然用後者在這裡也是完全可以的,根據自己的喜好來定
if (!in_array($key = mt_rand(0, count($data) – 1), $keys)) {
// 說明沒有重複,接收
return $key;
} else { // 說明重複繼續遞歸
return get_key($keys, $data);
}
}
// 使用for循環隨即讀取數據中的7條數據,當然用foreach也可以,根據自己的喜好來定
for ($i = 0; $i 7; $i ++) {// 這裡比較複雜的就是需要7條不同的數據,不能相同
// 獲取不同的7條數據的下標
$keys[] = get_key($keys, $data);
}
// 7個不同數據的下標有了,接下來就是遍曆數據了,用foreach
foreach ($keys as $key) {
echo ‘欄位1:’ . $data[$key][‘欄位1’];
echo ‘p /’;
echo ‘欄位2:’ . $data[$key][‘欄位2’];
echo ‘p /’;
echo ‘欄位3:’ . $data[$key][‘欄位3’];
echo ‘p /’;
}
// 問題解決,這只是一種解決方案,當然還有其他很多種,最後記得關閉資料庫和銷毀結果集
mysql_free_result($reuslt); // 銷毀結果集
mysql_close($link)// 關閉資料庫
// 銷毀變數
unset($result);
unset($link);
?
希望我的方案,能夠幫你解決問題,如果還有任何問題或疑惑歡迎追問~
php中如何將mysql資料庫的內容返回到一個二維數組
進入php源程序目錄中的ext目錄中,這裡存放著各個擴展模塊的源代碼,選擇你需要的模塊,比如curl模塊:cd curl
執行phpize生成編譯文件,phpize在PHP安裝目錄的bin目錄下
/usr/local/php5/bin/phpize
運行時,可能會報錯:Cannot find autoconf. Please check your autoconf installation and
the $PHP_AUTOCONF
environment variable is set correctly and then rerun this
script.,需要安裝autoconf:
yum install autoconf(RedHat或者CentOS)、apt-get install
autoconf(Ubuntu Linux)
/usr/local/php5/bin/php -v
執行這個命令時,php會去檢查配置文件是否正確,如果有配置錯誤,
這裡會報錯,可以根據錯誤信息去排查!
php $row = mysql_fetch_array($result) 返回一個數組
親,如果你的返回結果集不是一條記錄的話,需要循環獲得,你直接while($row
=
$mysql_fetch_array($result)){
$data[]=$row;
}
就行了。
php查詢的資料庫的時候,得到的是一個數組類型的數據,數組中有空的數據,怎麼讓空的數組刪除?
不行,兩個是完全不同的結構
如果硬把數組,比如{1,2,3,4,5}存入資料庫
唯一的方法是把”1,2,3,4,5″當作varchar存進去。
所以只能遍歷這個數組然後分別吧1,2,3,4,5存進去。
當然,java框架也許會提供類似的方法,你傳一個數組進去,他直接就抱存入資料庫。但是內部也一定是拆開存的。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/201312.html