PHPを使って、簡易掲示板を作っているのですが、Array to string conversionのエラーが直らず、
DBから文字を取得してブラウザに表示が出来ません。
送信した文字はDB上にきちんと表示されているのですが、DBから文字を引っ張ってきて、ブラウザに表示させるのがうまくできません。さらに、Array to string conversionのエラーも出ている状態です。おそらく、下記コードの
$kadai_data = array();から$kadai_data[] = $row;の配列の使い方
に問題があるのだと思いますが、具体的にどの行に問題があるのかわかりません。よろしくお願いいたします。
また、ほかに問題点があれば、教えてください。
$link = mysqli_connect("localhost","root","","kadai_test"); $msg = '名前とコメントを入力してください'; $name = ''; $comment = ''; $err_msg = array(); $data = array(); if ($link) { mysqli_set_charset($link, 'utf8'); if ($_SERVER['REQUEST_METHOD'] === 'POST') { if (isset($_POST['name']) === TRUE){ $name = $_POST['name']; } if (isset($_POST['comment']) === TRUE){ $comment = $_POST['comment']; } if ($name === '') { $err_msg[] = '名前を入力してください'; } else if (mb_strlen($name) > 20) { $err_msg[] = '名前は20文字以内で入力してください'; } if ($comment === '') { $err_msg[] = 'コメントを入力してください'; } else if (mb_strlen($comment) > 100) { $err_msg[] = 'コメントは100文字以内で入力してください'; } if (count($err_msg) === 0) { $query = 'INSERT INTO kadai_test(name,comment)VALUES(\'' . $name . '\', \' '. $comment .'\')'; if (mysqli_query($link,$query) === TRUE) { $msg = '追加成功'; // $log = $name . ": " . // $comment . " -" . // date('Y-m-d H:i:s') . "\n" ; } else { $msg = '追加失敗' ; } } } $kadai_data = array(); mysqli_set_charset($link, 'utf8'); $query = 'SELECT name, comment FROM kadai_test'; $result = mysqli_query($link,$query); while($row = mysqli_fetch_array($result)){ // print $row['name']; // print $row['comment']; // print "\n"; $kadai_data[] = $row; } mysqli_free_result($result); mysqli_close($link); } else { print 'DB接続失敗'; } ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>一言掲示板</title> </head> <body> <h1>一言掲示板</h1> <?php if (count($err_msg) > 0) ?> <form method="post"> <lavel>名前:<input type="text" name="name"></lavel> <lavel>発言:<input type="text" name="comment"></lavel> <input type="submit" name="submit" value="送信"> </form> <P>発言一覧</P> <!-- <ul> <li>名前</li> <li>コメント</li> </ul> --> <ul> <?php foreach ($kadai_data as $read) { ?> <li><?php print $read; ?></li> <!-- <ul><?php print htmlspecialchars($value['name'],ENT_QUOTES,'UTF-8'); ?></ul> <ul><?php print htmlspecialchars($value['comment'],ENT_QUOTES,'UTF-8'); ?></ul> --> <?php } ?> </ul> </body> </html>
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。