-1

別のフィールドの値に基づいてフィールドをエコーするにはどうすればよいですか?私のスクリプトがどういうわけか私が欲しいものを教えてくれることを願っています。

$sth = $conn->prepare("SELECT * FROM table WHERE item = '$item'");
$sth->execute();
$row = $sth->fetch(PDO::FETCH_ASSOC);

echo ($row['amount'] WHERE $row['currency'] = 'USD');

通貨がデータフィールドとしてどのように表示されるかをここで確認できます

これは私があなたのアイデアから作成したスクリプトです。しかし、それがこれほど愚かでなければならないことは私にはまだ意味がありません。無視できる$pdfの一番下のスクリプト。

foreach($conn->query("SELECT amount FROM stockpricetable WHERE itemrelation = '$row[itemnumber]'") as $row2) {
    if ($row2['exchange'] == '') { $DKK = $row2['amount'];}
    if ($row2['exchange'] == 'CHF') { $CHF = $row2['amount'];}
    if ($row2['exchange'] == 'EUR') { $EUR = $row2['amount'];}
    if ($row2['exchange'] == 'GBP') { $GBP = $row2['amount'];}
    if ($row2['exchange'] == 'SEK') { $SEK = $row2['amount'];}
    if ($row2['exchange'] == 'USD') { $USD = $row2['amount'];}
}
    $pdf->Text(26, 4, 'DKK'.$DKK);
    $pdf->Text(26, 8, 'EUR'.$EUR);
    $pdf->Text(26, 12, 'GBP'.$GBP);
    $pdf->Text(46, 4, 'SEK'.$SEK);
    $pdf->Text(46, 8, 'CHF'.$CHF);
    $pdf->Text(46, 12, 'USD'.$USD);
4

3 に答える 3

1

結果全体をトラバースするのは問題ですか?

while ($row = $sth->fetch(PDO::FETCH_ASSOC)) {
   if ($row["currency"] == "USD") echo $row["amount"];
} 
于 2012-11-26T17:08:46.080 に答える
1

試す:

while ($row = $sth->fetch(PDO::FETCH_ASSOC)) {
 if (strstr($row["amount"], 'USD) !== FALSE) 
   echo $row["amount"];
} 
于 2012-11-26T17:13:30.787 に答える
0

次のような場合です。

$sth = $conn->prepare("SELECT * FROM table WHERE item = '$item'");
$sth->execute();
while ($row = $sth->fetch(PDO::FETCH_ASSOC)) {

if ($row['currency'] == 'USD') {
    echo $row['amount'];
}

これは、ifステートメントの上のコードがデータベースの結果を正しくフェッチすることを前提としていますが、恥ずかしそうに言うことはできませんが、非推奨のmysql_*関数を使用しています。

于 2012-11-26T17:09:35.870 に答える