2012-04-29 56 views
0

我正在用PHP編寫一個Web應用程序,它將存儲員工數據並生成員工ID卡到PDF。我正在使用FPDF創建PDF,並且工作正常。我在顯示MySQL數據庫結果時遇到問題。將MySQL中的多行存儲在單獨的變量中

我必須用4個員工ID卡來生成PDF,我不確定如何從數據庫中獲取它們。到目前爲止,我在查詢中使用LIMIT選項來獲得只有4個結果,我將有一個基於mysql.php?id = 1 id的if語句,它將定義限制。這有點凌亂,但不會有超過80名員工。

這是我的代碼:

$id = $_GET['id']; 

if ($id == 1) { 
$limit_start = 0; 
$limit_end = 4; 
} 

$result=mysql_query("SELECT users.tajemnik, users.dateCreated, users.showmeID,  
users.workerName, users.dateCreated, users.workerPlace, users.workerSID, uploads.userID, uploads.data, uploads.filetype 
FROM users INNER JOIN uploads ON users.showmeID = uploads.userID ORDER BY workerName DESC LIMIT $limit_start, $limit_end") or die (mysql_error()); 
mysql_query("SET NAMES 'utf8'") or die('Spojení se nezdařilo'); 

while($row = mysql_fetch_array($result)){ 

$workerName = $row["workerName"]; 
$workerPlace = $row["workerPlace"]; 
$workerSID = $row["workerSID"]; 
$tajemnik = $row["tajemnik"]; 
$showmeID = $row["showmeID"]; 
$mysqldatetime = strtotime($row['dateCreated']); 
$image = $row["data"]; 

$phpdatetime = date("d.m.Y",$mysqldatetime); 

} 

這將讓我從查詢的第一個結果。我需要從所有4行中獲取信息,並將它們存儲在像$ workerName1,$ workerName2等變量中。我希望這有助於我正在嘗試做什麼。

謝謝你的回覆! 五

+0

環比,或訪問單一的價值觀你只是想先取4個筆記嗎?如果是這樣,「限制4」就足夠了。 – Leri 2012-04-29 10:49:00

+1

請停止使用古老的'mysql_ *'函數編寫新代碼。他們不再被維護,社區已經開始[棄用流程](http://news.php.net/php.internals/53799)。相反,您應該瞭解準備好的語句並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/mysqli)。如果你關心學習,[這裏是一個很好的PDO相關教程](http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers)。 – 2012-04-29 11:02:30

+0

@Truth感謝您的閱讀,我當然很在意並且想要學習新東西! :) – Vojtech 2012-04-29 13:02:44

回答

0

我需要得到像$ workerName1,$ workerName2變量等

不,你不知道。
你實際上需要一個數組。

因此,首先,讓自己的功能

function sqlArr($sql){ 
    $ret = array(); 
    $res = mysql_query($sql) or trigger_error(mysql_error()." ".$sql); 
    if ($res) { 
    while($row = mysql_fetch_array($res)){ 
     $ret[] = $row; 
    } 
    } 
    return $ret; 
} 

然後編寫代碼

mysql_query("SET NAMES 'utf8'") or die('Spojení se nezdařilo'); 
$sql = "SELECT users.tajemnik, users.dateCreated, users.showmeID, users.workerName, 
       users.dateCreated, users.workerPlace, users.workerSID, uploads.userID, 
       uploads.data, uploads.filetype 
     FROM users 
     INNER JOIN uploads ON users.showmeID = uploads.userID 
     ORDER BY workerName DESC LIMIT $limit_start, $limit_end"; 
$data = sqlArr($sql); 

現在你有$data陣列中的所有數據。
所以,你可以像

echo $data[0]['tajemnik']; 

foreach($data as $row) { 
    //do whatever you want with database row 
    echo $row['tajemnik']; 
} 
+0

謝謝!完美的作品。我希望能有一個解決方案!再次感謝! – Vojtech 2012-04-29 13:03:33