質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
mysqli

MySQLiはPHP5より導入されているデータベース用のドライバです。MySQL 4.1.3以降の新しい機能の利点をまとめています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

1回答

498閲覧

mysqliでphpカートサイト購入履歴画面作成

Nefa

総合スコア0

mysqli

MySQLiはPHP5より導入されているデータベース用のドライバです。MySQL 4.1.3以降の新しい機能の利点をまとめています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2023/02/25 08:30

編集2023/02/25 09:05

実現したいこと

ブラウザ購入履歴画面に、購入した商品のや日にち、商品名などbuy_his_tblやproduct_tblなどから情報を表示することです。
教えて下さい。お願いします。

前提

mysqliとphpで商品のカートサイトの購入履歴のシステムを作っています。
訳あって急遽つくることになったのですが、システム系は全くと言っていいほど分かっていません。
申し訳ないです。
↓のコードにして読み込みしたら、以下のエラーメッセージが発生しました。イメージ説明
イメージ説明
イメージ説明
イメージ説明
イメージ説明
イメージ説明

発生している問題・エラーメッセージ

エラーメッセージ <?php require_once("session_cookie.php"); $db_link = mysqli_connect("localhost","root", "root"); if($db_link == false){ print"MySqlサーバー接続に失敗しました。"; exit; } $db_flg = mysqli_select_db($db_link,"repro_db"); mysqli_set_charset($db_link,"utf8"); $get_data = fnc_getData("session", "loginOK"); $strSQL1 = "select cus_id from customer_tbl where cus_id = '$get_data'"; $strSQL2 = "select pro_id from product_tbl where pro_id = '$get_data'"; $strSQL3 = "select order_no from order_tbl where order_id = '$get_data'"; $strSQL4 = "select order_amount from order_tbl where order_id = '$get_data'"; $strSQL5 = "select buy_date from buy_his_tbl_ where buy_date = '$get_data'"; $strSQL6 = "select order_price from order_tbl where order_id = '$get_data'"; $strSQL7 = "select order_address from order_tbl where order_id = '$get_data'"; $strSQL8 = "select order_class from order_tbl where order_id = '$get_data'"; $strSQL9 = "select pro_image from product_tbl where product_id = '$get_data'"; $strSQL10 = "select cus_name from customer_tbl where cus_id = '$get_data'"; $db_result1 = mysqli_query($db_link,$strSQL1); $db_result2 = mysqli_query($db_link,$strSQL2); $db_result3 = mysqli_query($db_link,$strSQL3); $db_result4 = mysqli_query($db_link,$strSQL4); $db_result5 = mysqli_query($db_link,$strSQL5); $db_result6 = mysqli_query($db_link,$strSQL6); $db_result7 = mysqli_query($db_link,$strSQL7); $db_result8 = mysqli_query($db_link,$strSQL8); $db_result9 = mysqli_query($db_link,$strSQL9); $db_result10 = mysqli_query($db_link,$strSQL10); $db_row1 = mysqli_fetch_row($db_result1); $db_row2 = mysqli_fetch_row($db_result2); $db_row3 = mysqli_fetch_row($db_result3); $db_row4 = mysqli_fetch_row($db_result4); $db_row5 = mysqli_fetch_row($db_result5); $db_row6 = mysqli_fetch_row($db_result6); $db_row7 = mysqli_fetch_row($db_result7); $db_row8 = mysqli_fetch_row($db_result8); $db_row9 = mysqli_fetch_row($db_result9); $db_row10 = mysqli_fetch_row($db_result10); mysqli_close($db_link); ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>repro | マイページ</title> <link rel="stylesheet" href="css/reset.css"> <link rel="stylesheet" href="css/user.css"> </head> <body> <header> <a href="./home.php"><img src="./images/repro.svg" alt="reproのロゴイメージ" id="logo"></a> <div class="header_right"> <a href="search.php" class="search"> <img src="./images/search_btn.svg" alt="アカウント アイコン"> </a> <a href="./cart1.php" class="cart"> <img src="./images/cart_icon.png" alt="カート アイコン"> </a> <a href="mypage.php" class="account"> <img src="./images/account_icon.png" alt="アカウント アイコン"> </a> </div> </header> <main> <div class="title"> <h1>マイページ</h1> <h2>購入履歴</h2> </div> <div class="purc_his_content"> <div class="left_image"> <div class="date"><?php print $db_row5[0] ?></div> <img src="<?php print $db_row7[0] ?>"> </div> <table> <tr> <th><?php print $db_row1[0] ?></th> <td><?php print $db_row2[0] ?> </td> <td>商品価格:<span><?php print $db_row6[0] ?>円</span></td> <td>お届け先:<?php print $db_row7[0] ?></td> </tr> </table> <div class="amount"><?php print $db_row4[0] ?></div> </div> <div class="purc_his_content"> <div class="left_image"> <div class="date">2022-09-22</div> <img src="./images/chair1.jpg"> </div> <table> <tr> <th>AREA ダイニングチェア(BLACK)</th> <td>AREA ダイニングチェア (BLACK) ZK-10442 リサイクル素材構成 木目調 </td> <td>商品価格:<span>円</span></td> <td>お届け先:〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇 99-99-99</td> </tr> </table> <div class="amount">数量 1</div> </div> </main> <footer> <small>&copy; 2022 repro. All rights reserved.</small> </footer> </body> </html>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

Trying to access array offset on value of type null

というエラーが出ていると思いますが、これは null に対して配列アクセスをした場合に出ます。
以下は例です。

php

1$items = null; 2$item = $items[0]; // null に対して配列のようにアクセスできないのでエラーになる

エラーの最後に on line 104on line 110 と付いているので、コードの104行目や110行目でこのエラーが発生しています。

例えば104行目では、 $db_row5[0] にアクセスしているので、この $db_row5null になっているということですね。
$db_row5 は何かを調べてみると、46行目の mysqli_fetch_row の結果です。
PHPのドキュメントによると、この関数の戻り値は

結果セットにもう行がない場合には null を返します。

とのことですので、DBからのデータ取得の結果がない場合に null が戻り値として設定され、このエラーが発生しているようです。

ですので、データが存在していない場合を考慮してコードを書くとエラーが消えると思います。
例えば104行目だと以下のような感じでしょうか。

php

1<div class="date"> 2 <?php if (isset($db_row5[0])): ?> 3 <?php print $db_row5[0] ?> 4 <?php else: ?> 5 データがありません。 6 <?php endif; ?> 7</div>

投稿2023/02/25 13:36

chiroruxx

総合スコア25

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問