アプリ版:「スタンプのみでお礼する」機能のリリースについて

MySQL+PHPで顧客情報のデータベースを作っているところで詰まってしまいました。下のようなテーブルがあります。

number name furi ・・・
-------------------------
1 北  kita
2  南 minami
3    東 higashi
4    西 nisi

このテーブルのリスト一部分を表示して
詳細ボタンを押すと顧客情報の詳細が表示
できるようにしたいのですが、どのように
すればいいかまったくわかりません。

一覧表示
     名前 フリガナ 
 詳細  北   kita
詳細  南   minami
 詳細 西   nisi

こんな感じで詳細を押すと、顧客情報の詳細が
表示されるようにしたいのですが。

一覧を表示させるPHPはこんなかんじで作りました。
//SQL文 tab1表から全行を取り出し、number列の昇順に整列する
$sql = "select * from addrmain order by number";

//SQL文を実行する
$rs = mysql_db_query($db,$sql);

//列数を取得する
$num = mysql_num_fields($rs);

//HTML文を出力 テーブルの開始を指定
print("<table border=1>");

//test表の列数と同じ回数を繰り返す
for ($i=0;$i<$num;$i++){

//HTML文を出力 列名を <td>で囲んで出力
print("<td>".mysql_field_name($rs,$i)."</td>");
}

//test表の行数と同じ回数を繰り返す
while($row=mysql_fetch_array($rs)){

//HTML文を出力 表の行の開始<tr> を出力
print("<tr>");

//test表の列数と同じ回数を繰り返す
for($j=0;$j<$num;$j++){

//HTML文を出力 列の内容を <td>で囲んで出力
print("<td>".$row[$j]."</td>");
}
//HTML文を出力 表の改行</tr> を出力
print("</tr>");
}

//HTML文を出力 テーブルの終了を指定
print("</table>");

なにをどのようにしたら良いかお知恵をお貸しください。お願いします。

A 回答 (6件)

こんにちは。



表示項目としては名前とフリガナと詳細ボタンを表示して
一覧に表示するってことですよね。

<?php

$sql = "select number,name,furi from addrmain order by number";

$rs = mysql_db_query($sql);

?>
<table border="1">
<tr><td></td><td>名前</td><td>フリガナ</td></tr>
<?php
// 取得したデータの展開
while($rows=mysql_fetch_array($rs)) {
?>
<form action="detail.php" method="get">
<input type="hidden" name="number" value="<?= $rows['number'] ?>">
<tr>
<td><input type="submit" value="詳細"></td>
<td><?= $rows['name'] ?></td>
<td><?= $rows['furi'] ?></td>
</tr>
</form>
<?php
// End While
}
?>
</table>




すいません。見易さは考慮していないのでうまくソースは整理してください。
こんな風な形で取得した情報を一覧に表示でき、各詳細ボタンを押すと
detail.php?number=1という形でsubmitされるのでdetaile.phpで、
$number=$_GET['number'];
としてnumberを受け取り、
$sql = "select * from addrmain where number=$number";

というSQLを発行して内容を表示すれば詳細情報が表示されると思います。

(動作確認もしていません。ロジック的にはこんな感じになると思います)

詳細というのがボタンじゃなくテキストリンクにしたいとかでしたら
<a href="detail.php?number=<?= $rows['number'] ?>">詳細</a>
とかにすればよいと思います。

この回答への補足

さっそく実行してみましたが、
mysql_fetch_array(): supplied argument is not a valid MySQL result resource in
とエラーになってしまいました。

どうやら
<?php
// 取得したデータの展開
while($rows=mysql_fetch_array($rs)) {
?>
の部分でエラーになっているみたいです。

補足日時:2006/03/09 17:21
    • good
    • 0

まぁご本人も直ぐに気がつくと思いますが



×<?= ['furi'] ?>
○<?= $rows['furi'] ?>

いままでのすべてケアレスミスですよ
気をつけましょう。
    • good
    • 0
この回答へのお礼

ありがとうございました。解決しました。
本当に単純なミスでした。いろいろありがとうございました。

お礼日時:2006/03/10 13:07

文末の;が抜けているからじゃないですか?



×$number = $_GET['number']
○$number = $_GET['number'];

この回答への補足

36行目;を追加でクリアできました。ありがとうございます。

ただここをクリアしたら違う行でエラーになりました。
<TR>
<TD height="16" class="hpb-cnt-tb-cell1" width="128">ふりがな</TD>
<TD height="16" class="hpb-cnt-tb-cell1" width="659"><?= ['furi'] ?></TD>  <---ここです
</TR>
<TR>

検索した結果を表示させようとしたのですが・・。文法がまちがっているのでしょうか?

エラーはここです。
syntax error, unexpected '[' in

補足日時:2006/03/10 12:41
    • good
    • 0

こんにちは。


No1です。すいません、もとの提示してあったソースコピーして
改変してそのまま載せたので気づきませんでした。

mysql_db_queryを使用するならNo3さんの回答通りの引数です。
mysql_queryと勘違いしててそのまま載せちゃいました。

すいません。

この回答への補足

すみませんありがとうございます。
detailのphpにnumberを送った後にエラーがでてしまいます。そのエラーの行がこれなのですが。

Parse error: syntax error, unexpected T_VARIABLE in addrdetail.php on line 36

その36行がこちらです。
$number = $_GET['number']

$sql = "select * from addrmain where number = $number";<======36行目です。

$rs = mysql_db_query($db,$sql)

いきずまってしまいました。質問ばっかりですみません。

補足日時:2006/03/10 11:01
    • good
    • 0

いや、だから指定されてないと思うんですが・・・



× $rs = mysql_db_query($sql);
○ $rs = mysql_db_query($db,$sql);
    • good
    • 0

$rs = mysql_db_query($sql);


でDB名を指定していないからじゃないでしょうか?

そもそもmysql_connectとかしてあります?

この回答への補足

<?php
//DBへ接続開始 サーバー名--localhost ユーザー名--root パスワード--root
$dbHandle = mysql_connect("localhost","root","");

//DBの接続に失敗した場合はエラー表示をおこない処理中断
if ($dbHandle == False) {
print ("can not connect db\n");
exit;
}

//db名 test
$db = "test";

$sql = "select number,furi,name from addrmain order by number";

$rs = mysql_query($sql);

?>
<table border="1">
<tr><td></td><td>名前</td><td>フリガナ</td></tr>
<?php
// 取得したデータの展開
while($rows = mysql_fetch_array($rs)) {
?>
<form action="detail.php" method="get">
<input type="hidden" name="number" value="<?= $rows['number'] ?>">
<tr>
<td><input type="submit" value="詳細"></td>
<td><?= $rows['name'] ?></td>
<td><?= $rows['furi'] ?></td>
</tr>
</form>
<?php
// End While
}
?>
</table>

こんな感じに作ってみたのですが、最初にDBは指定
しているのですが、どうでしょう?

補足日時:2006/03/09 18:04
    • good
    • 0

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

関連するカテゴリからQ&Aを探す