0

昨日、このコードについて質問を送信しましたが、別の問題に遭遇しました。また、エスケープなどにエラーがあると思われるので、どんな意見でも大歓迎です。

このページには、寄付できるアイテムが 2 つあります。必要なアイテムの数は、寄付されたものに基づいて変化し、データベースに保存されます。ただし、項目番号の 1 つだけが変更されています。コードは次のとおりです。

$amount_left = $db->query("SELECT required_items.name AS Name, required_items.required_amount - donations.donation_amount AS Amount_Left 
                            FROM required_items AS r JOIN donations AS d ON d.item_id=r.id");

// Print out the table tag and header
echo("<form name=\"donationForm\" action=\"" . $pageName ."\" method=\"POST\">\n<fieldset>");
echo("<table>\n");
echo("<tr>\n<th>Item Name</th><th>Amount</th>\n</tr>\n");

try{    
    // Round negative amounts to zero
    if($amount_left['Amount_Left'] < 0){
        $amount_left['Amount_Left'] = 0;
        }

        // Create a new table row
        echo("<tr>");
        // Create a new table cell for the name and required_amount fields
        echo("<td>" . $amount_left['Name'] . "</td>");
        echo("<td>" . $amount_left['Amount_Left'] . "</td>");
        echo("<td><input type=\"radio\" name=\"radioButtons\" value=\"". $row['id'] ."\"></input></td>");
        echo("</tr>\n");

} catch(PDOException $e) {
    // Catch all errors and print them out
    echo("Error: ");
    echo($e->getMessage());
}

// Close the table and create our submit button
echo("</table>\n<br>\n");
echo("<div>\n<label>Amount</label>\n<input type=\"number\" name=\"amount\">\n</div>\n");
echo("<div>\n<label>Email</label>\n<input type=\"email\" name=\"email\">\n</div>\n");
echo("<div>\n<label>Name</label>\n<input type=\"text\" name=\"name\">\n</div>\n");
echo("<div>\n<input type=\"submit\" name=\"donate\" value=\"Donate\" />\n</div>\n");
echo("</fieldset>\n</form>\n")

データベースには 2 つの必須アイテムが含まれています。1 つ目は数量 20 を要求し、2 つ目は数量 10 を要求します。2 つ目は、データベース内の寄付に基づいてその数を更新しません。

また、すべての html をエコーする利点はありますか? または、ウェブページに載せることはできますか?

編集:私の側で明確にするために、データベースにはrequired_items用と寄付用の2つのテーブルが含まれています。

required_items には次のものがあります: id、name、required_amount

寄付には: id、name、email、donation_amount、item_id があります

4

0 に答える 0