dポイントプレゼントキャンペーン実施中!

●質問の意味


先日、似たような質問をいたしました。

「未定義の変数」の定義について(PHP)
http://okwave.jp/qa/q8060182.html


それと同じようなコードを書いていますが、
エラーが出ます。なぜでしょうか?
ご存知の方、よろしくお願いします。


●質問の補足

下記のコードの3行目
$page = isset($_GET['page']) ? intval($_GET['page']) : 1;
についてエラーが出ています。

コメントアウトしている
//$page =$_REQUEST['page'];
は、参考文献の方のコードですがこちらでもエラーが出ます。


●参考文献

たにぐちまこと「よくわかるPHPの教科書」(P215)の
update.phpファイル


●開発環境

windows8
xammp1.8.1


●コード(update.php)


<?php
require('dbconnect.php');
//$page =$_REQUEST['page'];
$page = isset($_GET['page']) ? intval($_GET['page']) : 1;

if ($page == '') {
$page = 1;
}
$page = max($page, 1);

//最終ページを取得する
$sql = 'SELECT COUNT(*) AS cnt FROM my_items';
$recordSet = mysql_query($sql);
$table = mysql_fetch_assoc($recordSet);
$maxPage = ceil($table['cnt'] / 5);
$page = min($page, $maxPage);

$start = ($page - 1) * 5;
$recordSet = mysql_query('SELECT m.name, i. * FROM makers m, my_items i WHERE m.id=i.maker_id ORDER BY id DESC LIMIT ' . $start .',5');
?>

<!DOCTYPE html>
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" type="text/css" href="style.css" />
<title>Webシステムをつくる</title>
</head>

<body>
<div id="wrap">
<div id="head">
<h1>トップページ</h1>
</div>

<div id="content">
<p style="margin-top: 20px">
<table width="100%">
<tr>
<th scope="col">ID</th>
<th scope="col">メーカー</th>
<th scope="col">商品名</th>
<th scope="col">価格</th>
</tr>
<?php
while ($table = mysql_fetch_assoc($recordSet)) {
?>
<tr>
<td><?php print(htmlspecialchars($table['id'])); ?></td>
<td><?php print(htmlspecialchars($table['name'])); ?></td>
<td><?php print(htmlspecialchars($table['item_name'])); ?></td>
<td><?php print(htmlspecialchars($table['price'])); ?></td>
</tr>
<?php
}
?>
</table>
<ul class="paging">
<?php
if ($page > 1) {
?>
<li><a href="index.php?page=<?php print($page - 1); ?>">前のページへ</a></li>
<?php
} else {
?>
<li>前のページへ</li>
<?php
}
?>
<?php
if ($page < $maxPage) {
?>
<li><a href="index.php?page=<?php print($page + 1); ?>">次のページへ</a></li>
<?php
} else {
?>
<li>次のページへ</li>
<?php
}
?>
</ul>
</p>
</div>

<div id="foot">
<p><img src="images/txt_copyright.png" width="136" height="15" alt="(C) H2O Space. MYCOM" /></p>
</div>
</div>
</body>
</html>

A 回答 (3件)

何度同じミスをすればいいのか・・・



