テキストに入力した値をtableに追加したいのですが、
データベースに保存されません。mysqli_query($link, $query)を行ったときにfalseが返る
原因が分かりません。VALUESのカッコ内の記述に問題があるのでしょうか。
よろしくお願いします。
PHP
1<?php 2$goods = ''; 3$price = ''; 4$goods_data =[]; 5$errors = []; 6$host = 'localhost'; 7$username = ''; 8$passwd = ''; 9$dbname = ''; 10$link = mysqli_connect($host, $username, $passwd, $dbname); 11 12if($link) { 13 mysqli_set_charset($link, 'utf8'); 14 if(isset($_GET['goods']) === true && isset($_GET['price']) === true) { 15 $goods = $_GET['goods']; 16 $price = $_GET['price']; 17 if($goods === '') { 18 $errors[] ='商品を入力してください'. "</br>"; 19 } 20 if($price === '') { 21 $errors[] ='価格を入力してください'. "</br>"; 22 } 23 if($goods !== '' && $price !== ''){ 24 if(count($errors === 0)){ 25 $query = 'INSERT INTO goods_table(goods_name, price) 26 VALUES(\''.$goods.'\',\''.$price.'\')'; 27 var_dump($query); 28 $result = mysqli_query($link, $query); 29 var_dump($result); 30 31 } 32 33 } 34 35 } 36 $query = 'SELECT goods_name, price FROM good_table 37 ORDER BY goods_id'; 38 $result = mysqli_query($link, $query); 39 while($row = mysqli_fetch_array($result)) { 40 $goods_data[] = $row; 41 } 42 43 mysqli_free_result($result); 44 mysqli_close($link); 45} 46 47?> 48<!DOCTYPE html> 49<html lang="ja"> 50<head> 51 <meta charset="UTF-8"> 52 <title>サンプル</title> 53 <style type="text/css"> 54 table, td, th { 55 border: solid black 1px; 56 } 57 table { 58 width: 200px; 59 } 60 </style> 61</head> 62<body> 63 <p><?php foreach($errors as $key => $string){ 64 print $string; 65 } ?> 66 </p> 67 <form method="get" action='./16-10.php'> 68 <label>商品名:<input type="text" name= "goods" value=""></label> 69 <label>価格:<input type="text" name="price" value=""></label> 70 <input type="submit" value="追加"> 71 </form> 72 <table> 73 <tr> 74 <th>商品名</th> 75 <th>価格</th> 76 </tr> 77<?php 78foreach ($goods_data as $value) { 79?> 80 81 <tr> 82 <td><?php print htmlspecialchars($value['goods_name'], ENT_QUOTES, 'UTF-8'); ?> </td> 83 84 85 <td><?php print htmlspecialchars($value['price'], ENT_QUOTES, 'UTF-8'); ?> </td> 86 87 88 </tr> 89 90<?php 91} 92?> 93 </table> 94</body> 95</html>
>プログラミング初学者なので、そのあたりもご配慮いただけますと、
非常にありがたいです。
「初学者」といっても色々段階がありますから、むしろこういうのは書かれない方が良いかと思います。
下手に制限すると的確な(または今後のためになる)アドバイスを得られなくなる可能性が高いですし、回答は当の質問者のためだけにあるわけではなく、同じような問題を抱えた誰かのためにもあるもの(資産・ナレッジ)なので、「自分専用の」という考え方はなるべく捨てましょう。
それなら「こういうことは理解している」とか「こういうことを調べた、試した」を書いてくれた方が回答する側としてはありがたいです。
今後の参考になりました。ありがとうございました。
質問は編集できますので、参考にするだけでなく、今この質問で適宜ご対応いただけたらと。
編集の仕方が分からなかったので。ご指摘ありがとうございます。