2012-04-27 8 views
-5

私は電子商取引のウェブサイトプロジェクトを持って、ここに詳細です、それは私がそれを修正することはできませんわずかな問題です。私は2つのテーブルを最初のテーブルの項目と呼ばれ、2番目のテーブルはカートです。ここで 値はスイッチのステートメントを入力しません

<?php 
// Script Error Reporting 
error_reporting(E_ALL); 
ini_set('display_errors', '1'); 
?> 
<html> 
<head> 
<title> Cart Page </title> 
</head> 
<body> 
<?php 
include "function.php"; 
ConnectToDb(); 
$id= $_GET['id']; 
$action = $_REQUEST['action']; 
$action=(isset($_GET['action']) && $_GET['action'] != '') ? $_GET['action'] : 'view'; 

switch($action){ 
case "add": 
{$sql=mysql_query("SELECT * FROM items WHERE itemId='$id'"); 
$row=mysql_fetch_array($sql); 
$itemPrice= $row["itemPrice"]; 
$itemName= $row["itemName"]; 
$quanty=$row["qty"]; 

$query="insert into cart values('1',".$_GET[id].",1,".$itemPrice.",".$itemName.")"; 
$result=mysql_query($query); 
header("location:cart.php? action=show "); 
echo "Item Was Added"; 
break; 
} 
case "remove": 
{ 
$query="delete from cart where itemId=".$_GET['id']; 
$result = mysql_query($query); 
header("location:cart.php?action=show"); 
} 

case "update": 
{ 
$query="update cart set". $quanty = $_POST['quantity']."where itemId=".$_GET['id']; 
$result = mysql_query($query); 
header("location:cart.php?action=show"); 
break; 
} 
case "show_update": 
{ 
$result = mysql_query("select * from cart"); 
$uid=$row["uid"]; 
$itemId= $row["itemId"]; 
$qty=$row["qty"]; 
$itemPrice= $row["itemPrice"]; 
$itemName= $row["itemName"]; 
while($row = mysql_fetch_array($result)) 
{ if ($itemId == $id) 
    { 
      $totalCost =0; 
      $query = "select * from cart inner join items on cart.itemId= items.itemId";  
      $result = mysql_query($query); 
      echo "<table width ='100%' border ='1'>"; 
      while($row = mysql_fetch_array($result)) 
      {$totalCost += ($qty * $itemPrice); 
      echo "<tr>"; 
      echo "<td>"; echo $itemName;  echo "</td>"; 
      echo "<td> SR"; echo $itemPrice; echo "</td>"; 
      echo "<td> <input type ='text' name='quantity' value=".$qty."</td>"; 
      echo'<td width="23%"><a href="cart.php?action=update&id='.$itemId.'">save</a></td>'; 
      echo'<td width="23%"><a href="cart.php?action=remove&id='.$itemId.'">Remove</a></td>'; 
      echo"</tr>";} 
      // Increment the total cost of all items 
      $totalCost += ($row["qty"] * $row["itemPrice"]); 
      echo "<tr> <td colspan='2'> <a href='products.php'>Keep Shopping</a></td>"; 
      echo "<td colspan='2'> <b>Total: SR".$totalCost."</b></td></tr>"; 
      echo "</table>"; 
      } 
     else{ 
      $totalCost =0; 
      $query2 = "select * from cart inner join items on cart.itemId= items.itemId"; 
      $result2 = mysql_query($query2); 
      echo "<table width ='100%' border ='1'>"; 
      while($row2 = mysql_fetch_array($result2)) 
      {$totalCost += ($row2["qty"] * $row2["itemPrice"]); 
      echo "<tr>"; 
      echo "<td>"; echo $row2['itemName'];  echo "</td>"; 
      echo "<td> SR"; echo $row2["itemPrice"]; echo "</td>"; 
      echo "<td>";  echo $row2["qty"];   echo "</td>"; 
      echo'<td width="23%"><a href="cart.php?action=show_update&id='.$row2["itemId"].">edit</a></td>"; 
      echo'<td width="23%"><a href="cart.php?action=remove&id='.$row2["itemId"].">Remove</a></td>"; 
      echo"</tr>"; 
      } 
      // Increment the total cost of all items 
      $totalCost += ($row2["qty"] * $row2["itemPrice"]); 
      echo "<tr> <td colspan='2'> <a href='homestore.php'>Keep Shopping</a></td>"; 
      echo "<td colspan='2'> <b>Total: SR".$totalCost."</b></td></tr>"; 
      echo "</table>";} 
      break; 
}} 
case "show": 
{ 
$totalCost =0; 
$query = "select * from cart inner join items on cart.itemId = items.itemId"; 
$result = mysql_query($query); 
?> 
<table width="100%" border="1"> 
    <?php while($row = mysql_fetch_array($result)) 
    { 
    $totalCost += ($row["qty"] * $row["itemPrice"]); 
    ?> 
    <tr> 
    <td><?php echo $row["itemName"]; ?></td> 
    <td>SR<?php echo $row["itemPrice"]; ?></td> 
    <td><a href="cart.php?action=show_update&id=<?php echo $row["itemId"]; ?>">edit</a></td> 
    <td><a href="cart.php?action=remove&id=<?php echo $row["itemId"]; ?>">Remove</a></td> 
    </tr> 
<?php } 

// Increment the total cost of all items 
$totalCost += ($row["qty"] * $row["itemPrice"]); 
$totalCost = $totalCost + ($row["qty"] * $row["itemPrice"]); ?> 
<tr> <td colspan="2"> <a href="products.php">Keep Shopping</a></td> 
<td colspan="2"> <b>Total: SR<?php echo $totalCost; ?></b></td></tr> 
</table> 

<?php break; } 
} 


