이전에 이런 질문을했지만 이제는 더 나은 테스트를 실행하고 문제가 무엇인지 분석하려고했습니다.INSERT 문은 한 번만 작동합니다.
//start ajax request here//
$.post('purchaseitem.php',{itemAmount:itemAmount, itemId:itemId}, function(data){
$('.savestatus_'+itemId).text(data);
});
//end it here
나는 사용자가 수량을 입력하고 구매를 클릭 할 수 있도록하기 위해 AHREF 링크 및 입력 필드와 함께 항목 테이블의 모든 항목을 밖으로 에코 : 이것은 아약스 요청입니다.
<?php
$shop_query = mysql_query("SELECT * FROM sector0_item WHERE item_location = '$chapter'");
while(($shop_row = mysql_fetch_array($shop_query))){
$itemid = $shop_row['item_id'];
$item_name = $shop_row['item_name'];
$item_price = $shop_row['item_price'];
?>
<div class = "item_name"><?php echo $item_name; ?></div>
<div class = "item_price"><?php echo $item_price; ?></div>
<input type = 'text' class = "purchaseAmount_<?php echo $itemid;?>" name = "purchaseAmount" />
<a id = "purchaseButton_<?php echo $itemid; ?>" href = "prevent default();" class = "purchase_button" onclick = "buy(); return false;">Buy</a>
<div class = 'savestatus_<?php echo $itemid; ?>'></div>
<hr /><br />
<?php
}
?>
이
내 코드의 테스트 버전이기 때문에, 나는 그것이 ... 는 PHP 부분을 엉망 것을 알고 :$user_inventory_query = mysql_query("SELECT * FROM sector0_inventory WHERE id = '$dbid' AND item_id = '$item_id'");
$checking_item_inventory = mysql_num_rows($user_inventory_query);
if($checking_item_inventory === 0){
/*^*/ $insertion_into_inventory = mysql_query("INSERT INTO `sector0_inventory`(`id`, `item_id`, `username`, `item_name`, `quantity`) VALUES ('$dbid','$item_id','$dbuser','$item_name','$purchase_amount')");
if($insertion_into_inventory === true){
mysql_query("UPDATE sector0_players SET cash = cash-'$total_cost' WHERE id = '$dbid'");
echo "Purchase complete";
}
}else if ($checking_item_inventory === 1){
$update_inventory_quantities = mysql_query("UPDATE sector0_inventory SET quantity = quantity+'$purchase_amount' WHERE id = '$dbid' AND item_id = '$item_id'");
if($update_inventory_quantities===true) {
mysql_query("UPDATE sector0_players SET cash = cash-'$total_cost' WHERE id = '$dbid'");
echo "Purchase complete, quantity updated.";
}
}
위의 쿼리입니다./^/부분은 실패한 부분입니다. 테이블을 자르고 구매를 클릭하면 삽입이 성공적으로 완료됩니다. 그러나 다른 항목의 경우 삽입이 실패합니다. 그것은 PHP 다, 나는 정말로 혼란 스럽다. 삽입 및 업데이트에 상대 테이블
CREATE TABLE `sector0_inventory` (
`id` bigint(20) NOT NULL COMMENT 'The input in this field will be php code exclusive. No increment allowed.',
`item_id` bigint(20) NOT NULL COMMENT 'The input is also code exclusive',
`username` varchar(250) NOT NULL COMMENT 'This value will be used to search for the user inventory information. Admin privileges only',
`item_name` varchar(250) NOT NULL COMMENT 'This value will be used to identify (user side) the item. It will be used by admins to query out when a removal of a specific item is needed',
`quantity` bigint(20) NOT NULL COMMENT 'This value will be 0 by default BIG int is to allow calculations',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
를 모든 데이터를 잃게됩니다
는주 내가 사용자 입력 변수의 모든 종류를 살균하는 매우 하드 코딩 된 사용자 정의 기능을 가지고 ... 당신이 그 변수를 소독 –
희망 :) –