• 締切済み

fetch_array文

データベースから取得した値をHTMLにて 出力する際に同じ値がある場合、1つのみ 表示する事は可能でしょうか? データベース 1.西武ライオンズ 2.西武ライオンズ 3.巨人 4.巨人 while($row = mysql_fetch_array($result)){ print "<td>".$row["id"]."<td>"; print "<td rowspan=\"2\">".$row["team"]."</td>"; } 値を配列に格納し、array_uniqueで出来るかと思ったのですが 出来ず…。 希望出力 1. 西武ライオンズ 2. 巨人 お分かりになる方がいらっしゃいましたら ご教授お願い致します。

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

みんなの回答

  • UmJammer
  • ベストアンサー率58% (115/196)
回答No.2

横レス失礼します。 >同じNAMEでも異なるnumberがあるため >distinctは使えないのかな?と思っております…。 思っているだけならまず試してみるべきだと思いますが。 それはともかく、numberがあってもdistinctでnameの重複を取り除くことはできます。 ただし、任意のnumberを取得する必要があるならばそれを条件に加えて抽出するか、すべての結果を受け取ったあとphpで処理してやる必要があるものと思われます。

NeilMania
質問者

お礼

メッセージありがとうございます。 ネットでも調べて見ましたが、なかなかみつからず… distinctをやりましたが、うまく重複が削除されなかった ため、処理の書き方を変えました。 ありがとうございました。

  • oraora777
  • ベストアンサー率20% (56/268)
回答No.1

distinctでも使ってDBから取得の段階で取り除けばいいのでは

NeilMania
質問者

お礼

メッセージありがとうございます。 すいません、説明が足りなかったです。 データベースでは ID NAME number 1. 西武ライオンズ 3 2. 西武ライオンズ 4 3. 巨人 5 4. 巨人 6 同じNAMEでも異なるnumberがあるため distinctは使えないのかな?と思っております…。

NeilMania
質問者

補足

同じNAMEでもnumberは取得する必要があります…。 よろしくお願い致します。

