1

フォームに保存している SQL DB からデータを取得しています。更新ページがありますが、ユーザーが変更したい内容に応じてテーブルを更新し、データベースを更新する方法がわかりません。

これが私の言いたいことです。クエリを実行した後、次の出力があるとします。

Product  | Descption  | Quantity   | Price   | StartDate  | End Date
chcolates   xyz           2.0         4.99     2013-03-11    2013-03-20      
sweets      yum!          1.0         1.99     2013-03-15    2013-03-27

したがって、これはデータベースをキューに入れることにより、php のテーブルとして出力されています (つまり、この売り手は、言及された 2 つの製品を販売しています)。

たとえば、ユーザーが最初の行を更新して数量を変更したいとします。では、どうすればこれを行うことができますか?SQL QUERY UPDATE TABLE 販売者の WHERE ?? を使用できることはわかっています。

テーブルまたはフォームを出力する必要がありますか? ユーザーは、任意の行と任意のフィールドを更新できます。(つまり、販売したい製品、descp、数量などを更新できます)

どうすればこのようなことをすることができますか?アイデアはありますか?

====編集====== みんなの提案に感謝します。フォーマット エラーがあります。私は自分のphpタグの中にいて、クエリを実行した後:

while($rows = mysql_fetch_assoc($querySellers)){
echo 'Product:'.'<br />'.'<input type="text" value = $rows[\'ProductName\']>';

これはDBからのクエリの値を出力していないようで、代わりに出力します

$rows['ProductName']

テキスト ボックス内では、これはフォーマット エラーですよね? これを解決するにはどうすればよいですか? また、最初はproductNameはドロップダウンコンボボックスです...クエリを実行すると、出力がSELECTEDコンボボックスオプションとして表示されるようにする方法はありますか?

もう一度ありがとう。

4

2 に答える 2

2

あなたがすべき最善のことは、テーブル内のアイテムにID列(自動インクリメントかもしれませんか?)またはいくつかの一意の識別子( )を実装することです。Primary Keyこのようにすると、1つのアイテムを簡単に編集できます。

UPDATE table SET value = 'value' WHERE id = $id

あなたの場合、一意の識別子がないためWHERE、すべてを含めるために大きなステートメントを作成する必要があります。

WHERE Product = 'chocolates' AND Description = 'xyz' AND .. AND..

これは完全に一意ではない場合があります。

編集:(編集に関して)問題は、PHPが一重引用符と二重引用符をどのように処理するかです。PHPは変数を一重引用符で評価しませんが、二重引用符で評価します。

$myvar = "value";
echo '$myvar'; // output: $myvar
echo "$myvar"; // output: value 

だからあなたはあなたの構造を変える必要があります

echo "Product: <br /> <input type=\"text\" value = \"{$rows['ProductName']}\">";

一重引用符が二重引用符に変更され、二重引用符がエスケープされていることに注意してください。選択したオプションに関する質問について。どちらが選択されているかを判断し、オプションに属性をIF追加するコードを含むステートメントを追加する方法が必要です。Selected

于 2013-03-12T16:16:23.347 に答える
0

nullではなく、自動インクリームする主キーを持つIDが必要です。それから

UPDATE `your_db_table`.`column_table` SET `Product` 
= 'Sweet Stuff' WHERE 'Product`.`prod_id` = 1 LIMIT 1;

その後、残りの部分は@UnholyRangerによって明確に説明されます

于 2013-03-12T16:31:29.820 に答える