iT邦幫忙

0

FOR語法

<?php
	$passed = $_COOKIE["passed"];
	if ($passed != "TRUE")
	{header("location:index.htm");
		exit();}
?>
<?php
  $cook =$_POST["cook"];      //抓值
  $money =$_POST["money"];

      echo "您是第 ".$id." 號會員";
      echo "<p>";
      echo '您的餐點為:' ;
      echo "<p>";
 $a=count($cook);             //print COOK
 for($i=0;$i<$a;$i++)
 {echo ($i+1),$cook["$i"]."," ;}      
  echo "<p>" ;
  echo '價格: ';
 $b=count($money);              //print MONEY
 for($i=0;$i<$b;$i++)
 {echo $money["$i"]."," ; }  
 $c=count($money); //   $total
 $sum = 0 ;
 for($i=0;$i<$c;$i++)
{$sum += $money["$i"] ;}
echo "<p>";
echo '餐點總額為: ';
echo $sum ;
  $link = mysql_connect("localhost", "root", "123");
	if (!$link) die("建立資料連接失敗");
			
	$db_selected = mysql_select_db("member", $link);
	if (!$db_selected) die("開啟資料庫失敗");
			
	$sql = "SELECT * FROM cord";
	mysql_query("SET NAMES 'utf8'");
	$result = mysql_query($sql, $link);
	if (!$result) die("執行 SQL 命令失敗");
  
	mysql_free_result($result);
		
		$d=count($money);
		echo $d;
    for($i=0 ; $i<$d ;$i++)
	{	$sql = "INSERT INTO cord (cord_id, cord_cook, cord_money)
		  VALUES ('$id','$cook[$i]', '$money[$i]')"; }
	$result = mysql_query($sql, $link);
		if (!$result) die("執行 SQL 命令失敗");
mysql_close($link);
?>

我想要請問一下 位什麼我 ECHO $d 的值是四,不過我的資料庫只有寫進一筆資料寫進ID跟MONEY,然後請大大幫我看一下我的FOR迴圈內的SQL語法輸入有無錯誤,萬分感謝!
這個--->VALUES ('$id','$cook[$i]', '$money[$i]')";

1 個回答

24
外獅佬
iT邦大師 1 級 ‧ 2009-04-29 18:27:15
最佳解答

您的資料庫當然只有一筆資料
for($i=0 ; $i<$d ;$i++)
{ $sql = "INSERT INTO cord (cord_id, cord_cook, cord_money)
VALUES ('$id','$cook[$i]', '$money[$i]')"; }
$result = mysql_query($sql, $link);

您的 for迴圈跑了$d次,
但是您的insert command只跑了一次啊....
您要的應該是這樣吧:

for($i=0 ; $i<$d ;$i++)
{ $sql = "INSERT INTO cord (cord_id, cord_cook, cord_money)
VALUES ('$id','$cook[$i]', '$money[$i]')";
$result = mysql_query($sql, $link);}

liqunyan iT邦好手 3 級 ‧ 2009-04-29 19:00:20 檢舉

大括號差個位置就差很遠啊!

我要發表回答

立即登入回答