<?php
require('dbconnect.php);
$id = isset($_GET['id']) ? intval($_GET['id']) : 1;

3行目じゃなくて、1行前の

require('dbconnect.php);

『いつものように』引用符が閉じていない。


正直、プログラミングには向いていないと思う。諦めるなら早い方がいい。

この回答への補足

なお、引用符を付けたうえで、

require('dbconnect.php');
$id = isset($_GET['id']) ? intval($_GET['id']) : 1;

としたら、意図通りの画面が表示されました。
ありがとうございます。

補足日時:2013/04/30 18:35
    • good
    • 0
この回答へのお礼

agunuzさま。
ご回答とご指摘ありがとうございます。

require('dbconnect.php);
引用符がありませんでしたね…。
まことに恐れ入ります。

他の方に質問する前にeclipseでの使用などで、
凡ミスに気付く習慣を身につけるようにします。

お礼日時:2013/04/30 18:24

全くの蛇足ですが



$page = isset($_GET['page']) ? intval($_GET['page']) : 1;

としているのであれば、

if ($page == '') {
$page = 1;
}

は不要ですよね。必ずなんらかの整数値がセットされますし、その次にmaxもあるのですから。極端な話、maxまで含めて

$page = isset($_GET['page']) ? max(intval($_GET['page']),1) : 1;

でもいいと思います。

閑話休題

>Parse error: syntax error, unexpected 'id' (T_STRING) in
>C:\xampp\htdocs\shop\update.php on line 3

このエラーメッセージ(と行番号)は間違いありませんか?3行目はコメントアウトだし id というリテラルが見当たりません(気になるとすればrequireしている dbconnect.php がどうなっているのかくらいでしょうか・・・)。

提示されているソースが「C:\xampp\htdocs\shop\update.php」ということで間違いありませんか?どう考えてもupdate.phpというスクリプト名の内容にはなっていないように思えます(updateする部分がどこにもない)。

この回答への補足

補足です。

if ($page == '') {
$page = 1;
}

〉は不要ですよね。必ずなんらかの整数値がセットされますし、その次にmaxもあるのですから。極端な話、maxまで含めて

ご指摘の通りです。
この箇所を削除しても全く問題はありませんでした。
大変参考になりました。ありがとうございます。

補足日時:2013/04/30 16:51
    • good
    • 0
この回答へのお礼

agunuzさま
いつもご回答・ご指摘ありがとうございます

>このエラーメッセージ(と行番号)は間違いありませんか?

あげるべきupdate.phpのソースコードを間違えておりました。
正しくは、以下のとおりです。
(コメントアウトは参考文献のコードです)

update.php

<?php
require('dbconnect.php);
$id = isset($_GET['id']) ? intval($_GET['id']) : 1;
//$id = $_REQUEST['id'];
$sql = sprintf("SELECT * FROM my_items WHERE id=%d",
mysql_real_escape_string($id)
);
$recordSet = mysql_query($sql);
$data = my_sql_fetc_assoc($recordSet);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitio …
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" type="text/css" href="style.css" />
<title>商品情報変更</title>
</head>

<body>
<div id="wrap">
<div id="head">
<h1>商品情報変更</h1>
</div>

<div id="content">
<p>変更する内容を記入してください。</p>
<form id="frmUpdate" name="frmUpdate" method="post" action="up_date.php">
<dl>
<dt>
<label for="maker_id">メーカーID</label>
</dt>
<dd>
<input name="maker_id" type="text" id="maker_id" size="10" maxlength="10" value="<?php print<htmlspecialchars($data['maker_id'], ENT_QUOTES)); ?>" />
</dd>
<dt>
<label for="item_name">商品名</label>
</dt>
<dd>
<input name="item_name" type="text" id="item_name" size="35" maxlength="255" value="<?php print<htmlspecialchars($data['item_name'], ENT_QUOTES)); ?>" />
</dd>
<dt>
<label for="price">価格</label>
</dt>
<dd>
<input name="price" type="text" id="price" size="10" maxlength="10" value="<?php print<htmlspecialchars($data['price'], ENT_QUOTES)); ?>" />
円</dd>
<dt>
<label for="keyword">キーワード</label>
</dt>
<dd>
<input name="keyword" type="text" id="keyword" size="50" maxlength="255" value="<?php print<htmlspecialchars($data['keyword'], ENT_QUOTES)); ?>" />
</dd>
<input type="submit" value="変更する" />
<input type="hidden" name="id" value="<?php print(htmlspecialchars($data['id'], ENT_QUOTE)); ?>" />
</form>
</div>

<div id="foot">
<p><img src="images/txt_copyright.png" width="136" height="15" alt="(C) H2O Space. MYCOM" /></p>
</div>

</div>
</body>
</html>

お礼日時:2013/04/30 16:50

エラーメッセージは?

    • good
    • 0
この回答へのお礼

yambejpさま
ご回答&ご指摘ありがとうございます。

エラーメッセージは次のとおりです↓

Parse error: syntax error, unexpected 'id' (T_STRING) in C:\xampp\htdocs\shop\update.php on line 3

お礼日時:2013/04/29 16:53

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!