PHPとMySQLを使った顧客管理システムのwhile文の内容を変数に取り込む方法

このQ&Aのポイント
  • PHPとMySQLを使って作成中の顧客管理システムにおいて、while文の内容を変数に取り込む方法について教えてください。
  • 現在、MySQLに登録されている名簿の名前を表示させるスクリプトがあり、その内容を変数に入れたいと考えています。
  • ただし、現在のコードでは一番最後の名前しか変数に入らず、すべての名前を取り込む方法がわかりません。お知恵をお貸しください。
回答を見る
  • ベストアンサー

while文の内容を変数に取り込む方法

PHPとMySQLを使って、顧客管理システムを作っています。 While文の内容を、変数に取り込む方法についてお尋ねします。 MySQLに登録されている名簿の名前を表示させるスクリプトが下記なのですが、 while ($row_s = mysql_fetch_array($rs_s)){ echo $row_s[name]. "<br>¥n"; } ここでechoされる内容を、変数に入れることはできないかと思っています。 下記のようにやると、一番最後の名前だけが変数 $name に入ってしまいます。 while ($row_s = mysql_fetch_array($rs_s)){ $name = $row_s[name]. "<br>¥n"; } 全部を取り込むには、どうすればいいでしょうか?いろいろやってみたのですが、うまくいきません。 わかる方いたら、教えて下さい。

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

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

  • ベストアンサー
  • t_ohta
  • ベストアンサー率38% (5041/13169)
回答No.2

$name = ""; while ($row_s = mysql_fetch_array($rs_s)){ $name .= $row_s[name]. "<br>¥n"; }

nuru361
質問者

お礼

この方法でできました。 ありがとうございました。

その他の回答 (1)

  • edomin7777
  • ベストアンサー率40% (711/1750)
回答No.1

変数を配列にして、どんどん追加していったら良い。

nuru361
質問者

補足

ご回答ありがとうございます。 配列を使うということで、いろいろやってみているのですが、 例えば $name[1] ="鈴木"; $name[2] ="佐藤"; $name[3] ="木村"; というように、配列として名前のデータを取り込むことはできるのですが、 $name[1] ="鈴木"; $name[2] ="佐藤"; $name[3] ="木村"; を $all_name ="鈴木、佐藤、木村"; という具合に、ひとつの(配列でない)変数の中に、全ての名前を取り込む 方法を探しています。 どうも説明不足ですみません。お分かりでしたら、アドバイスいただければ幸いです。

