将MySQL中的多行存储在单独的变量中

问题描述:

我正在用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

我需要得到像$ 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