?> 
</body> 
</html> 

が考えです:私は私が私がcart.phpページをした

a href="cart.php? action=add & id=<?php echo $itemId; ?>"> Add to Cart </a><br/>

'<a href="cart.php? action=show & id=<?php echo $itemId; ?> ">View Shopping Cart </a>` 

aftherをcart.phpする変換1ページにカートに入れるというリンクVEのユーザーがリンクをクリックすると、アクションが「追加」され、商品のIDがcart.phpに移転します。 問題は$アクションがスイッチのイベントに挿入できません echo $アクションとそれに追加印刷 いいえそれは も、私は$ IDをエコーし​​ようとした」VEのswitch文を入力しdoesnotなぜtは知っていて、それが 私が試したのvar_dump($ _ GET)が正しいとする2を印刷しても、それはそれは、文字列の追加とIDがあることを私に示して動作します= 2 私はラップトップ2に一日を設定しており、それは仕事ではないので、私は不安になりたいです。

ここではカートのセッションやユーザーにインタセットしていません。なぜなら、追加する場合は、今はuidの最初の値として1を挿入します。成功するとセッションを追加します。 は後に、彼がショーケースには編集リンクを押した場合、それはしかし

をケース を削除するために彼を転送します、それは我々が編集を見つけた場合を示すように直接転送し、ショーケース内のremove押すもちろん を削除しますカードに追加押されそれは、テキストボックスがリンク保存wasgenerated場合は1になり、彼は場合を更新した変換に表示されるデフォルトの量で、テキストボックスを持っていないだろう、ID照合ID]テキストボックスには、他の製品を生成する場合は、彼は、数量を編集することができた場合をshowupdateために彼を転送しますカートテーブルの数量を更新します。

私はちょうど理由を知りたいのですが、$actionは入場できません。

+1

'ConnectToDb()'関数が黙って返ったり、失敗したりする可能性があるので、printステートメントを置いてから返すようにしてください。大文字と小文字の区別が正しくないかどうかを確認するには、デフォルトのケース([docs](http://php.net/manual/en/control-structures.switch.php)を参照)を追加する必要があります。 – jedwards

+5

別のエピソード[ボビーテーブル](http://xkcd.com/327/) –

+0

をデバッグするために、スイッチにデフォルトを追加して、$ actionの値を出力してみてください。 – Musa

答えて

-1

$idに変更$_GET[id]あなたがすでに

+1

これで問題が解決すると思いますか? – jedwards

+0

switchステートメントに値が挿入されないことを彼が求めているので、これはうまくいくはずです。もし私が尋ねることができたら、どうしてあなたは疑うのですか? – Satya

+0

どのように私は$アクション – shosho

0

$action=(isset($_GET['action']) && $_GET['action'] != '') ? $_GET['action'] : 'view'; 

この行の後に$アクションをエコーし​​、その値

+0

それは動作しますが、まだケースに入っていないことを意味します – shosho

+0

次にスイッチ内のコードが原因であるかどうかを確認するために次のようにしてください:switch($ action){ case "add":エコー "Add"; break; case "delete":エコー "delete"; break; – Oras

+0

同じ...空白ページ – shosho

0

をチェックします$ idでこれを受信して​​いるとして、あなたはこれらの行は何をすべきか知っていますか:

'<a href="cart.php? action=show & id=<?php echo $itemId; ?> ">View Shopping Cart </a>` 

および

$action=(isset($_GET['action']) && $_GET['action'] != '') ? $_GET['action'] : 'view'; 

もしそうでなければ、私は、電子商取引ソリューションの購入やオープンソースのオプションの使用について考えることをお勧めします。

そうした場合、あなたはあなたのエラーは、クエリ文字列にスペースを持っているのでから茎ところ、これが実際にあることがわかります。

また、viewブランチまたはdefaultブランチのいずれもないので、switchステートメント全体をスキップしています。

+0

'$ action === 'アクション'の場合をデバッグすることで、かなり簡単にチェックすることができます。 – raina77ow

+0

'$ _GET ['アクション']'は存在しません、 '$ _GET ['アクション']'は行います。 $アクションに関する2番目の注釈は、彼が$ actionを "view"に "デフォルト"していることを指摘していますが、switchステートメントでそれを処理したり、デフォルトのブランチを使用したりしません。 – jedwards

+0

はい、それはかなり論理的です。彼はどうやって「追加」されるの? )おそらく「追加」(スイッチが正しくなければならない理由はこれが唯一の説明です)でも、まだ... – raina77ow

0

解決策が見つかりました。答えを唱えると笑うでしょう。それは、次のとおりです。リンクにカートに「追加」ので、それは$id= $_GET['id']; で始めるべきではありません

」アクションが来てまずid
私は初めから$id= $_GET['id'];削除した、と私はそれぞれのケースの内側に置きました。

関連する問題