2012-04-29 16 views
0

私は、PHPで従業員データを保存し、従業員IDカードをPDFに生成するWebアプリケーションをPHPで作成しています。私はPDFの作成にFPDFを使用しています。 MySQLデータベースの結果を表示する際に問題が発生しています。MySQLから複数の行を別々の変数に保存する

私は4つの従業員IDカードでPDFを生成する必要があり、データベースから取得する方法がわかりません。今のところ私は4つの結果を取得するためにクエリでLIMITオプションを使用しているし、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などの変数に格納する必要があります。私がしようとしていることが意味をなさないことを願っています。

あなたの返信ありがとうございます! V.

+0

のような、それ以上のループまたはアクセス単一の値は、あなたは、単に最初の4枚のメモを取るしたいができますか?もしそうなら、 'LIMIT 4 'で十分です。 – Leri

+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)。 –

+0

@Truthが読んでくれてありがとう、私は確かに気にして、新しいものを学びたい! :) – Vojtech

答えて

0

私はいや、そうでない$ workerName2など

、$ workerName1のような変数を取得する必要があります。
実際には配列が必要です。

ので、まず、自分自身の機能

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; 
} 

は、今、あなたは$data配列にすべてのデータを持っているコード

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); 

を書きます。
それで、あなたは

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

または

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

ありがとう!完璧に動作します。私は解決策があることを望んでいた!再度、感謝します! – Vojtech

関連する問題