関連するQ&A

  • if文が上手くいかない

    while($row = mysql_fetch_array($res)){ $st = $row['st']; } while($row2 = mysql_fetch_array($res2)){ if(!$st==""){ echo $row2['name'].'<br>出勤<br>'; }else{ echo $row2['name']; } } 上記のように$stが有る場合、無い場合を振り分けています。 一方は有る、一方は無い状態で上記を表示した所 タモリ 出勤 つるべ 出勤 と、両方でてしまいます。 タモリ 出勤 つるべ と片方にしか出ないようにしたいのですが、どうしたらいいでしょうか?? mysql_queryが一つの場合上手くいきましたが、二つの場合上記のようになります。

    • 締切済み
    • PHP
  • 構文の省略について

    下記をもっと省略(短い構文で)して書きたいのですが、どのようなやり方があるでしょうか。 testというテーブルから指定したidのnameを取り出して並べたいだけなのですが、このような長々としたものしか思い浮かびませんでした。 <?php $n1 = 1; $n2 = 2; $n3 = 3; $rs1 = mysql_query("select * from test where id = '$n1';",$conn); $rec1 = mysql_fetch_array($rs1, MYSQL_ASSOC); echo $rec1['name']; echo <br>; $rs2 = mysql_query("select * from test where id = '$n2';"); $rec2 = mysql_fetch_array($rs2, MYSQL_ASSOC); echo $rec2['name']; echo <br>; $rs3 = mysql_query("select * from test where id = '$n3';"); $rec3 = mysql_fetch_array($rs3, MYSQL_ASSOC); echo $rec3['name']; mysql_free_result($rs1); mysql_free_result($rs2); mysql_free_result($rs3); mysql_close($conn); ?>

    • ベストアンサー
    • PHP
  • while文の中にwhile文を書きたいのですが。。。

    while文の中にwhile文を書きたいのですが。。。 現在、下記ソースでプログラムを記述しております。 下記ソースですと、1回目のループのデータは抽出できるのですが、2回目のループだとデータが抽出できません。。 <? while($item0_3 = mysql_fetch_array($res0_3)){ ?> <tr> <td class="A"> <select name="work_partner_com[]"> <? while ($item5_2 = mysql_fetch_array($res5_2)) {?> <option value="<?=$item5_2["com_name"]?>"><?=$item5_2["com_name"]?></option> <? }?> </select> </td> <td class="B"> <select name="work_com[]"> <? while ($item5_3 = mysql_fetch_array($res5_3)) {?> <option value="<?=$item5_3["name"]?>"><?=$item5_3["name"]?></option> <? }?> </select> </td> </tr> <? } ?> 1回目のwhile文で、データーベースの指定したテーブルに格納されている数 2回目のwhile文で、データーベースの指定したテーブルに格納されているマスタデータ数 ご教授いただけますでしょうか。

    • ベストアンサー
    • PHP
  • phpのwhileで希望通りの動作ができない

    以下のようにしてみたのですが「データはありません」という文章が何度も(何行も)表示されてしまいました。 while($test = mysql_fetch_array($sql, MYSQL_ASSOC)){ $name = $test[name]; if($cnt > 0){ echo "データはありません"; echo '<br>'; } elseif(empty($name)){ echo "データはありません"; echo '<br>'; } else{ $name = $name.'<br>'; } } whileで繰り返した結果、すべての$nameが「$cnt > 0」か「empty」の場合だけ、「データはありません」と一回だけ表示したいのですが、どのようにしたらいいでしょうか?

    • ベストアンサー
    • PHP
  • データベースから出力したデータを横並びに

    while($row = mysql_fetch_array($res)){ echo '<div class="aa">'; echo ''.$row['name'].'<br>'; echo'在庫数:'.$row[''].'個<br>'; echo '値段:'.$row[''].'円/個<br>'; echo '<img src='.$row[''].'><br></div>'; } このようにしたら縦に並んでしまうんですが、どのようにしたら横並びになるんでしょうか??

    • ベストアンサー
    • PHP
  • WHILEで取り出しループ中にさらにSQL文を入れたいです。

    こんばんは。 いつもお世話になっております。 またはまってしまったみたいで、どうにもわからなく なってしまいました。 どうかご指導よろしくお願いいたします。 使用環境はPHP5+Apche+MySQL4.0です。 2つのテーブルから【一覧リスト】というページを作って mysq_fetch_array関数で、行をループで呼び出しました。 ここまでは出来たのですが、取り出したキー情報を もとに、別テーブルの情報(文字列)を取り出したい のです。 以下、試してみたコードです。 //SQL発行 $rs = mysql_query("select * from uriage", $conn); //1件ずつ取り出すループ while( $rec = mysql_fetch_array( $rs, MYSQL_ASSOC)){ echo "<tr>"; echo "<td>".$rec['oder_no']."</td>"; $sql = "(select*from syouhin where syouhin_id = '".$rec["syouhin_id"]."')"; $res = mysql_query($sql); $rows = mysql_fetch_array($res); echo $rows["syouhin_name"]; echo "<td>".$rec['siiresaki']."</td>"; echo "<td>".$rec['tanka']."</td>"; echo "</tr>"; } Parse error: syntax error, unexpected T_ECHO というエラーが返ってきています。 エラーの行数はecho $rows["syouhin_name"]; の部分です。 何が悪いのかすら判らなくて…。 どうか、ご指導よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • mysql_fetch_objectにデータを取得させたいのですが、うまく行きません。

    データ型 name varchar(30), item1 char(8), item2 int(6) で、テーブルが下記のようなっています。 | name |item1 | item2 | | taro | abcd | 53 | | taro | efghk | 48 | | taro | lmnp | 02 | while文で array_push($ydata, $row->item1) として $row = mysql_fetch_object($result) にデータを取得させたいのですが(スクリプト下記)、 $conn_id = mysql_connect("localhost","***","***") or die('Error connecting to MySQL'); mysql_select_db('***',$conn_id); $query ="SELECT item1,item2 from XYZ where name='taro'"; $result = mysql_query($query,$conn_id) or die($query.'failed('.mysql_error().')'); $ydata = array(); while($row = mysql_fetch_object($result)){   ←10行目 // array_push($ydata, $row->item1);      //  ここに下記の13、14行目を追記 } var_dump($row);echo"<br />\n"; var_dump($result); print_r($row); echo"<br />\n"; これでブラウザから見ると bool(false) resource(3) of type (mysql result) としか出ません。(19行目の結果は表示されません。) そのため 13: echo "item1",$row['item1'],"<br>"; 14 echo "item2",$row['item2'],"<br>"; と追記してブラウザから見ると、単に [ item1 ]とだけ表示されます。 10 行目を while($row = mysql_fetch_arrayt($result)){ に変えてブラウザから見ると item1abcd item253 imem1efghk item250 item1lmnp item258 bool(false) resource(3) of type (mysql result)   となります。 $row = mysql_fetch_object($result) にデータを取得させるにはどのように修正すれば良いのでしょうか?

    • ベストアンサー
    • PHP
  • if()文が上手くいかない。パート2

    $sql= 'SELECT a.id,a.name,a.ji,a.pass,b.id,b.name,b.day,b.st,b.sh,b.tday,b.tt,b.th,b.go FROM t AS a, ti AS b WHERE a.id=b.id group by a.id ORDER BY b.day DESC'; $res = mysql_query($sql); $sql2 = 'SELECT * FROM ti'; $res2 = mysql_query($sql2); while($row = mysql_fetch_array($res)){ $st = $row['st']; } while($row2 = mysql_fetch_array($res2)){ if(!$st==""){ echo $row2['name'].'<br>出勤<br>'; }else{ echo $row2['name']; } } 改善点御教授下さい。お願いします。 参考:http://okwave.jp/qa/q7424432.html

    • 締切済み
    • PHP
  • PHPで同じページに似た内容のデータベースを表示

    PHPで同じページに同じデータベース(table)から別の条件でリストを表示させています。 もっと簡単でスマートな方法はないか、ご質問させていただきます。 【表示例】 <鈴木さん> 鈴木たろう 090-0000-0000 鈴木まさゆき 080-0000-0000 鈴木あきこ 03-0000-0000 <佐藤さん> 佐藤まさる 090-0000-0000 佐藤ともみ 080-0000-0000 佐藤けいこ 03-0000-0000 【PHP】 <?PHP $sql = "SELECT name, tel FROM table"; $sql .= " WHERE name LIKE '%鈴木%'"; $recordSet = mysql_query($sql); $rows = mysql_num_rows($recordSet); if($rows){ while($row = mysql_fetch_array($recordSet)) { $table .= "".$row['name'].""; $table .= " ".$row['tel']."<br>"; $table .= "\n"; } } echo "<鈴木さん><br>"; echo $table; mysql_free_result($recordSet); ?> <?PHP $sato_sql = "SELECT name, tel FROM table"; $sato_sql .= " WHERE name LIKE '%佐藤%'"; $sato_recordSet = mysql_query($sato_sql); $sato_rows = mysql_num_rows($sato_recordSet); if($sato_rows){ while($sato_row = mysql_fetch_array($sato_recordSet)) { $sato_table .= "".$sato_row['name'].""; $sato_table .= " ".$sato_row['tel']."<br>"; $sato_table .= "\n"; } } echo "<佐藤さん><br>"; echo $sato_table; mysql_free_result($sato_recordSet); ?> 上記のように、同じデータベース(table)から、 「鈴木さん」「佐藤さん」それぞれ条件を設定して表示していますが、 もっと簡単に短いコードで表示させることは可能でしょうか。 また、可能であれば、それを何と呼べば(検索すれば)宜しいのでしょうか。 お願い致します。

    • ベストアンサー
    • PHP
  • php

    while($row = mysql_fetch_array($res,MYSQL_NUM)) { echo $row[1]."\n"; ここの文字コードを調べたいのですがどう書いたらいいでしょうか? 又参考になるサイトがありましたらお願いします