Forum Moderators: coopster

Message Too Old, No Replies

problem uploading values from form to sql table

update php html form sql table fields

         

alexba

7:14 pm on Feb 3, 2009 (gmt 0)

10+ Year Member



Hi, I know this has been asked here many times (and I've searched for an answer here a lot), but every solution I've seen has used coding different that what I have... and I'm not a very good programmer.

The problem: I'm using phpbb based coding to create a simple data-display > edit > update-data process; I've been able to get my sql data to display, but my attempts to get that data (the original stored values or my edited values) to be re-updated don't work - the process uploads blank fields.

I took a pre-existing administrator's display of auction data and turned it into a admin-manageable form field (there are about 18 columns of data - text fields, number fields, checkboxes). Each row is a separate auction offer, and at the end of the row I added a text link which triggers a "mode" to update all the fields of that row.

for reference, that text link is this (below) which appears further down in my PHP code:


'U_ADMIN_OFFER_EDIT' => append_sid("admin_auction_offer.$phpEx?mode=admin_offer_edit&" . POST_AUCTION_OFFER_URL . "=" . $offer_rowset[$i]['PK_auction_offer_id'] . ""),

That display does does display the data, but when I click the link to upload the related row of fields back into the table, it uploads totally blank fields and so overwrites existing data with blank data.

Help!

1. My form template coding:


<h1>{L_ADMIN_OFFER}</h1>
<P>{L_ADMIN_OFFER_EXPLAIN}</p>
<br>
<br>
<table>
<tr>
<td>
<a href="{U_AUCTION_OFFER_SORT_JUST_NOT_PAID}" class="gensmall">{L_AUCTION_OFFER_SORT_JUST_NOT_PAID}</a><br>
<a href="{U_AUCTION_OFFER_SORT_JUST_PAID}" class="gensmall">{L_AUCTION_OFFER_SORT_JUST_PAID}</a><br>
</td>
</tr>
</table>
<br>
<form enctype="multipart/form-data" method="post" action="{S_ADMIN_OFFER_EDIT}">
<table cellspacing="1" cellpadding="4" border="0" align="center" class="forumline" width="200%">
<tr>
<td class="row1" align="center">{L_AUCTION_OFFER_ID}</td>
<td class="row1" align="center"><a href="{U_AUCTION_OFFER_SORT_TITLE}" class="gensmall">{L_AUCTION_OFFER_TITLE}</a></td>
<td class="row1" align="center">{L_AUCTION_OFFER_PRICE_START}</td>
<td class="row1" align="center">{L_AUCTION_OFFER_RESERVE_FACTOR}</td>
<td class="row1" align="center">{L_AUCTION_OFFER_DIRECT_SELL}</td>
<td class="row1" align="center">{L_AUCTION_OFFER_SHIPPING_PRICE}</td>
<td class="row1" align="center"><a href="{U_AUCTION_OFFER_SORT_PAID}" class="gensmall">{L_AUCTION_OFFER_PAID}</a></td>
<td class="row1" align="center">{L_AUCTION_OFFER_MARK_PAID}</td>
<td class="row1" align="center"><a href="{U_AUCTION_OFFER_SORT_USERNAME}" class="gensmall">{L_AUCTION_OFFER_OFFERER}</a></td>
<td class="row1" align="center">{L_AUCTION_OFFER_VIEWS}</td>
<td class="row1" align="center">{L_AUCTION_OFFER_PICTURE}</td>
<td class="row1" align="center">{L_AUCTION_OFFER_SPECIAL}</td>
<td class="row1" align="center">{L_AUCTION_OFFER_BOLD}</td>
<td class="row1" align="center">{L_AUCTION_OFFER_ON_TOP}</td>
<td class="row1" align="center">{L_AUCTION_OFFER_SELL_ON_FIRST}</td>
<td class="row1" align="center"><a href="{U_AUCTION_OFFER_SORT_TIME}" class="gensmall">{L_AUCTION_OFFER_TIME_STOP}</a></td>
<td class="row1" align="center">{L_AUCTION_OFFER_DELETE}</td>
<td class="row1" align="center">{L_AUCTION_OFFER_TEXT}</td>
<td class="row1" align="center">{L_AUCTION_OFFER_ADMINS_UNCENSORED_TEXT}</td>
<td class="row1" align="center">{L_AUCTION_OFFER_COMMENT}</td>
<td class="row1" align="center">{L_ADMIN_AUCTION_OFFER_FIELD_EDIT}</td>
</tr>
<!-- BEGIN no_offer -->
<tr>
<td class="row1" align="center" colspan="21">{no_offer.L_NO_OFFER}</td>
</tr>
<!-- END no_offer -->
<!-- BEGIN offer -->
<tr>
<td class="row2"><a href="{offer.U_AUCTION_OFFER_VIEW}" target="_blank" class="gensmall">{offer.AUCTION_OFFER_ID}</a></td>
<td class="row2" align="center"><textarea rows="2" cols="30" class="post" type="text" name="auction_offer_title" maxlength="255" size="255" />{offer.AUCTION_OFFER_TITLE}</textarea></td>
<td class="row2" align="center"><input type="text" class="post" name="auction_offer_price_start" size="10" maxlength="10" value="{offer.AUCTION_OFFER_PRICE_START}" /></td>
<td class="row2" align="center"><input type="text" class="post" name="auction_offer_reserve_factor" size="10" maxlength="10" value="{offer.AUCTION_OFFER_RESERVE_FACTOR}" /></td>
<td class="row2" align="center"><input type="text" class="post" name="auction_offer_direct_sell_price" size="10" maxlength="10" value="{offer.AUCTION_OFFER_DIRECT_SELL_PRICE}" /></td>
<td class="row2" align="center"><input type="text" class="post" name="auction_offer_shipping_price" size="10" maxlength="10" value="{offer.AUCTION_OFFER_SHIPPING_PRICE}" /></td>
<td class="row2" align="center">{offer.AUCTION_OFFER_PAID}</td>
<td class="row2"><a href="{offer.U_AUCTION_OFFER_MARK_PAID}" class="gensmall">{offer.L_AUCTION_OFFER_MARK_PAID}</a></td>
<td class="row2" align="center">{offer.AUCTION_OFFER_OFFERER}</td>
<td class="row2" align="center">{offer.AUCTION_OFFER_VIEWS}</td>
<td class="row2" align="center">{offer.AUCTION_OFFER_PICTURE}</td>
<td class="row2" align="center"><input type="checkbox" name="offer_special" value="1" {offer.AUCTION_OFFER_SPECIAL_CHECKED}/></td>
<td class="row2" align="center"><input type="checkbox" name="offer_bold" value="1" {offer.AUCTION_OFFER_BOLD_CHECKED} /></td>
<td class="row2" align="center"><input type="checkbox" name="offer_on_top" value="1" {offer.AUCTION_OFFER_ON_TOP_CHECKED} /></td>
<td class="row2" align="center">{offer.AUCTION_OFFER_SELL_ON_FIRST}</td>
<td class="row2">{offer.AUCTION_OFFER_TIME_END}</td>
<td class="row2"><a href="{offer.U_AUCTION_OFFER_DELETE}" class="gensmall">{L_AUCTION_OFFER_DELETE}</a></td>
<td class="row2" align="center"><textarea rows="2" cols="40" class="post" type="text" name="auction_offer_text" maxlength="255" size="255" />{offer.AUCTION_OFFER_TEXT}</textarea></td>
<td class="row2" align="center"><textarea rows="2" cols="40" class="post" type="text" name="auction_offer_admins_uncensored_text" maxlength="200" size="200" />{offer.AUCTION_OFFER_ADMINS_UNCENSORED_TEXT}</textarea></td>
<td class="row2" align="center"><textarea rows="2" cols="40" class="post" type="text" name="auction_offer_comment" maxlength="255" size="255" />{offer.AUCTION_OFFER_COMMENT}</textarea></td>
<td class="row2"><a href="{offer.U_ADMIN_OFFER_EDIT}" class="gensmall">{L_ADMIN_AUCTION_OFFER_FIELD_EDIT}</a></td>
</tr>
<!-- END offer -->
</table>
</form>
<br>
<br>

2. My PHP (shortened, to show how the data is SELECTed, displayed in template, and my attempt to get the data UPDATEd):


// START Grab all the offer-data
$sql = "SELECT t.*,
u.username,
u.user_id,
u2.username as maxbidder_user_name,
u2.user_id as maxbidder_user_id,
i.pic_id,
acc.auction_account_auction_amount,
acc.auction_account_amount_paid
FROM (" . AUCTION_OFFER_TABLE . " t
LEFT JOIN " . USERS_TABLE . " u ON u.user_id = t.FK_auction_offer_user_id
LEFT JOIN " . USERS_TABLE . " u2 ON u2.user_id = t.FK_auction_offer_last_bid_user_id
LEFT JOIN " . AUCTION_IMAGE_TABLE . " i ON t.pk_auction_offer_id=i.pic_auction_id
LEFT JOIN " . AUCTION_ACCOUNT_TABLE . " acc ON t.pk_auction_offer_id=acc.fk_auction_offer_id)
ORDER BY t.auction_offer_time_stop;";

// MY ATTEMPTED UPDATE CYCLE
if ( $mode == "admin_offer_edit" )
{
$total_offers = 0;
while( $row = $db->sql_fetchrow($result) )
{
$offer_rowset[] = $row;
$total_offers++;
} // while
$db->sql_freeresult($result);
$offer_id = ( isset($HTTP_GET_VARS[POST_AUCTION_OFFER_URL]) ) ? $HTTP_GET_VARS[POST_AUCTION_OFFER_URL] : $HTTP_POST_VARS[POST_AUCTION_OFFER_URL];
$sql = "UPDATE " . AUCTION_OFFER_TABLE . "
SET auction_offer_title = " . $auction_offer_title . ",
auction_offer_text = " . $auction_offer_text . ",
auction_offer_admins_uncensored_text = " . $auction_offer_admins_uncensored_text . ",
auction_offer_comment = " . $auction_offer_comment . ",
auction_offer_price_start = " . $auction_offer_price_start . ", auction_offer_reserve_factor = " . $auction_offer_reserve_factor . ", auction_offer_direct_sell_price = " . $auction_offer_direct_sell_price . ",
auction_offer_shipping_price = " . $auction_offer_shipping_price . ",
auction_offer_special = " . $auction_offer_special . ",
auction_offer_on_top = " . $auction_offer_on_top . ",
auction_offer_bold = " . $auction_offer_bold . "
WHERE PK_auction_offer_id='" . $offer_id . "'";

//TEMPLATE DISPLAY:
$template->assign_block_vars('offer', array(
'L_AUCTION_OFFER_MARK_PAID' => $mark,
'U_AUCTION_OFFER_MARK_PAID' => $u_mark,

'AUCTION_OFFER_TITLE' => $offer_rowset[$i]['auction_offer_title'],
'AUCTION_OFFER_ID' => $offer_rowset[$i]['PK_auction_offer_id'],
'AUCTION_OFFER_OFFERER' => $offer_rowset[$i]['username'],
'AUCTION_OFFER_VIEWS' => $offer_rowset[$i]['auction_offer_views'],
'AUCTION_OFFER_PRICE_START' => $offer_rowset[$i]['auction_offer_price_start'],
'AUCTION_OFFER_RESERVE_FACTOR' => $offer_rowset[$i]['auction_offer_reserve_factor'],
'AUCTION_OFFER_DIRECT_SELL_PRICE' => $offer_rowset[$i]['auction_offer_direct_sell_price'],
'AUCTION_OFFER_SHIPPING_PRICE' => $offer_rowset[$i]['auction_offer_shipping_price'],
'U_ADMIN_OFFER_EDIT' => append_sid("admin_auction_offer.$phpEx?mode=admin_offer_edit&" . POST_AUCTION_OFFER_URL . "=" . $offer_rowset[$i]['PK_auction_offer_id'] . ""),
'AUCTION_OFFER_ON_TOP_CHECKED' => ( $offer_rowset[$i]['auction_offer_on_top']) ? "checked=\"checked\"" : "",
'AUCTION_OFFER_SPECIAL_CHECKED' => ( $offer_rowset[$i]['auction_offer_special']) ? "checked=\"checked\"" : "",
'AUCTION_OFFER_PICTURE' => ( $offer_rowset[$i]['pic_id'] ) ? "X" : "",
'AUCTION_OFFER_SELL_ON_FIRST' => ( $offer_rowset[$i]['auction_offer_direct_sell_price']<>0 ) ? "X" : "",
'AUCTION_OFFER_PAID' => $paid,
'AUCTION_OFFER_TIME_END' => create_date("m/d/Y - h:i:s", $offer_rowset[$i]['auction_offer_time_stop'], $board_config['board_timezone']),
'AUCTION_OFFER_TEXT' => $offer_rowset[$i]['auction_offer_text'],
'AUCTION_OFFER_ADMINS_UNCENSORED_TEXT' => $offer_rowset[$i]['auction_offer_admins_uncensored_text'],
'AUCTION_OFFER_COMMENT' => $offer_rowset[$i]['auction_offer_comment'],

'COUPON_USER_CREATED' => $coupon_rowset[$i]['coupon_creator'],
'COUPON_DATE_USED' => ( $coupon_rowset[$i]['auction_coupon_date_used']>0 ) ? create_date("m/d/Y - h:i:s", $coupon_rowset[$i]['auction_coupon_date_used'], $board_config['board_timezone']) : $lang['coupon_not_used'],
'COUPON_USER_USED' => ( $coupon_rowset[$i]['coupon_user']<>"" ) ? $coupon_rowset[$i]['coupon_user'] : $lang['coupon_not_used'],

'U_AUCTION_OFFER_VIEW' => append_sid("../auction_offer_view.$phpEx?" . POST_AUCTION_OFFER_URL . "=" . $offer_rowset[$i]['PK_auction_offer_id']),
'U_AUCTION_OFFER_DELETE' => append_sid("admin_auction_offer.$phpEx?" . POST_AUCTION_OFFER_URL . "=" . $offer_rowset[$i]['PK_auction_offer_id'] . "&mode=delete")));
} // for
} // if
$template->assign_vars(array(
'L_ADMIN_OFFER' => $lang['offer_admin'],
'L_AUCTION_OFFER_ID' => $lang['auction_offer_id'],
'L_ADMIN_OFFER_EXPLAIN' => $lang['offer_admin_explain'],
'L_AUCTION_OFFER_TITLE' => $lang['auction_offer_title'],
'L_AUCTION_OFFER_TIME_STOP' => $lang['auction_offer_time_stop'],
'L_AUCTION_OFFER_PAID' => $lang['auction_offer_paid_status'],
'L_AUCTION_OFFER_ON_TOP' => $lang['auction_offer_on_top_short'],
'L_AUCTION_OFFER_PICTURE' => $lang['auction_offer_picture_short'],
'L_AUCTION_OFFER_PRICE_START' => $lang['auction_offer_price_start_short'],
'L_AUCTION_OFFER_RESERVE_FACTOR' => $lang['auction_offer_reserve_factor_short'],
'L_AUCTION_OFFER_DIRECT_SELL' => $lang['auction_offer_direct_sell_short'],
'L_AUCTION_OFFER_SHIPPING_PRICE' => $lang['auction_offer_shipping_price_short'],
'L_AUCTION_OFFER_VIEWS' => $lang['auction_offer_views_short'],
'L_AUCTION_OFFER_SPECIAL' => $lang['auction_offer_special_short'],
'L_AUCTION_OFFER_BOLD' => $lang['auction_offer_bold_short'],
'L_AUCTION_OFFER_SELL_ON_FIRST' => $lang['auction_offer_sell_on_comment_short'],
'L_AUCTION_OFFER_OFFERER' => $lang['auction_offer_offerer'],
'L_AUCTION_OFFER_DELETE' => $lang['auction_offer_delete'],
'L_AUCTION_OFFER_MARK_PAID' => $lang['auction_offer_function'],
'L_AUCTION_OFFER_DELETE' => $lang['auction_offer_delete'],
'L_AUCTION_OFFER_SORT_JUST_PAID' => $lang['auction_offer_sort_just_paid'],
'L_AUCTION_OFFER_SORT_JUST_NOT_PAID' => $lang['auction_offer_sort_just_not_paid'],
'L_ADMIN_AUCTION_OFFER_FIELD_EDIT' => $lang['admin_auction_offer_field_edit'],
'L_AUCTION_OFFER_TEXT' => $lang['auction_offer_text_short'],
'L_AUCTION_OFFER_ADMINS_UNCENSORED_TEXT' => $lang['auction_offer_admins_uncensored_text_short'],
'L_AUCTION_OFFER_COMMENT' => $lang['auction_offer_comment_short2'],

'L_COUPON_USER_CREATED' => $lang['coupon_user_created'],
'L_COUPON_DATE_USED' => $lang['coupon_date_used'],
'L_COUPNG_USER_USED'=> $lang['coupon_user_used'],
'L_COUPON_CREATE' => $lang['coupon_create'],
'L_CHOOSE_COUPON_TYPE' => $lang['coupon_choose_type'],

'S_AUCTION_COUPON_ACTION' => append_sid("admin_auction_coupon.$phpEx?mode=create"),

'COUPON_LIST_DD' => $coupon_list_dd,
'U_AUCTION_OFFER_SORT_TITLE' => append_sid("admin_auction_offer.$phpEx?sort=title"),
'U_AUCTION_OFFER_SORT_USERNAME' => append_sid("admin_auction_offer.$phpEx?sort=username"),
'U_AUCTION_OFFER_SORT_PAID' => append_sid("admin_auction_offer.$phpEx?sort=paid"),
'U_AUCTION_OFFER_SORT_JUST_PAID' => append_sid("admin_auction_offer.$phpEx?sort=just_paid"),
'U_AUCTION_OFFER_SORT_JUST_NOT_PAID' => append_sid("admin_auction_offer.$phpEx?sort=just_not_paid"),
'U_AUCTION_OFFER_SORT_TIME' => append_sid("admin_auction_offer.$phpEx")));

$template->pparse("body");
include('./page_footer_admin.'.$phpEx);

alexba

7:26 pm on Feb 3, 2009 (gmt 0)

10+ Year Member



(couldn't "edit" so I'm adding another post):

Forgot to mention, the one thing that is ID'd fine when I try UPDATing is the "offer_id" (WHERE PK_auction_offer_id='" . $offer_id . "'"; ) - only that value gets passed.

whoisgregg

11:23 pm on Feb 7, 2009 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



Welcome to WebmasterWorld, alexba!

Did you get any response from the support forums for phpbb?

Although the WebmasterWorld members who frequent the PHP forum have experience with a wide assortment of PHP programs, the best first stop for a specific program is always that particular program's support forum.

alexba

4:55 pm on Feb 8, 2009 (gmt 0)

10+ Year Member



Hi, thanks for replying.

Yes, I started there but got no reply and then phpbb's website went down due to a hacker.

The site which created the mod I'm modifying doesn't have active support, such that I was left searching the net for a solution and/or posting for help.

My impression is that mine is purely a PHP/logic problem - I'm missing some stage just before I "update" values into an sql table, but I don't know how to write the code for those variables.

Any help would be greatly appreciated!