関連するQ&A

  • mysql_fetch_array取得結果を2行で

    mysql_fetch_arrayで取得した結果を、 2行で表示させるには、どうすればよいでしょうか? ※そのままだと横に長くなり過ぎるので、 複数行にして、テーブル横幅を抑えたい、です。 <現状> mysql_connect("localhost", "mysql_user", "mysql_password") or die("Could not connect: " . mysql_error()); mysql_select_db("mydb"); $result = mysql_query("SELECT * FROM mytable"); $body .= "<table> <tr> <th>ID</th> <th>氏名</th> </tr>"; while ($row = mysql_fetch_array($result)) { $body .= "<tr> <td></td> <td>".$row[name]."</td> <td>".$row[preid]."</td>

    • ベストアンサー
    • 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
  • fetch_arrayでのエラー

    fetch_arrayでのエラー はじめまして。初心者ですが、ご教授頂きたいです。 PHP,mysqlでサイトを作っていますが、 while ($row = mysqli_fetch_array(mysql_query($dbc,"SELECT userid FROM user_a"))) { $data = $row['userid']."member"; //テーブル名 mysqli_query($dbc,"DELETE FROM $data WHERE USERID = 'xxx'"); } このように書いたところ、 Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in とエラーが返ってきてしまいます。 テーブル user_a の中にある "userid" を一つずつ取り出し、 それぞれの userid.member というテーブルに xxx がある行を削除していきたいのが目的です。 ネットで探しても、このエラーに関して解決策が書かれているサイトが見当たらなく 途方に暮れている次第です。 どうかお助けください。宜しくお願い致します。

    • ベストアンサー
    • MySQL
  • mysql_fetch_array関数について

    お世話になります。 mysql_fetch_array(結果セット,受け取り配列タイプ) についてなのですが。 たとえばSQLの結果が複数件ある場合。 while($dtRec=mysql_fetch_array("select * from ***",MYSQL_ASSOC){ $result = $dtRec['aaaaa']; } 解説書には一件づつ受け取る結果の配列を 数値による配列で受け取るなら「MYSQL_NUM] フィールド名をキーとした配列で受け取るなら 「MYSQL_ASSOC」を指定、 両方なら「MYSQL_BOTH」を指定すると 書いてあるのですが、配列の意味が分かりません。 $resultにはEOFになるまで毎回、$dtRec['aaaaa'] の内容が格納されるのではないでしょうか? それとも、$resultにexplode関数のように 配列で件数分格納されるのでしょうか? 現在は、自分で配列に格納しようとしているので・・ (うまくいってません) いくら解説書を読んでも、MYSQL_NUM 、MYSQL_ASSOCの意味がよく理解 できません。 宜しくお願い致します。

    • ベストアンサー
    • MySQL
  • PEARのPagerの設定の仕方

    初心者です。 ホームページでDBを利用しているのですが、データ量が多くなるのでページ送り機能をつけたいのでどうすればいいか探していたところ、PEARのPagerを使えばできるとわかりました。 しかしどうもうまくいきません。 Pagerのフォルダもきちんとアップロードしてやってみたのですがうまくいきません。 やりたいのは登録数300件のデータベースの検索結果で、10件ごとにページ送りします。ページ送りは検索結果の最下部におきたいです。 以下のソースのどこに加えればいいか教えていただけないでしょうか。 何度も試してみたんですが、ページ送りしてくれないのです。 よろしくお願いいたします。 <?php extract($_POST); 検索項目のフォーム×3 if($sig=="kb"){ mysql_connect('ほにゃらら','データベース名','パスワード'); mysql_select_db('データベース名'); 検索区分 //クエリの作成 $sql = "select * from データベースの項目 where "; if($wxxx<>""){ 省略 } //本検索 $result = mysql_query($sql); $rows = mysql_num_rows($result); if($rows == 0){ print "検索結果なし"; exit; } else { echo "<b>", $rows, "</b>件HITしました<br />\n"; while($row = mysql_fetch_array($result)){ print("<table>"); print("<tr><td scope='row' rowspan='3'>".$row[""]."</font></td><td>タイトル</td>"); print("<td>".$row["title"]."</td></tr>"); print("<tr><td>項目A<td><td>".$row["koumokua"]."</td></tr>"); print("<tr><td>項目B</td><td>".$row["koumokub"]."</td></tr>"); print("</table>");} } } ?>

    • 締切済み
    • PHP
  • テーブルのデータをarray (array (***, ***)) の形式で取得したい

    id、氏名、年月日(date)、点数(tensu)の列を持つテーブルseiseki があります。 <?php $conn_id = mysql_connect("localhost","root","*****") or die('Error connecting to MySQL'); mysql_select_db('******',$conn_id); $query ="SELECT date,tensu from seiseki; $result = mysql_query($query,$conn_id) or die($query.'failed('.mysql_error().')'); $date = array(); $tensu = array(); while($row = mysql_fetch_array($result)){ $date[] = $row['date']; $tensu = $row['tensu']; } print_r($date); echo "<br/>\n";      ←15行目 print_r($tensu); echo "<br/>\n";      ←16行目 ?> これをブラウザで見ると、 Array ( [0] => 2009-05-01 [1] => 2009-06-07 [2] => 2009-07-24 ・・・・・・ ) Array ( [0] => 80 [1] => 75 [2] => 90 ・・・・・・・ ) となります。 15,16行目をコメントアウトして print_r($row[“date”],[“$tensu”]); とするとエラーになります。 array (array (2009-05-01, 80), array (2009-06-07, 75 ), array (2009-07-24 , 90)・・・・・・・ ); の形式でデータを取得するにはどのようにすれば良いでしょうか?

    • ベストアンサー
    • MySQL
  • 配列に格納された値の変更について

    お世話になります。現在下記のように配列に値を入れています $result=pg_query($db,$sql); $status=pg_result_status($result); $data=array(); while($row=pg_fetch_row($result)){ $data1[]=array("namae_id"=>$row[0],"namae"=>$row[1]); } 値を格納してからnamaeの部分の値を変更したいのですが、どのようにしたらいいでしょうか? 例えばnamae_id=4のnamaeの値を太郎から太郎 様という感じで変更したいのです。 よろしくお願いします。

    • ベストアンサー
    • 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
  • phpのmysql_fetch_arrayに該当する関数はありますか?

    以下のようなphp、MySQLのセレクト文は perlだとどのようになるのでしょうか? $sql="SELECT abc,xyz FROM table "; $res=mysql_query($sql,$con) or die("データベースを検索できませんでした。 mysql_error(); "); $i=0; while($row=mysql_fetch_array($res)) { $abc[$i]=$row['abc']; $xyz[$i]=$row['xyz']; $i++; }

    • ベストアンサー
    • Perl
  • mysql_fetch_objectの書き方を教えて下さい。

    PHP5.1.6を使用しています。 次のスクリプトを書きましたが、データが取得できません。 $conn_id = mysql_connect("localhost","***","***") or die('Error connecting to MySQL'); mysql_select_db('***',$conn_id); $query ="SELECT abcd,efgh from XYZ where name='taro'"; $result = mysql_query($query,$conn_id) or die($query.'failed('.mysql_error().')'); $ydata = array(); $xdata = array(); while($row = mysql_fetch_array($result)){  ← 11行目 array_push($ydata, $row->efgh);   ← 12行目 array_push($xdata, $row->abcd);   ← 13行目 } エラーログを見ると、 PHP Notice: Trying to get property of non-object in /***/***/****.php on line 12 PHP Notice: Trying to get property of non-object in /***/***/****.php on line 13 となっています。 var_dump($row) 句を入れ、ブラウザから見ると、当然ながら(?)bool(false) と表示されます。 11行目の mysql_fetch_array を mysql_fetch_object に入れ換えて while($row = mysql_fetch_object($result)){ としても結果は変わりません。 リファレンスマニュアルやサンプルを参照して種々手直ししましたが、今ひとつ正解に辿り着けません。 データを取得して配列に入れるには、どのように修正すれば良いか、教えて頂けませんでしょうか。

    • ベストアンサー
    • PHP

専門家に質問してみよう