昨日まで,データのカウントと,リンクについてご指導をいただいた者ですが,その後ご指導された内容を検討しても解決できず,また質問いたしました。よろしくお願いします。
まずは,プログラムですが,主要なところだけ載せます。
<?php
~接続部分は省略~
$link = "select link from table where No = $_GET[id]";
$linksaki = mysql_query($link, $con);
header("location: ".$linksaki);
exit;
?>
データベースから,選択したIDのフィールドlinkにあるURL内容を,"location: "で移動させたいと思っています。この命令の結果は,”Object not found!”つまり,リンク先が見つからないでした。よくよく見てみると,URL部分に「Resource id #3」を意味する「http://...../Resource%20id%20#3」と入っている。つまり,$linksakiにはURLが入っていないということになります。
いろいろ調べましたが,「Resource id #3」の意味は,「データにアクセスして返ってきました」の様な結果の内容なので,データ化する必要があるとのことから,「mysql_fetch_array」や「sprintf」なども試してみましたが,うまくいきませんでした。
初心者ながら,あと少しというところまできたので,「なんとか自分で!!」と検証してみましたが,心が折れてしまいました…。どなたかご指導いただければと思っています。どうぞよろしくお願いします。
No.4
- 回答日時:
ANo.1です。
たびたびすいません。タイトルの時点で問題がありましたね。
厳密な意味でリソースをフィールドの内容にする(データ化する)ことはできません。どこかにそういった記述があったとすればリソースからデータを参照して希望の値を得るということを言いたかったのでしょう。
おっしゃるとおりです。ご指導ありがとうございます。
データベース用語を含めたプログラミングの知識不足です。恥ずかしながら,私も日々成長していると思います…。今後はしっかりとしたタイトルもつけれるよう勉強いたします。
ありがとうございました!!
No.3ベストアンサー
- 回答日時:
ANo.1です。
うまくいきませんでしたか。
改めて書かれたコードを見ましたが、変数の命名の仕方に解釈の誤りが感じられます。
まず$linkについて、代入される内容を見るとSQL文なので$sqlとでもした方がよいでしょう。$linkと書くとリンク先が代入される感じがしますし、マニュアル中ではDBへのリンク(=接続)を格納する変数として使われています。
次に$linksakiですが先の回答でも書いたとおり、ここにはSQLを実行した結果のリソースが入ってきます。ですので$result、$resなどとするのが一般的です。
くどいようですが、mysql_query()の返す結果はリソースであって、select文で指定したフィールドの値そのものではありません。
変数の命名はエラーにはつながりませんが、格納される内容とあまりにかけ離れた名前をつけると誤解や混乱を招き易いので、できるだけ適切な命名を心がけるべきです。
以上を考慮して、以下のように書き直してみます。
//DB接続
$con= mysql_connect( 省略 );
//SQL生成
$sql = "select link from table where No = $_GET[id]";
//SQL発行
$result = mysql_query($sql, $con);
//リンク先を取得
$linksaki = mysql_result($result, 0);
これで$linksakiの内容を確認してみてください。おそらく問題ないはずです。
これが理解できたらmysql_fetch_array()を使った方法にも挑戦してみるのがよいと思います。
何度もありがとうございます。
ご指導のとおり実施したところ,思ったとおり結果が出ました!!
$linksaki = mysql_result($result, 0);では,rowの部分の意味が理解できず"1"と入れてみたり,指定しなかったりということで,エラーが起きていたみたいです。
調べなおすと,MySQLでは,1行目は0行目なんですね…。クエリー命令で指定しているという事は,テーブル(フィールドも)1件しかないということは"0"となる!!納得しました!!!!(間違っていたらすいません…)。何度もご指導ありがとうございました!!
No.2
- 回答日時:
こんにちは!>w<ノ
あれから気になっていました。
#1の方がサンプル付きのページを乗せてくれたので恐らく解決は時間の問題と思います。
前回書きたかったアドバイスをここで。
phpで変数にどんな値が入っているかを確認したい時は
var_dump(中身を確認したい変数);
を使うと良いですよ^^
これを知っているかいないかでエラーが起きた時の原因を理解するまでの時間が圧倒的に変わりますよ^^
書かれているソースに対してvar_dumpを記述するならこうなります。
<?php
//~接続部分は省略~
$link = "select link from table where No = $_GET[id]";
$linksaki = mysql_query($link, $con);
var_dump($linksaki); //中身を見る
//header("location: ".$linksaki); //エラーを見たいので一時的にジャンプさせないようにする
exit;
?>
あと少しですよ!頑張ってください^^
この回答への補足
昨日は本当にお世話になりました。また,気にかけていただきありがとうございます。
ご指導いただいたvar_dump($linksaki)を活用させていただき,次の活路を見出したいと思います。
なるほど…。エラーの中身を見るということも,今後プログラミングする上で非常に使い勝手がありますねぇ。有効活用させていただきます!!
今度報告するときは絶対に「成功しました」にしたいと思います!!
たびたびご指導いただきましてありがとうございました。
何とか目標となる動きをしてくれました!!(実はエラーが起きるフィールドもあるのですが…。でも,フィールドにある値の問題だと思うので,今度こそご迷惑をかけないよう自力で解決して見せます!!)。
var_dump($linksaki); は,いいですね。中身が入っているのに何故飛ばない!?と苦しんでいましたが,中身がわかるということは,次なる手段に向かう事ができるの,技術的にも精神的にも助かりました…。
連日の回答,本当に,本当にありがとうございました!!本当に感謝です!!!!
No.1
- 回答日時:
mysql_query()の返り値はリソース型です。
それを踏まえてmysql_result()なりmysql_fetch_array()なりの説明をよく読めば解決するでしょう。サンプルも載ってますし。
http://jp.php.net/manual/ja/function.mysql-resul …
http://jp.php.net/manual/ja/function.mysql-fetch …
http://jp.php.net/manual/ja/function.mysql-fetch …
http://jp.php.net/manual/ja/function.mysql-fetch …
この回答への補足
早速ありがとうございます。mysql_resultもmysql_fetch_arrayも何度か試したのですが,うまくいかなかったので半べそ状態でした…。他のURLも参照して,全ての内容を熟読して,成功へ向けて努力します!!
感謝です!!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL 書籍の内容はまともでしょうか? 1 2023/01/22 03:07
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- MySQL php テーブルを作れない 2 2022/11/17 18:22
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- MySQL `picture` varchar(255) のコマンドで間違いないでしょうか? 1 2022/11/21 04:08
- Excel(エクセル) VBA : スクレイピングできない 4 2023/05/12 22:26
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
XAMPPで画面が真っ白になります。
-
テーブルに入っているデータと...
-
stringaddslashes 半角¥が消える
-
DB(MySQL)から複数行のデータを...
-
MySQLでデータベースにデータin...
-
Pro*Cの構文エラー
-
DB Error: no such field
-
phpにて出欠登録管理を作成して...
-
PHP+SQLite でSELECT文のWHERE...
-
文字化けが解決できません。お...
-
Accessのテーブルへ複数の主キ...
-
エクセルVBAについて
-
DBで指定した値しか存在しない...
-
実行時エラー3131 FROM 句の構...
-
php テーブルが作成できない
-
PHP初心者です。syntax error, ...
-
insert1つの処理でもトランザ...
-
SQL文が実行できません
-
php テーブルを作れない
-
MySQLのINSERT時にたまに重複に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
mysql_fetch_objectのエラー
-
XAMPPで画面が真っ白になります。
-
テーブルに入っているデータと...
-
sqlから多次元配列に要素を格納...
-
PHP+mysqlでSQL文に文字数制限...
-
stringaddslashes 半角¥が消える
-
phpのエラーについてです
-
PHPで絞り込み検索結果の件数を...
-
PHPエラーが出て困ってます
-
PDOを使いたい
-
CSVをダウンロードさせた際、CS...
-
mysql_query等でレコード数を変...
-
Resource id #3 をフィールドの...
-
ボタンのonclick時における関数...
-
XAMMPが起動しません。
-
SQL文2つ実行
-
PHPのSQLインジェクションはspr...
-
SQLの結果が返ってこない
-
MySQLのデータを使ってプルダウ...
-
会員登録したらメールが送られ...
おすすめ情報