SQLで取得した情報を文字列に変えて配列に戻す方法

このQ&Aのポイント
  • SQLで取得した情報(ID)を文字列に変換し、配列に戻す方法について知りたいです。
  • 取得した情報を特定の文字列に置き換える方法や別の配列に入れ替える方法について教えてください。
  • SQL文で取得した情報(ID)を、別の値に変換して配列に戻す方法について教えてください。
回答を見る
  • ベストアンサー

取得データの置き換え方法

SQL文で取得した情報(ID)を、文字列に変えてまた配列に戻したいのですがどのようにすればいいのかわかりません。 以下で、A.CODEで取得する値は1、2、3というようなIDになります。 この情報を、$siteに入れる際に、「1なら北海道」「2なら東北」というように入れ替えてやりたいのです。 直接情報を入れ替える方法や、別の配列に入れ替えてそれを$siteに入れる等、方法はあると思うのですが、どうしたらいいかわかりません。 よろしくお願いします。 $sql="select A.AREA_ID,A.NAME,A.CODE"; $line = mysql_num_rows($rs); $rs = mysql_query($sql,$db); for($j=0;$j<$line;$j++) { $row = mysql_fetch_row($rs); $site = "$row[1],$row[2],";

  • PHP
  • 回答数2
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

質問文でほとんど回答になっているような気もするのですが こういうことですかね? DBへ直接値を持たないということですので配列で。 $acode = array(); $acode[1] = "北海道"; $acode[2] = "東北"; . . . $sql="select A.AREA_ID,A.NAME,A.CODE"; $line = mysql_num_rows($rs); $rs = mysql_query($sql,$db); for($j=0;$j<$line;$j++) { $row = mysql_fetch_row($rs); $site = "$row[1],{$acode[$row[2]]},";

getamato
質問者

お礼

ありがとうございます。 もういっちょ配列かませばよかったんですね。 教えていただいた通りの記述で解決できました。

その他の回答 (1)

  • calltella
  • ベストアンサー率49% (317/635)
回答No.1

置き換えを行わなくてもそのテーブルにフィールドを追加して SQLで取得したIDを元にUpdateする方法ではダメですか?

getamato
質問者

補足

コメントありがとうございます。 DBへ直接値を持つ事をしないようにIDで値を持ち、インタフェース側に表示するようにしているのでそれができない状態です。

関連するQ&A

  • PHPでのデータ表示画面⇒CSV出力について

    先日より質問に対しコメントありがとうございます。 教えていただいた内容と自分でやった結果3つのSQLでデータを出力し出力順を揃えた方法で表ができました。 これをCSV形式で出力したいのですがこのまま出力できるのでしょうか?それとも別途方法をとる必要があるのでしょうか。 自分の中で今ひとつまとまらないので改めて質問させていただきます。 ソースへの指摘併せコメントよろしくお願いします。 ※現ソース <HTML> <BODY> <?PHP //DB接続部省略 $sql="SELECT I.ITEM_ID,I.ITEM_NAME FROM ITEMS AS I,LIST AS L・・・(略)"; $sql2="SELECT A.SHOP_ID,A.SHOP_NAME,A.ITEM_NAME, IF(L.ITEM_ID=A.ITEM_ID,'○','') FROM・・・(略)"; $sql3="SELECT S.SHOP_ID,S.SHOP_NAME FROM SHOP AS S ・・・(略)"; $rs=mysql_query($sql,$db); $rs2=mysql_query($sql2,$db); $rs3=mysql_query($sql3,$db); $line=mysql_num_rows($rs); $line2=mysql_num_rows($rs2); $line3=mysql_num_rows($rs3); print("<TABLE border=1>"); print("<TR>"); print("<TD>店舗名</TD>"); for($i=0;$i<$line;$i++) { $row=mysql_fetch_row($rs); print("<TD>".$row[1]."</TD>"); } print("</TR>"); print("<TR>"); for($i=0;$i<$line3;$i++) { $row3=mysql_fetch_row($rs3); print("<TD>".$row3[2]."</TD>"); for($j=0;$j<$line;$j++) { $row2=mysql_fetch_row($rs2); if($row2[3] == "") { print("<TD width=25> </TD>"); } else { print("<TD width=25>".$row2[3]."</TD>"); } } print("</TR>"); } print("</TABLE>"); mysql_free_result($rs); mysql_free_result($rs2); mysql_free_result($rs3); mysql_close($db); ?> </BODY> </HTNL>

    • ベストアンサー
    • PHP
  • データの取得方法

    失礼いたします。 SQL文でDBからデータを取得して、それを 表示したいのですがうまくいきません。 どこを間違っているか、どうしたらいいか コメントお願いします。 //他のページからIDを取得 <?php $aid=htmlspecialchars($_GET["id"]); ?> //SQL <?php $sql = "SELECT A.USERID,A.NAME,B.BIL_ID,B.B.BIL_NAME FROM USER A,BIL B WHERE A.BIL_ID=B.BIL_ID AND USER_ID=".intval($_GET["aid"]); !$an = mysql_query($sql,$db) $user = mysql_fetch_row($an); mysql_free_result($an); ?> //データの表示 //SQLで実行した'BIL_ID'を表示したい。 <TD><INPUT type="text" name="bid" value="<?php print(intval($_GET["$user[2]"])) ?>"></TD>

    • ベストアンサー
    • PHP
  • 最大値を取得できない

    最大値を取得して、一意の番号を付加するルーチンです。 最大値を取得できなくて困っています。 // データを取得して表示 $query = "SELECT MAX(cid) FROM " . LB_TABLE_CAT; $result = @mysql_query($query, $db); $num_rows = @mysql_num_rows($result); if($num_rows > 0) { $row = @mysql_fetch_assoc($result); $cid = $row['cid']; $cidに値が入るはずですが、1と出力されます。 テーブル(LB_TABLE_CAT) cid name 1  あああ 2  いいい 3  ううう 100 えええ となっています。 想定では100が入るはずですが、どこがおかしいのでしょうか? phpmyadmin上では、ちゃんと100が出力されます。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • データベースから多次元連想配列でデータを取得できない

    PHP,MySQLともに初心者です いろんなサンプルプログラムを見て少しずつ進めているのですが、本3冊にネットで検索しても解決できないので・・・ function getSelect($field,$table,$where){ $query="select $field from $table $where;"; $result=$this->getResult($query); return $result; } $result=$db->getSelect("*","main","where myouji=$_POST[myouji]"); while($row = mysql_fetch_array($result[result])){ echo "$row[id]"; } こんな感じでmainテーブルからmyoujiに該当するrowを取得したのですが、 Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in とエラーが出てしまいます。 他のところで、 $result=$db->getSelect("*","main","where id=$_POST[id]"); $rows=mysql_fetch_array($result[result]); としたときはエラーなく行くのですが、上のような多次元連想配列(下の方はidを重複させてないので必ずrowが1つ・・・1次元連想配列?)になるとエラーになってしまいます。 これはどう修正すればいいのでしょうか。 たったこれ1行のつまづきで4時間くらいかかってます。 誰か助けてください

    • ベストアンサー
    • PHP
  • MYSQL、PHP. データが入っていない個所を非表示にする方法

    よろしくお願いいたします。 現在、MYSQLとPHPを使ってゲームのデータベースのサイトを作っています。 ゲームのキャラクターなどを登録してあるのですが、キャラクター登録のないゲームのページもあります。 そういうとき、キャラクターがあるときには、 例 ================================================================ FF7に登場するキャラクター ================================================================ ・クラウド ・セフィロス ・コルネオ ・・・ というように出して、データ登録がない場合は(ここでいうと帯ごと)表示させないようにするにはどのようにしたらよいのでしょうか? ifを使うというのは何となく予想しているのですが、実際どのように組んだらよいものかさっぱりわからずに。。 ちなみに、現在の僕のサイトの該当箇所はこのように組んであります。(少し簡略化させていただきました) echo "<h3><div id =midashi>$○○ に登場するキャラクター</div></h3>"; $sql= "select * from game; $result = mysql_query($sql); $rows = mysql_num_rows($result); while($row = mysql_fetch_array($result)){ echo "<p>"; echo $row3["chara"]; echo "</p>"; } 何か説明が足りない個所などございましたらがんがんおっしゃってください。 よろしくお願いいたします!

    • ベストアンサー
    • PHP
  • 取得した列データを行に書き込むには

    取得した列のデータを出力する際に行に対して書き込みたいのですが、 どのように生成すればいいでしょうか。 $row[1]は1列分のデータが読み込まれています。 よろしくお願いします。 $filename = "dltest.csv"; $fp = fopen($filename, "w"); for($i=0;$i<$line;$i++) { $row = mysql_fetch_row($rs); $top=$row[1]; fputs($fp,split(',',$top));

    • 締切済み
    • PHP
  • mysql_fetch_arrayでレコードが入っていないものも取得したい。

    こんにちは。mysql_fetch_array()でテーブルに入っていないレコードも取得したいのですが、どのようにすればよろしいでしょうか。 テーブルはこんな感じです。 仕事 NUM  1   1  2   1  4   1  5   1 その上で、PHPはこのようになっています。 //データの選択 $sql = "SELECT job, COUNT(*) as num FROM org GROUP BY job"; $res = db_query($sql, $conn); //データの出力 while ($row = mysql_fetch_array($res, MYSQL_ASSOC)) { $array = array( "job"=>$row["job"], "num"=>$row["num"] ); array_push($array, array( "job"=>$row["job"], "num"=>$row["num"] )); $tmp[] = $array; } return $tmp; このPHPのあと、Smartyに値を渡し、.tplで「A職(○件)」というようなことをやっています。 このときにフィールド「仕事」のレコード「3」は1つもデータが登録されていない状態です。そのためか、現状ではNULL値として扱われるようで、配列$rowに値を渡せず、.tplのほうではデータが表示されません。そこで、レコード「3」にデータを登録せずに、NULL値ではなく、例えば0などの値を渡したいと思います。 どのようなコードを書けば値を渡せるのでしょうか。よろしくお願いします。

    • 締切済み
    • PHP
  • phpの配列の宣言を自動でしたい

    $result = sqlite_query($sql,$con); // クエリを実行 $row = sqlite_num_rows($result); // 取得したレコード件数を変数$rowに格納する $a[1]=a; $a[2]=b; ~~ $a[rowの数値まで]=z; 上のように$a[$row]=~~;と配列の受け口を作り、そこにデータベースのデータを入れたいのですが、どうすればいいのでしょうか? $array = sqlite_fetch_array($result);とは別の配列にしたいです int seiseki[$row]でもだめでした どなたかお願いします

    • ベストアンサー
    • PHP
  • ホームページを製作していて、以下の表示がされます。

    ホームページを製作していて、以下の表示がされます。 Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/users/0/lolipop.jp-4714bf268f410dba/web/contents/qa/qa.php on line 13 Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/users/0/lolipop.jp-4714bf268f410dba/web/contents/qa/qa.php on line 18 ソース部分を表示してみると、 //-サブメニューテーブル--------------------------------------// $con = mysql_connect("mysql517.phy.lolipop.jp","LA05915237","kyoyutt"); mysql_select_db("LA05915237"); $sql="select * from submenu where id=1 "; $rs=mysql_query($sql); $row=mysql_fetch_array($rs);   ← この部分が、13行目 //-トップパーツテーブル--------------------------------------// $sql="select * from topparts where id=1 "; $rs=mysql_query($sql); $row1=mysql_fetch_array($rs);  ← この部分が、18行目 なにがおかしいのでしょうか? MySQL5なのですが、MySQL4の時には、上記エラーは出ないで動作しておりました。 教えてください。

  • PHP&MySQLデータ削除のスクリプトについて

    はじめまして。 PHP、MySQL始めたばかりの初心者です。 この度、自力で解決出来なく、質問させて頂く事にしました。 現在、MySQL入門以前という参考書を見ながらデータベースを作っていました。削除スクリプトで、どうしても躓いておりまして何が原因が分からずじまいです。下記が呼び出しスクリプトです --------------------------ここから--------------------------- <?php extract($_GET); mysql_connect('localhost','root','xxxxx'); mysql_select_db('xxxxx'); $sql = "select * from xxxxx where id = '{$id}'"; $result = mysql_query($sql); $rows = mysql_num_rows($result); if($rows == 0){ echo "検索データが見つかりませんでした。"; exit; } else { while($row = mysql_fetch_array($result)){ echo "<h2> " , $row["title"] , "</h2>"; echo "<p><font size=\"-2\">#", $row["id"] ," ●",$row["tourokubi"] ,"</font></p>\n"; echo "<p><div class=\"hon\">", nl2br($row["honbun"]), "</div></p>"; echo "<div class=\"key\">keywords: ", nl2br($row["keyword"]), "</div>"; $ukid=$row["id"]; echo "<center> <a href=\"j_sakujo1.php?i=$ukid\"><img src=\"sakujobutton.gif\" alt=\"削除ボタン\" border=0></a>  <a href=\"correct.php?i=$ukid\"><img src=\"shuseibutton.gif\" alt=\"修正ボタン\" border=0></a>  </center>"; } } ?> --------------------------ここまで--------------------------- そして削除スクリプトです --------------------------ここから--------------------------- <?php extract($_POST); extract($_GET); mysql_connect('localhost','root','xxxxx'); mysql_select_db('xxxxx'); //MySQLレコード削除 if($kakunin=="確認"){ $sql = "delete from xxxxx where id = '{$id}'"; mysql_query($sql); echo "レコードの削除が完了しました"; exit; } //削除確認のためのフォーム $sql = "select * from xxxxx where id = '{$id}'"; $result = mysql_query($sql); $rows = mysql_num_rows($result); if($rows == 0){ echo "<p>該当データがありません。</p>"; } else{ while($row = mysql_fetch_array($result)){ echo "<p>このレコードを削除します。</p>"; echo "<form action = \"j_sakujo1.php\" method = \"post\">"; echo "<p>登録日:"; echo $row["tourokubi"]; echo "</p>"; echo "<p>タイトル:"; echo $row["title"]; echo "</p>"; echo "<p>本文:"; echo $row["honbun"]; echo "</p>"; echo "<p>キーワード:"; echo $row["keyword"]; echo "</p>"; echo "<input type = \"hidden\" name = \"ren\" value =\""; echo $row["renban"]; echo "\">"; echo "<p><input type=\"submit\" name=\"kakunin\" value=\"確認\">"; echo "<input type=\"reset\" value=\"リセット\"></p>"; echo "</form>"; } } ?> --------------------------ここまで--------------------------- これで削除ボタンを押すと「該当データがありません。」だけ表示され 登録してあるデータがまったく表示されません。 どこで間違ったのか、どうかご指南お願い致します。

専門家に質問してみよう