PHP初心者です。PHPでMY SQLの連想配列をリンク先に受け渡す方法を質問します。
//area.php
<?php
$db = mysqli_connect('localhost' , 'root' , '' , 'area') or die(mysqli_connect_error());
mysqli_set_charset($db , 'utf8');
$recordSet = mysqli_query($db , "SELECT * FROM osaka");
while($date = mysqli_fetch_assoc($recordSet)){
// var_dump($date);
}
?>
<p><a href="text.php?id=1&town&station">大阪市</p>
//text.php リンク先
<p><?php echo ($_GET['id']); ?></p>
<p><?php echo ($_GET['town']); ?></p>
<p><?php echo ($_GET['station']); ?></p>
上記のプログラムでは連想配列の中身がリンク先に受け渡すことができず、リンク先に受け渡すプログラムやリンク先の指定方法がわからず、困っています
No.7
- 回答日時:
>$dsn = 'mysql:host=localhost; dbname=area';
$dsn = 'mysql:host=localhost; dbname=area;charset=utf8';
とすればよいかもしれません。
またhtml上でもmetaでutfの指定があった方がベターです。
(もしわかればテキストで保存時にutf8n形式で保存してください)
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
・・・・
</body>
</html>
$dsn = 'mysql:host=localhost; dbname=area;charset=utf8';で実現したいプログラムが表示されました
念のため、html上でのutf8指定、テキストで保存時にutf8n形式での保存も確認致しました
たびたび有難うございましたm(__)m
No.5ベストアンサー
- 回答日時:
>area.php側からはidのみを渡す方が、シンプルなプログラムになりますね
idのみ渡す場合はtext.phpで再検索をします
//text.php
<?php
$data=array("id"=>"","town"=>"","station"=>"");//初期化
try{
$dsn = 'mysql:host=localhost; dbname=area';
$user = 'root';
$password = 'xxxx';
$pdo = new PDO($dsn, $user,$password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$id=isset($_GET["id"])?$_GET["id"]:"";
$input=array();
$input[]=$id;
$sql="SELECT id,town,station FROM osaka WHERE id=?";
$stmt = $pdo->prepare($sql);
$stmt->execute($input);
$data= $stmt->fetch(PDO::FETCH_ASSOC);
}catch(PDOException $e){
die($e->getMessage());
}
?>
・・・
表示したい個所
<?PHP
print "ID:".$row["id"]."<br>\n";
if($data["town"]!=="") print "TOWN:".htmlspecialchars($data["town"])."<br>\n";
if($data["station"]!=="") print "STATION:".htmlspecialchars($data["town"])."<br>\n";
//htmlに出力する際にはかならずhtmlspecialchars()をかますこと
?>
たびたび有難うございます
上記のプログラムをそのまま実行する(パスワードは入れる)と、エラーメッセージNotice: Undefined variable: row in・・・未定義の変数でエラーになっているのでしょうか?
No.4
- 回答日時:
なるほど・・・
本来であればarea.php側からはidのみ渡すのが妥当だと思います
while($data = mysqli_fetch_assoc($recordSet)){
print '<p><a href="text.php?id='.$data["id"].'">'.$data["town"].'</p>';
}
としておいて、text.php側で$_GET["id"]を元に再検索して表示
ただどうしてもarea側から値を渡したいのであれば
while($data = mysqli_fetch_assoc($recordSet)){
print '<p><a href="text.php';
print '?id='.$data["id"];
print '&town='.urlencode($data["town"]);
print '&station='.urlencode($data["station"]);
print '">'.htmlspecialchars($data["town"]).'</a>';
print '</p>';
}
的な処理でもよいかも・・・
有難うございます
area.php側からはidのみを渡す方が、シンプルなプログラムになりますね
area.php側を
while~での繰り返し表示と下記のリンクを付け足し
<table>
<tr>
<td><a href="text.php?id=1">大阪市</a></td>
<td><a href="text.php?id=2">堺市</a></td>
<td><a href="text.php?id=3">枚方市</a></td>
</tr>
<table>
text.php側で$_GET["id"]を元に再検索して表示させるには
text.phpにどのようなプログラムを書くことになりますか?
市名、駅名を表示させたい箇所に下記プログラムを書くと思うのですが
<?php echo ($_GET['town']); ?>
<?php echo ($_GET['station']); ?>
No.3
- 回答日時:
//area.php
<p><a href="text.php?id=1&town&station">大阪市</p>
<?php
$db = mysqli_connect('localhost' , 'root' , '' , 'area') or die(mysqli_connect_error());
mysqli_set_charset($db , 'utf8');
$recordSet = mysqli_query($db , "SELECT * FROM osaka");
while($date = mysqli_fetch_assoc($recordSet)){
echo '<p>';
echo 'id = '.$date['id'];
echo ',town = '.$date['town'];
echo ',station = '.$date['station'];
echo '</p>';
}
?>
No.2
- 回答日時:
>SELECT * FROM osaka
まず、きちんと検証したいなら「*」はやめた方がいいです。
idとtownとstationをとれるなら
SELECT id,town,station FROM osaka
そうでないならそうでないなりのカラムの羅列をして問題をきりわけてください
またwhile内でリンクを表示してもいいですが
例示の場合すべて「大阪市」でリンクが作られますが本当にそれでよいのでしょうか?
逆にosakaテーブルにデータが一つしかない前提であればwhileで回す必要はありません。
>まず、きちんと検証したいなら「*」はやめた方がいいです。
idとtownとstationをとれるなら
SELECT id,town,station FROM osaka
了解です
*⇒id,town,stationで書きます
>またwhile内でリンクを表示してもいいですが
例示の場合すべて「大阪市」でリンクが作られますが本当にそれでよいのでしょうか?
<p><a href="text.php?id=1&town&station">大阪市</p>
<p><a href="text.php?id=2&town&station">堺市</p>
<p><a href="text.php?id=3&town&station">枚方市</p>
データベースは、id=1、town=大阪市、station=梅田駅、id=2、town=堺市、station=堺東駅、id=3、town=枚方市、station=樟葉駅
上記のようにリンクは市ごとに作り、市名、駅名を読み込めるプログラムはどうなりますか?
No.1
- 回答日時:
//area.php
<p><a href="text.php?id=1&town&station">大阪市</p>
<?php
$db = mysqli_connect('localhost' , 'root' , '' , 'area') or die(mysqli_connect_error());
mysqli_set_charset($db , 'utf8');
$recordSet = mysqli_query($db , "SELECT * FROM osaka");
while($date = mysqli_fetch_assoc($recordSet)){
print('<p>');
print('id = '.$date['id']);
print(',town = '.$date['town']);
print(',station = '.$date['station']);
print('</p>');
}
?>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHP MySql ページング 2 2022/09/20 06:38
- MySQL php テーブルを作れない 2 2022/11/17 18:22
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- PHP PHPでMysqlにデータがあるかどうか判別したい 1 2023/03/02 11:48
- PHP PHP一覧表示した項目にリンクをはりたい 1 2023/07/12 17:08
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- PHP php エラー 2 2022/10/23 16:43
- PostgreSQL 画像とカテゴリーを出力したいのですが、取得の条件を付ける方法がわかりません。 2 2022/05/01 18:03
- PHP PHP ページング データベース 1 2022/06/16 10:30
- MySQL SQL任意に並び替えをしたい 2 2023/08/28 10:47
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAについて
-
PHPでMY SQLの連想配列をリンク...
-
phpでmysqlを使ってデータベー...
-
アラートでyes noを作りたいです。
-
SQLのSUM関数で取得した値を参...
-
連想配列、オブジェクト配列の...
-
mysql_fetch_objectの書き方を...
-
DBで検索結果に該当するデータ...
-
phpとSQLでアクセスカウンタと...
-
phpでデータリスト作成
-
php 投票システム
-
PHPで[]の使い方について
-
トランザクション処理
-
VBAをつかってクエリの情報を抽...
-
実行時エラー3131 FROM 句の構...
-
PHP + MySQLを使用して詳細画面...
-
クエリObjectをforeachで回す時...
-
php データ削除
-
SQLインジェクション対策
-
Q&Aサイトを作成していてURLの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PHPで[]の使い方について
-
php テーブルが作成できない
-
dbに登録したデータをphpのプル...
-
アラートでyes noを作りたいです。
-
phpでmysqlを使ってデータベー...
-
DBで検索結果に該当するデータ...
-
文字化けが解決できません。お...
-
SELECT結果から動的にコンボボ...
-
checkboxクリック時、SQLを実行...
-
PHPでMySQLデータを呼び出し、w...
-
while文の中にwhile文を書きた...
-
sortable ギブアップです…助け...
-
重複レコードをグループ化した...
-
PHP と MySQL でテーブルの行数...
-
PHPでMySQLのデータを2次元配...
-
mysql>PHPにデータ表示、10件ご...
-
PHPについてなのですが未定義の...
-
VBA初心者です。
-
ラジオボタンをループすること...
-
PHP+MySQLでの配列のinsert文に...
おすすめ情報
お答え有り難うございます
上記のプログラムを実行すると
Fatal error: Call to undefined function print() in C:\xampp\htdocs・・・on line 8
というエラーメッセージが出ます
<p><a href="text.php?id=1&town&station">大阪市</a></p>
<p><a href="text.php?id=2&town&station">堺市</a></p>
<p><a href="text.php?id=3&town&station">枚方市</a></p>
</a>を抜けてました(-_-;)