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

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

ただいまの
回答率

90.48%

  • PHP

    20812questions

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

PHP Parse error: syntax error, unexpected 'echo' (T_ECHO)の;ないエラー以外のエラー。

解決済

回答 4

投稿

  • 評価
  • クリップ 0
  • VIEW 928

MakuraMakura

score 5

サーバーサイドのphpでのechoエラーについて質問します。

[PHP Parse error:  syntax error, unexpected 'echo' (T_ECHO)]
というエラーが出るのですが、このエラーは大体前のコードの;がないという事例が多いらしく、他の場合での対策が見つかりませんでした。

以下のforeach文内の最初のechoで、質問タイトルのエラーが出ます。

  $i = 1;

    $c = count($stmt->fetchAll());

    if($c == 0){
        echo "<h3>まだ投稿はありません。</h3>";
    }
    foreach ($stmt as $row) {

   echo "<li> <div> $i .  $row['bywho']  : $row['date']  <a href= 'touhou.html' target='_blank'>[通報]</a>  </div> ";
    echo "<div> $row['comment']</div>";
    echo "<div style='text-align:right;7> <span id ='likeSu$row['ID'] '> $row['likeKazu']  </span>Like <input type='image' name='like' id='likeButton$row['ID']'  src=7heart-nopush.png' alt='好き!ボタン'  width=100 height=100 onclick='likePlus(this,',$row['id'],')'></div></li>";


     $i++;
    }//foreach文の終わり
  • 気になる質問をクリップする

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 4

+3

関係あるかは不明ですが、次の行は明らかに間違いがあります

  echo "<div style='text-align:right;7> <span id ='likeSu$row['ID'] '> $row['likeKazu']  </span>Like <input type='image' name='like' id='likeButton$row['ID']'  src=7heart-nopush.png' alt='好き!ボタン'  width=100 height=100 onclick='likePlus(this,',$row['id'],')'></div></li>";


まず、閉じられていないクォーテーションの修正のため下記のようにしてください

<div style='text-align:right;7>
↓
<div style='text-align:right;7'>


続いて、下記の部分ではシングルクォーテーションの組み合わせが'likeSu$row['になってしまいます。

<span id ='likeSu$row['ID'] '>


この部分では文字列連結を使い

<span id ='likeSu$row['ID'] '>
↓
・・・<span id ='likeSu" . $row['ID'] . "'>・・・・


としてみてください
これを行って、まだ治らない場合は再度調べてみます

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/09/07 16:40

    早速の回答ありがとうございます。
    そうなんですね!無知でお恥ずかしいです。為になります。
    ありがとうございます。
    /*
    echo "<li> <div> $i . ${row['bywho']} : ${row['date']} <a href= 'touhou.html' target='_blank'>[通報]</a> </div> ";
    echo "<div> ${row['comment']}</div>";
    echo "<div style='text-align:right;'> <span id ='likeSu". $row['ID'] . " '> ${row['likeKazu']} </span>Like <input type='image' name='like' id='likeButton".$row['ID']. "' src='heart-nopush.png' alt='好き!ボタン' width=100 height=100 onclick='likePlus(this,".$row['id'],")'></div></li>";
    */
    ↑上記のように修正しました。
    ただエラーは別由来らしくエラーは消えませんでした。

    キャンセル

  • 2017/09/07 16:45

    JavaScriptの部分にエラーがありますね。カンマとピリオドを間違っているようです
    ```
    onclick='likePlus(this,".$row['id'],")'

    onclick='likePlus(this,".$row['id'].")'
    ```
    としてみましょう

    キャンセル

checkベストアンサー

+2

<?php

$i = 1;

$c = count($stmt->fetchAll());

if ($c == 0) {
    echo "<h3>まだ投稿はありません。</h3>";
}
foreach ($stmt as $row) {

    echo "<li> <div>{$i}{$row['bywho']}:{$row['date']}<a href= 'touhou.html' target='_blank'>[通報]</a>  </div> ";
    echo "<div> {$row['comment']}</div>";
    echo "<div style='text-align:right;7> <span id ='likeSu{$row['ID']} '> {$row['likeKazu']}  </span>Like <input type='image' name='like' id='likeButton{$row['ID']}'  src=7heart-nopush.png' alt='好き!ボタン'  width=100 height=100 onclick='likePlus(this,',{$row['id']},')'></div></li>";


    $i++;
}//foreach文の終わり

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/09/07 16:44

    エラーなくなりました。あっという間の解決ありがとうございました。
    te2jiさんやkutuさんのご指摘の通り、変数や配列の出力の無知でした。
    kousuke様はじめ皆さんありがとうございました!

    キャンセル

+2

このエラーメッセージからでは少しわかりずらいですね。
PHPではダブルクォートの中の変数は展開されますが、配列はそのままでは書けません。
こんな感じでブレス{}で囲ってあげてください。
$row['bywho']  → ${row['bywho']}

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/09/07 16:46

    回答ありがとうございました。ご指摘の通り配列も変数も無知でした!助かりました。ありがとうございます。

    キャンセル

+2

対象の箇所とその後の 2 行でエラーが出ます。
変数のパースが理解できていないので、マニュアルを確認してください。

どのように出力したいのか、出力のイメージが共有できれば、もう少し具体的な回答が書けると思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/09/07 16:45

    ご指摘の通り変数のあたりの無知が原因でした。ありがとうございました!

    キャンセル

関連した質問

  • 解決済

    PHPで簡易掲示板のログインページについて

    今課題でやっているPHPの記事版ログインページなのですが、たにぐちまことさんのよくわかるPHPの教科書というテキストを読みながらやっています。 その中でログインページを作っている

  • 解決済

    PHP

    PHPでエラーが起きてしまいました。 何故でしょうか。 if(isset($_POST['command']) && !$_POST['command'] == '

  • 解決済

    Parse error : syntax error, unexpected '{' in

    動画や画像をアップロードする機能なんですが 私が見る限りエラーが起こっているような所が見当たりません 発生している問題・エラーメッセージ Parse error</b>:

  • 解決済

    PHPで最大公約数を出したい。

    PHPで最大公約数を出すものを作りたく、下記のようなソースを書いたのですが、 <!DOCTYPE html> <html lang="ja"> <meta charset=ut

  • 解決済

    PHP MySQL の連携

    PHPのWEBサイトで名前、年齢を登録ボタンを押すとMYSQLのテーブルに格納させる設定方法を教えて下さい。(レンタルサーバで各ソフトはインストールしています。)  PHPとMYS

  • 受付中

    配送リスト管理システのコード(php)

    現在配送システムの管理ページを政策しているのですが、エラーが出まくっていて先に進めません、、、以下エラー内容です。 Parse error: parse error, expe

  • 解決済

    PHPで検索機能を作成していますが、NULLになります。

    PHPで検索機能を作成しています。 あいまい検索で検索できるようにしていますが、下記の画像のように検索フォームから→検索結果画面を見るとNULLになってしまいます。 本当は、キ

  • 解決済

    php ログインできなくなる

     前提・実現したいこと phpでログインシステムを実装中に以下のエラーが発生しました。  発生している問題・エラーメッセージ Warning: session_start():

同じタグがついた質問を見る

  • PHP

    20812questions

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