• 締切済み

買い物かご機能

商品.phpでは echo $syou= '<strong>商品名:</strong>'.$row['syou'].'<br/>'; echo $kakaku='<strong>価格:</strong> '. $row['kakaku'] . '<br />'; この値を session_start(); $_SESSION['gazou']=$gazou; if (isset($_SESSION['syou']) && is_array($_SESSION['syou'])) { $_SESSION['syou'][]=$syou; } else { $_SESSION['syou'] = array(); } $ardata = array("シャツ1","ぼろシャツ"); if (isset($_SESSION['kakaku']) && is_array($_SESSION['kakaku'])) { $_SESSION['kakaku'][]=$kakaku; } else { $_SESSION['kakaku'] = array(); } $ardata = array("100円","80円"); このようにセッションして 買い物カゴ.phpで print_r ($_SESSION['syou']); print_r ($_SESSION['kakaku']); と表示させてます。 ところが、このシステム 一個しか買い物カゴに入らないんです。一回入れた物は保存し、ずっと削除するまで表示していて欲しいのですが、どうしたら良いでしょうか??できればセッション主体で行いたいです。

noname#142703
noname#142703
  • PHP
  • 回答数1
  • ありがとう数0

みんなの回答

  • memphis
  • ベストアンサー率40% (975/2395)
回答No.2

>一個しか買い物カゴに入らないんです。 >どうしたら良いでしょうか? そういうプログラムにしているのが原因です。 $_SESSIONを正しく理解してからプログラムを作成して下さい。 http://www.php.net/manual/en/reserved.variables.session.php

