MySQLで値の置換についての解説

このQ&Aのポイント
  • MySQLのクエリで値「aaa bbbbb cc dddd」を分割置換する方法について説明します。
  • 具体的な操作方法について詳しく解説します。
  • 他の方法との比較も含めて解説します。
回答を見る
  • ベストアンサー

mysqlの置換について

Mysqlのクエリで値「aaa bbbbb cc dddd」を分割置換したい ・「aaa」 ・「bbbbb」 ・「cc」 ・「dddd」 $query = "SELECT * FROM log WHERE"; $sample = $db->rowset_assoc($query); if($sample){ echo "<ul>\n"; foreach($sample as $test){ echo "<li><a href=\"\">{$test['data']}</a></li>\n"; } echo "</ul>\n"; } これだとそのまんまだし・・・。ご存知の方、よろしくお願いします。

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

  • ベストアンサー
  • hymat
  • ベストアンサー率58% (95/162)
回答No.1

foreach($sample as $test){ $data=explode(' ',$test['data']); foreach($data as $token){ echo "<li><a href=\"\">{$token']}</a></li>\n"; } } でしょうかね?

chapital2005
質問者

お礼

ありがとうございます。explodeは使ったことが無かったので、勉強になりました。

関連するQ&A

  • mysqlの置換について2

      http://okwave.jp/qa/q7386074.html にて、類似の質問になりますが、 Mysqlのクエリで値を重複なく分割置換したい場合はどうすればよいのでしょうか? foreach($sample as $test){ $data=explode(' ',$test['data']); foreach($data as $token){ echo "<li><a href=\"\">{$token}</a></li>\n"; } } だと、各クエリの値が 「あああ いいい ううう えええ」 「いいい あああ おおお」 「ううう おおお」 だとすると クエリの値が、「あああ いいい ううう えええ いいい あああ おおお ううう おおお」 となってしまいます。 「あああ いいい ううう えええ おおお」 という形式に重複を排除していのですが、有識者の方、助言をお願いします。

    • ベストアンサー
    • MySQL
  • myqsqlで二つのテーブルを同時に表示したい

    PHP初心者です。 1つのphpファイルの中で行いたいです。 mdb2を使っています。 データベースにある "table1" "table2"の表の中身を同時に?同じページ内に?取り出したいです。 二つの表は結合するのではなく別々に表示させたいです。 1つのテーブルは表示できるのですが、queryの文法が悪いのか jion,orなど使ってもうまくいきません。アドバイスお願いします。 if($key){ $result = $mdb2->query("SELECT * FROM table1); while($aaa = $result->fetchRow(MDB2_FETCHMODE_ASSOC)){ $list .= " <ul> <li>".$aaa['name']."</li> <li>".$aaa['color']."</li> </ul>"; } $result2 = $mdb2->query("SELECT * FROM table2); while($bbb = $result2->fetchRow(MDB2_FETCHMODE_ASSOC)){ $list2 .= " <ul> <li>".$bbb['id']."</li> <li>".$bbb['price']."</li> </ul>"; } } echo $list; echo $list2;

    • 締切済み
    • PHP
  • PHP ループ <li>~</li>の出力方法

    <?php $input_01 = file('list/001.txt'); echo '<ul>'."\n"; foreach( $input_01 as $value ){ $num++; echo "\t".'<li><a href="' .$value. '"><img src="' .$num. '.jpg" alt="" /></a></li>'."\n"; } echo '</ul>'."\n"; /* 1. list/001.txtにはURLが多数入っていると仮定します。上記の構文ですと、<ul>~</ul>の中に全てのURLが出力されます。   例えばこれを以下のように5つずつ順にURLを出力、同時に00001~00005.jpgとなるよう出力するには、どうのような方法が、 軽く、スマートな方法のでしょうか? <ul> <li>~</li> <li>~</li> <li>~</li> <li>~</li> <li>~</li> </ul> 2. echo '<ul>'."\n"; のように、シングル、ダブルクォートを同時に使用する事は、変でしょうか? 色々検索して試行錯誤しましたが、フリーズしてしまいました。ご回答よろしくお願いいたします。 */

    • ベストアンサー
    • PHP
  • css リストを右揃えにできません。。。

    非常にシンプルなことができず、頭を抱えています。 縦に並んだリストを、右揃えにしたいです。 ulに便宜的にborderをつけていますので、 そのボックスの右にピッタリ並べたいのですが … text-align、margin 二通りの指定で試したものの 左揃えになってしまいます(Mac safari firefox)。 なんで~~?? どなたかドウゾ助けてください。よろしくお願いします。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <style><!-- *{ margin:0; padding:0; } ul.align { list-style:none; text-aling:rignt; width:200px; border:1px solid #000;} ul#margin li { list-style:none; margin-left:auto; margin-right:auto;} --></style> </head> <body> <ul class="align"> <li><a href="" title="">AA</a></li> <li><a href="" title="">BBBBB</a></li> <li><a href="" title="">CCC</a></li> <li><a href="" title="">DDDD</a></li> </ul> <ul class="align"> <li>AA</li> <li>BBBBB</li> <li>CCC</li> <li>DDDD</li> </ul> <ul id="margin"> <li><a href="" title="">AA</a></li> <li><a href="" title="">BBBBB</a></li> <li><a href="" title="">CCC</a></li> <li><a href="" title="">DDDD</a></li> </ul> </body> </html>

    • ベストアンサー
    • HTML
  • foreach文をfor文へ変更したい(XOOPSテンプレート)

    XOOPSテンプレートの変更をしたいのですが、やり方が分かりません。 ■[内容] 現状:テーブルにある物をすべてリスト表示 ↓ 変更:リスト表示するものの上位5番目ぐらいまでのリストに、1位・2位・3位・4位・5位とのアイコンを表示させたい ↓ 方法:リスト表示に、<li class="list1">のようにclass属性を動的に付けることが出来れば、後はCSSで画像を背景に敷くことで対応できるのではないかと考えています。(フツーはどうするのか教えていただければ嬉しいです) ■[現状のコード] <ul>  <{foreach item=photo from=$block.photo}>   <li><a href="<{$block.mod_url}>/index.php?lid=<{$photo.lid}>&amp;cid=<{$photo.cid}>"><{$photo.title}></a> (<{$photo.hits}> <{$photo.suffix}>)   </li>  <{/foreach}> </ul> ■[現状の出力結果] <ul>  <li>   <a href="http://www.sample.co.jp/modules/test/index.php?lid=2&cid=1">サンプル1</a>(5 hits)  </li>  <li>   <a href="http://www.sample.co.jp/modules/test/index.php?lid=4&cid=3">サンプル2</a>(4 hits)  </li> </ul> ■[やりたい出力結果] <ul>  <li class="list1">   <a href="http://www.sample.co.jp/modules/test/index.php?lid=2&cid=1">サンプル1</a>(5 hits)  </li>  <li class="list2">   <a href="http://www.sample.co.jp/modules/test/index.php?lid=4&cid=3">サンプル2</a>(4 hits)  </li> </ul> ■質問内容 現状、foreachで<li>だけをループ処理にて取得しているコードへ対して、 リスト表示に、<li class="list1">のようにclass属性を動的につけて取得するには、 どうすればよいのでしょうか。

    • ベストアンサー
    • PHP
  • cssでタグ検索のデザインをしているんですが、うまくいきません。

    スタイルートでテクノラティーのようなタグ検索を作りたいのですが、リストの中身の文字がブロックに入りきらないと、文字全体が改行されてしまいます。 できれえば、文字の一部を前の行に残したいのですが、どのような指定をしたらよろしいのでしょうか? -html <div id="aa"> <ul> <li><a href="#">aaaaa</a></li> <li><a href="#">bbbbb</a></li> <li><a href="#">bbbbb</a></li> </ul> </div> -css #aa { width:100px; height:auto; } ##aa ul { list-style:none; } ##aa li { flort:left; } 大体こんな感じのソースです。 ↓こんな感じになってしまいます。 aaaa bbbb cccc ↓このような感じにしたいのですが・・・ aaaa bbbb cc cc よろしくお願いいたします。

  • mysqlのスマートな書き方

    MySQL5.1とPHP5を使っています。 phpからmysqlのtestテーブルにアクセスして点数順に生徒名一覧を作成したいと思っています。 イメージとしてはこのような感じです。○○○は名前になります。 90点以上 ○○○ ○○○ 80点以上 ○○○ ○○○ ○○○ 70点以上 ○○○ ○○○ ○○○ ○○○ このような一覧を表示するため、下記のように作成したところ上記のような表示をしてくれました。 しかしながら、同じmysql_queryを何度も使っていますし、DBに負担が掛かりそうな気がします(本当に負荷があるのかは分かりませんが・・・) もっとスマートな書き方はないものでしょうか。 よろしくお願い致します。 echo "90点以上"; $rs = mysql_query("select * from test where kamoku = '1' order by tensu desc LIMIT 0, 100;",$conn); while($res = mysql_fetch_array($rs, MYSQL_ASSOC)){ if ($res['tensu'] >= 90){ echo $res['name']; echo "<br>" ; } } echo "80点以上~90点未満"; $rs = mysql_query("select * from test where kamoku = '1' order by tensu desc LIMIT 0, 100;",$conn); while($res = mysql_fetch_array($rs, MYSQL_ASSOC)){ if($res['tensu'] >= 80 and $res['tensu'] < 90 ){ echo $res['name']; echo "<br>" ; } } echo "70点以上~80点未満"; $rs = mysql_query("select * from test where kamoku = '1' order by tensu desc LIMIT 0, 100;",$conn); while($res = mysql_fetch_array($rs, MYSQL_ASSOC)){ if($res['tensu'] >= 70 and $res['tensu'] < 80 ){ echo $res['name']; echo "<br>" ; } }

    • ベストアンサー
    • MySQL
  • mysqlについてサンプルなど教えてもらえませんか

    すいません。今phpなどを使いウェブサイトを作っているのですが、データベースがどうしても 必要となり、参考サイトなどを見ながら作りました。 ほとんどできたのですが、最後に一部データベースの関数などでわからない事があり困っています。 (正直私はプログラムはphp程度が少し分かる程度で、データベースも単純な使い方しかしない 予定なので参考サイトをざっと見ただけでmysqlの事がほとんど分かりません) ググってそれらしい物を探してはいるのですが、私がやりたい事はデータベースから 件数を取りたいだけです。 取った件数をphpで表示したいのですが、何時間やっても良くわかりません。 申し訳ないんですが取り出した後その件数をphpのechoで表示するまでをサンプルとして書いてもらえませんか?(可能であれば「ここでこのような処理が行われている」とコメントがもらえると助かります) データベース関係はphpと違って初心者用のサイトなども無く、書いてある事がほとんど分かりません。 (ここでSELECT COUNT(*)を使うと教えてもらったのですが、SELECT COUNT(*)でググっても サンプルなども出てきません) $pdo = new PDO("mysql:dbname=aaa", "root"); $pdo->query("set names utf8;"); // ------------------------------------------------ $sql = $pdo->query("SELECT COUNT(*) FROM bbb"); $stmt = $pdo->query($sql); $stmt->execute(); $count=$stmt->rowCount(); echo $count; ----------------------------------------------- $result = mysql_query("SELECT COUNT(*) FROM bbb"); $row = mysql_fetch_assoc( $result ); echo $row;

    • ベストアンサー
    • MySQL
  • foreachで配列を、左から縦3列に表示したい。

    foreachで配列を、左から順番に、縦3列で表示したいのですが、どうすれば良いでしょうか? ※CSSでulタグを縦表示指定してます ■表示したいタグ <ul>  <li></li>  <li></li> </ul> <ul>  <li></li>  <li></li> </ul> <ul>  <li></li>  <li></li> </ul> ■やりたいこと(10件だった場合) ・3で割ってちょうどいい感じにして、さらに一番左から縦に順番に表示させていきたい <ul>  <li>1</li>  <li>2</li>  <li>3</li>  <li>4</li> </ul> <ul>  <li>5</li>  <li>6</li>  <li>7</li> </ul> <ul>  <li>8</li>  <li>9</li>  <li>10</li> </ul> ■現状(一番左に表示されるだけ) <ul>  <?php foreach ($arrdata as $data): ?>  <li><?php echo $data['a']; ?></li>  <?php endforeach; ?> </ul> <ul>  <li></li>  <li></li> </ul> <ul>  <li></li>  <li></li> </ul> ・どうしたら良いでしょうか?

    • ベストアンサー
    • PHP
  • PHP+MySQLで文字化けします

    PHPでMySQLに接続して以下のように テーブルの作成・そのテーブルにInsertをすると文字化けします。 PHPサーバーの文字コードはEUC-JP、MySQLの文字コードはlatin1です。 PHPのバージョンは5.04でMySQLのバージョンは4.1.20です。 無料レンタルサーバーなので詳細な設定は変更できません。 <?php // データベースに接続し、選択する mb_language('Japanese'); mb_internal_encoding('UTF-8'); mb_http_output('UTF-8'); $link = mysql_connect('localhost',"user","password") or die('Could not connect: ' . mysql_error()); echo 'Connected successfully'; mysql_select_db('user') or die('Could not select database'); mysql_query("SET NAMES UTF-8",$link); // SQL クエリを実行する $name = 'test'; $query = "CREATE TABLE IF NOT EXISTS `$name` ( `id` varchar(50) primary key, `name` varchar(50), `pw` varchar(50) );"; $result = mysql_query($query) or die('Query failed: ' . mysql_error()); $query = "INSERT INTO $name (id, name) VALUES('test', 'テスト');"; $mojicode = mb_detect_encoding($query); $query = mb_convert_encoding($query, "UTF-8", "$mojicode"); $result = mysql_query($query) or die('Query failed: ' . mysql_error()); // HTML に結果を出力する echo "<table>\n"; while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) { echo "\t<tr>\n"; foreach ($line as $col_value) { echo "\t\t<td>$col_value</td>\n"; } echo "\t</tr>\n"; } echo "</table>\n"; // 結果セットを開放する mysql_free_result($result); // 接続を閉じる mysql_close($link); ?> まだまだPHP、MySQL共に技術が未熟なため 説明不足な部分が多々あるかと思いますがご教授お願いします。

    • ベストアンサー
    • PHP