関連するQ&A

  • 買い物カゴシステムについて

    商品.phpでは echo $syou= '<strong>商品名:</strong>'.$row['syou'].'<br/>'; echo $kakaku='<strong>価格:</strong> '. $row['kakaku'] . '<br />'; この値を このようにセッションして 買い物カゴ.phpで print_r ($_SESSION['syou']); print_r ($_SESSION['kakaku']); と表示させてます。 ところが、このシステム 一個しか買い物カゴに入らないんです。一回入れた物は保存し、ずっと削除するまで表示していて欲しいのですが、どうしたら良いでしょうか??できればセッション主体で行いたいです。

    • 締切済み
    • PHP
  • 買い物カゴについて

    ------------------------------------------------------------------ 買い物カゴに入れるページ ------------------------------------------------------------------ <?php session_start(); $_SESSION['gazou']=$gazou; if (!is_array($_SESSION['syou'])) { $_SESSION['syou'] = array(); } if (!is_array($_SESSION['kakaku'])) { $_SESSION['kakaku'] = array(); } ?> <body> <?php $id = $_GET['id']; $query = "select * from mo where id= '{$_GET['id']}'"; $result = mysql_query($query); $num_rows=mysql_num_rows($result); while($row = mysql_fetch_array($result)){ echo $syou = '<strong>商品名:</strong>'.$row['syou'].'<br/>'; echo $kakaku ='<strong>価格:</strong> '. $row['kakaku'] . '<br />'; echo'<form method="post" action="kato.php">'; echo'<input type="hidden" name="shou" value='.$row['syou'].'>'; echo'<input type="hidden" name="kakaku" value='.$row['kakaku'].'>'; echo'<input type="submit" name="button" id="button" value="カートに入れる" />'; echo'</form>'; ?> ------------------------------------------------------------------ 買い物カゴページ ------------------------------------------------------------------ <?php session_start(); echo '<strong>現在の買い物カゴの中身</strong></br>'; print_r($_SESSION['syou']) . '<br />'; print_r($_SESSION['kakaku']); ?> </head> <body> <?php mysql_query("SET NAMES eucjpms") or die("can not SET NAMES eucjpms"); $query = "select * from mo"; $result = mysql_query($query); ?> 現在大まかに言うとこんな感じに買い物カゴサイトを作成しています。(DB接続文は念のため削除) しかし、買い物カゴに一回入れて、もう一度違う商品を選ぶと、一回目の情報が消えてしまいます。 この情報を残し、買い物カゴに入れた商品情報を蓄積させるにはどうすれば良いでしょうか?? 概要としましては、買い物カゴページはID事に echo $syou = '<strong>商品名:</strong>'.$row['syou'].'<br/>'; echo $kakaku ='<strong>価格:</strong> '. $row['kakaku'] . '<br />'; の内容が変わるようになっていまして、その値をセッションし、一つの商品だけなら、買い物カゴページに上手く入りますが 二つ目を入れると情報が上書きされ、蓄積されないのです。どうかお力をお貸し下さい。

    • 締切済み
    • PHP
  • クリックするたびに接続したい。

    $gazou1 = 'base.gif'; $gazou2 =$row['gazou']; $output ="out.gif"; $cmd = 'convert -compose over ' . $gazou1 . ' ' . $gazou2 . ' ' . $output; system($cmd,$ret); if ($ret===0){ print '<img src=' . $output . '>'; } else { print "ret=" . $ret . "<br />"; } echo '<strong>商品名:</strong>'.$row['syou'].'<br/>'; echo '<strong>価格:</strong> '. $row['kakaku'] . '<br />'; このようにした場合、例えば商品が 豆腐 春雨 と有った場合、豆腐をクリックすると豆腐が表示されますが、春雨をクリックすると画像だけ豆腐のままで、ページ更新してやっと春雨の画像になります。これでは使えないので、豆腐をクリックしたら豆腐の画像、春雨をクリックしたページ更新しなくとも春雨の画像が表示するとようにするにはどうしたら良いですか??

    • 締切済み
    • PHP
  • 買い物かごに入れる処理の仕方

    ボタンで、[この商品を買い物かごに入れる] というのをショッピングサイトでよく見かけますが、何も入力せずに、どうやって指定してるんですか?? echo $syou= '<strong>商品名:</strong>'.$row['syou'].'<br/>'; echo $kakaku='<strong>価格:</strong> '. $row['kakaku'] . '<br />'; この情報を <form method="post" action="kato.php"> <input type="submit" name="button" id="button" value="この商品をカートに入れる" /> </form> で送る場合どうしたらできますか??

    • 締切済み
    • PHP
  • 検索結果の画像が表示されない

    <?php $con=mysql_connect(""); if(!$con){ echo ("MYSQLに接続失敗"); exit(); } else { echo ("#1=$con"); } mysql_query("SET NAMES eucjpms") or die("can not SET NAMES eucjpms"); $db=mysql_select_db(""); if(!$db) { echo ("DB選択失敗"); } else{ echo("DB選択OK!"); } $jyusyo=$_POST["jyusyo"]; $jyusyonum=array("豊岡市","養父市","朝来市","神戸市","姫路市"); $query = "select name,jyusyo,kakaku,gazou from ocdda where"; if($jyusyo != "") { $query = $query . " jyusyo like '%$jyusyo%' "; } $result = mysql_query($query); $num_rows=mysql_num_rows($result); if($num_rows== 0){ $message="該当データ無し"; } else $message=$num_rows ."件あります"; echo $message; while($row = mysql_fetch_array($result)){ // Loop through the array of score data, formatting it as HTML echo '<table>'; $i = 0; { // Display the score data echo '<tr><td class="scoreinfo">'; echo '<span class="kakaku">' . $row['kakaku'] . '</span><br />'; echo '<strong>会社名:</strong> ' . $row['name'] . '<br />'; echo '<strong>住所:</strong> ' . $row['jyusyo'] . '</td>'; if (is_file(GW_UPLOADPATH . $row['gazou']) && filesize(GW_UPLOADPATH . $row['gazou']) > 0) { echo '<td><img src="' . GW_UPLOADPATH . $row['gazou'] . '" alt="images" /></td></tr>'; } else { echo '<td><img src="' . GW_UPLOADPATH . 'ie.jpg' . '" alt="images" /></td></tr>'; } $i++; } echo '</table>'; mysqli_close($dbc); ?> <?php } ?> こちらでは表示されないのですが、 <?php require_once('appvars.php'); require_once('connectvars.php'); // Connect to the database $dbc = mysqli_connect(""); // Retrieve the score data from MySQL $query = "SELECT * FROM "; $data = mysqli_query($dbc, $query); // Loop through the array of score data, formatting it as HTML echo '<table>'; $i = 0; while ($row = mysqli_fetch_array($data)) { // Display the score data echo '<tr><td class="scoreinfo">'; echo '<span class="kakaku">' . $row['kakaku'] . '</span><br />'; echo '<strong>会社名:</strong> ' . $row['name'] . '<br />'; echo '<strong>住所:</strong> ' . $row['jyusyo'] . '</td>'; if (is_file(GW_UPLOADPATH . $row['gazou']) && filesize(GW_UPLOADPATH . $row['gazou']) > 0) { echo '<td><img src="' . GW_UPLOADPATH . $row['gazou'] . '" alt="image" /></td></tr>'; } else { echo '<td><img src="' . GW_UPLOADPATH . 'unverified.gif' . '" alt="Unverified kakaku" /></td></tr>'; } $i++; } echo '</table>'; mysqli_close($dbc); ?> こちらでは画像が表示されます。同じ階層でほぼ同じソースなのに何故前者のコードは画像が表示されないのでしょうか?

    • 締切済み
    • PHP
  • 検索結果それぞれに違うリンク

    // Loop through the array of score data, formatting it as HTML echo '<table>'; $i = 0; { // Display the score data echo '<tr><td class="scoreinfo">'; echo '<span class="kakaku">' . $row['kakaku'] . '</span><br />'; echo '<strong>会社名:</strong> ' . $row['name'] . '<br />'; echo '<strong>住所:</strong> ' . $row['jyusyo'] . '<br />'; if (is_file(GW_UPLOADPATH . $row['gazou']) && filesize(GW_UPLOADPATH . $row['gazou']) > 0) { echo '<td><img src="' . GW_UPLOADPATH . $row['gazou'] . '" alt="images" /></td></tr>'; } else { echo '<td><img src="' . GW_UPLOADPATH . 'ie.jpg' . '" alt="images" /></td></tr>'; } $i++; } echo '</table>'; 例えば会社名の検索結果に 株式会社日産 株式会社三井物産 株式会社ホンダ などと結果が出て、これらにa.html b.html c.htmlというように違うリンクを付けたい場合、上記のコードをどのように改変したら良いでしょうか??

    • 締切済み
    • PHP
  • 単語ではなく複数語検索

    $usersearch =$_POST['usersearch']; $query = "select byou,syou from kensaku2 where syou like '%{$_POST['usersearch']}%' OR syou like '%{$_POST['usersearch']}%'"; $where_list = array(); $search_words = explode(' ', $usersearch); foreach ($search_words as $word){ $where_list[]= " syou like '%$word%'"; } $where_clause = implode('or',$where_list); if (!empty($where_clause)) { $search_query .= " WHERE $where_clause"; } $result = mysql_query($query); while($row = mysql_fetch_array($result)){ echo '<strong>ドリンク:</strong>' . $row['byou'] . '<br/>'; echo '<strong>野菜:</strong>' . $row['syou'] . '<br/>'; } 上記のものでテキストボックスに[コーラ お茶]等の複数のワードで検索し、その二つに該当するデータを取り出したいのですが、上手くいきません(単語でないと検索できません)。改変部分等御指摘下さい。

    • ベストアンサー
    • PHP
  • データベース内容が表示されない

    <br>検索結果<br> <?php if($num_rows== 0){ $message="該当するデータはありませんでした"; } else $message=$num_rows ."件ヒットしました"; echo $message; ?> <br> <?php while($row = mysql_fetch_array($result));?> <br> <?php echo"{$row['tiiki']}"; ?> <?php print"<td>{$row['syoku']}</td>"; ?> <?php print"<td>{$row['koyou']}</td>"; ?> <?php print"<td>{$row['kai']}</td>"; ?> <br> <a href="html.html">再検索</a> とすると、三件ヒットしました、などは表示されますが、肝心のtiiki,syoku等の情報が表示されず、空白のままです。記述ミス等ありますでしょうか??

    • ベストアンサー
    • PHP
  • 簡単な買い物カゴ機能を作成しました。

    <?php echo "ばなな"; echo '<form action="*****" method="*****">'; echo '<input type="hi**en" name="bnn" value="0">'; echo '<input type="submit" value="カートに入れる">'; echo '</form>'; ?> 買い物カゴ <?php $a = array('ばなな','りんご','魚'); $s = $_POST['bnn']; $k = $a[$s]; $_SESSION['ss'] = $k; echo $_SESSION['ss']; echo '<a href="ss.php">次へ</a>'; ?> 上記でセッションしているはずなのに、違うページを経由してカートページに行くと何故か値が消えてます。どなたか問題点を御教授いただけないでしょうか。。。

    • ベストアンサー
    • PHP
  • php5.2.9に変更後に不具合について

    php初心者です。 レンタルサバ―なのですが、php4.4.7からphp5.2.9に変更後うまくいかなくて困っています。 header("Location: http://○○○/top.php");がうまく飛びません。 ページを実行すると真っ白の画面になってしまいます。 以前のバージョンですと、問題なく動いていました。 下記を見てください。 どうしたらよいのでしょうか? <?php mysql_query('SET NAMES ujis'); require_once( "function.php" ); session_start(); if ( $_REQUEST[ "SUBMIT" ] != "" ) { if ( ( $_POST[ "VALUE_ID" ] != "" ) && ( $_POST[ "VALUE_PW" ] != "" ) ) { $k_id = $_POST[ "VALUE_ID" ]; $k_pw = $_POST[ "VALUE_PW" ]; $con=mysql_connect('aaa','aaa','aaa') or die("MySQL接続エラー: ".mysql_error()); mysql_select_db('aaa',$con); $sql= "select * from あああ where id='$k_id' and pw='$k_pw'"; $result=mysql_query($sql); $rows=mysql_num_rows($result); if($rows==1){ while($row=mysql_fetch_array($result)){ $d_id = $row["id"]; $d_pw = $row["pw"]; } } } } if ( !isset( $_SESSION[ "D_ID" ] ) ) { $_SESSION[ "D_ID" ] = ""; } $_SESSION[ "D_ID" ] = $d_id; if ( !isset( $_SESSION[ "D_PW" ] ) ) { $_SESSION[ "D_PW" ] = ""; } $_SESSION[ "D_PW" ] = $d_pw; if ( !isset( $_SESSION[ "K_ID" ] ) ) { $_SESSION[ "K_ID" ] = ""; } $_SESSION[ "K_ID" ] = $k_id; if ( !isset( $_SESSION[ "K_PW" ] ) ) { $_SESSION[ "K_PW" ] = ""; } $_SESSION[ "K_PW" ] = $k_pw; if ( ( $_SESSION[ "D_ID" ] == "" ) || ( $_SESSION[ "D_PW" ] == "" ) ) { print( "<br><center>○○○○○○○○<br>" ); print( "<br>○○○○○○○○○○○○○○○○<br>" ); print( "<br>○○○○○○○○<br>" ); print( "<br><a href=\"index.html\">[ BACK ]</a></center>" ); exit(); }elseif( CheckID_PW( $_SESSION[ "K_ID" ], $_SESSION[ "K_PW" ], $_SESSION[ "D_ID" ], $_SESSION[ "D_PW" ] ) == false ) { print( "<br><center>○○○○○○○○<br>" ); print( "<br><center>○○○○○○○○○○○○○○○○<br>" ); print( "<br><center>○○○○○○○○" ); print( "<br><br><a href=\"index.html\">[ BACK ]</a></center></body>" ); } else {header("Location: http://○○○/top.php");} ?>

    • 締切済み
    • PHP

専門家に質問してみよう