PHP + MySQL
■ このスレッドは過去ログ倉庫に格納されています
0001ECY
NGNG0678676
03/02/07 23:25ID:???0679daad
03/02/07 23:53ID:???0680nobodyさん
03/02/08 16:39ID:7Sg+8jhN.
.
$sql = "SELECT * FROM test_tbl ORDER BY id DESC";
$res = mysql_query($sql, $conn) or die("データ抽出エラー");
while ($row = mysql_fetch_array($res, MYSQL_ASSOC)) {
echo "<tr>";
echo "<td><font size=-1>".$row["g_id"]."</font></td>";
echo "<td><font size=-1>".$row["g_goods"]."</font></td>";
echo "</tr>";
}
.
.
.
でやってしまうと、DBに登録された順序で表示されてしまいます。
表示する前にMyspl抽出したデータ"g_id"を昇順 or 降順でソートしてやりたいのですが...
sort rsort ksort krsortは配列のみに有効でしょうか? このケースでも有効ならどのようにソートしてやればよいでしょうか?
もしくはMysplの関数でソートできるものがありますか?
ご教示願います。
Win2000 PHP 4.2.2 Mysql3.23.51
0681nobodyさん
03/02/08 16:42ID:CaCRikEOhttp://homepage3.nifty.com/digikei/
全部無料だよ
0684nobodyさん
03/02/09 21:29ID:JGZZ388l0686nobodyさん
03/02/10 19:54ID:???0688nobodyさん
03/02/10 21:56ID:???0690nobodyさん
03/02/11 02:01ID:???/ /
./ / i
| ( ゚Д゚) <・・・・・・・・・
|(ノi |)
| i i
\_ヽ_,ゝ
U" U
0691nobodyさん
03/02/11 02:09ID:???0692nobodyさん
03/02/12 12:16ID:???スローモーションで走ってた世代
0693nobodyさん
03/02/12 15:04ID:???0694nobodyさん
03/02/12 15:40ID:???0695nobodyさん
03/02/12 22:59ID:???0696nobodyさん
03/02/13 00:00ID:ZKwcH9W1表を5個くらい並べてSELECTかけるとかは問題ないでしょうか?
0697nobodyさん
03/02/13 00:46ID:???SELECTだけなら問題おきない。
モナーの口座 ギコ猫の口座
100000→ギコ猫に 100000
20000振込み
残額80000にUPDATE
ギコ猫の口座の
残額を120000に増やす
UPDATEしたらネットワークに障害!
結果
残額80000 残額100000
0699nobodyさん
03/02/16 20:51ID:Ldn1JJQS同じように並び替える方法はありませんか?
0700nobodyさん
03/02/18 23:02ID:???0704nobodyさん
03/02/21 21:09ID:Opy86l2aMySQLでもトランザクションは使えますよ。
0705nobodyさん
03/02/21 21:38ID:???0706nobodyさん
03/02/23 02:32ID:KM+rMdK50707nobodyさん
03/02/23 02:34ID:???http://www.geocities.co.jp/Playtown-Domino/8380/
こんな貧弱なコンテンツで
1年でどれほどのアクセスがあるのか。
どうか皆さん、協力してください。
また、これをコピーしてそこらへんに張り付けまくってください。
0709nobody
03/02/25 10:44ID:???簡単なDLカウンタ書けました。
動いた時は感動しました!
今日から掲示板をDB化しながら
更にDBの勉強をしていきます!
0710nobodyさん
03/02/26 09:01ID:???0711bloom
03/02/26 09:05ID:LK+WeUiO0712nobodyさん
03/02/26 11:04ID:???かん゛はれ〜
0713nobody
03/03/02 18:05ID:???例えば↓のテーブルがあって
+---+--+-----+
|uid|no|title|
+---+--+-----+
| 1| 1| 1-1|
| 1| 2| 1-2|
| 1| 3| 1-3|
| 2| 1| 2-1|
| 2| 2| 2-2|
+---+--+-----+
このテーブルからnoが最大値のuid別レコードを取るには?
望む結果↓
+---+--+-----+
|uid|no|title|
+---+--+-----+
| 1| 3| 1-3|
| 2| 2| 2-2|
+---+--+-----+
SELECT uid,MAX(no),title FROM テーブル名 GROUP BY uid;
ってやると↓のようになってしまいます。。。
+---+--+-----+
|uid|no|title|
+---+--+-----+
| 1| 3| 1-1|
| 2| 2| 2-1|
+---+--+-----+
titleはnoが最大値のが欲しいんですが、、、
なにかアドバイスを。。。
0714nobodyさん
03/03/02 19:09ID:???できなかったらごめん。サブクエリー使えれば一発なのになぁ
0715nobody
03/03/02 19:33ID:???ERROR 1054: Unknown column 'no' in 'having clause'
って出ました。
サブクエリー使えないとなると、
SELECT文1つでやるのは無理っぽいですかね。。。
0716nobodyさん
03/03/03 00:57ID:QgOKxjn5PHPとSQLが必要なデータベースを、サイトに設定しようと思っているのですが、
その際、ホスティング業者さんに確認又は依頼すべき点は、なにがあるでしょうか?
某Yahooで回答いただけなかったので、こちらで質問させていただきました。
板汚し、失礼致しました。
0717nobodyさん
03/03/03 01:39ID:???わかってるなら来ないでくださいよ・・・
0719ただいま仕事中
03/03/06 04:19ID:cPlNSv+NSELECT * FROM テーブル名 ORDER BY no DESC 0,1;
これで望む結果の一行目(no=3)がでるはず。でも、
>このテーブルからnoが最大値のuid別レコードを取るには?
>望む結果↓
>+---+--+-----+
>|uid|no|title|
>+---+--+-----+
>| 1| 3| 1-3|
>| 2| 2| 2-2|
>+---+--+-----+
これ見ると、noが最大値(no=3)ではない(no=2)が出力されてるけど、
no=2も必要なの?
0720ただいま仕事中
03/03/06 04:23ID:cPlNSv+NLIMITが抜けてました....ネムイ
0721713
03/03/06 09:24ID:???uid毎にnoが最大値のものが欲しかったものでして。。。
uidが1でnoが最大値のtitle、
uidが2でnoが最大値のtitle
| |
uidがxxでnoが最大値のtitle…以下uidの分だけ続く
まずuidがいくつあるか(同じuidを除いて)調べて、
それからuid毎に720さんのSELECTかまさないと
いけないみたいですね。
がんばろっ
0722ただいま仕事中
03/03/06 13:53ID:i/SuKWBsSELECT uid,MAX(no),title FROM テーブル名 GROUP BY uid ORDER BY uid
0724713
03/03/06 18:02ID:???no毎にtitleが違うんです(書いてませんでしたが(汗))
$sql = "SELECT DISTINCT uid FROM テーブル名";
$idrow = mysql_query($sql, $link);
while ($idres = mysql_fetch_array($idrow)) {
$sql = "SELECT * FROM テーブル名 WHERE uid=${idres['uid']} ORDER BY no DESC LIMIT 0,1";
$row = mysql_query($sql,$link);
$res = mysql_fetch_array($row);
echo $res['uid'] . $res['no'] . $res['title'] . "\n";
}
みたいな感じで解決しました。
アドバイス下さった方々ありがとーございましたー
0725nobodyさん
03/03/06 21:23ID:???板違いかもしれないけどMySQLって事で
http://japan.mysqlstudio.com/
0727725
03/03/06 21:57ID:???もしかしてインターフェースを日本語にしただけ?
0728nobodyさん
03/03/06 22:54ID:???/ /
./ / i
| ( ゚Д゚) <27歳ですか?27歳より年上ですか?年下ですか?
|(ノi |)
| i i
\_ヽ_,ゝ
U" U
0729地獄狂
03/03/09 16:33ID:???から移動してきました。
***
PHP+MySQLで2ch型の掲示板と作ろうと思っています。
最初、ひとつのテーブルに全てのスレの書き込みをまとめようかと思ったの
ですが、それでは遅くなるのではと思いました。
そこで、一つのテーブルに一つのスレの書き込みを格納して、
スレが新しくたつたびにテーブルを追加するという方法にしようかと思うの
ですが、これで問題ないでしょうか?
文章下手でもうしわけないのですが、おねがいします。
**
です。
0730地獄狂
03/03/09 16:47ID:PO+D9jd50732地獄狂
03/03/09 16:58ID:PO+D9jd5えっ??
どういう意味?
0733nobodyさん
03/03/09 16:59ID:???0734地獄狂
03/03/09 17:10ID:PO+D9jd5わけわからん
0735nobodyさん
03/03/09 20:40ID:???どれくらいのアクセスがある掲示板を想定しているか判らないけど、
普通は問題にならない。
おそらく、テーブルを分けた方が遅くなる。
0736nobodyさん
03/03/09 21:27ID:???0737nobodyさん
03/03/09 23:44ID:/LDM9G/p"Flushなんとか"ってもの4つくらいしかメニューに出ないんですが・・・
どうしたらよいですか?
0738nobodyさん
03/03/10 01:19ID:i0ycDkB/たとえば2ちゃんを例にあげると、もし自分だったら、
板ごとにスレテーブル1つとレステーブル1つを用意するかな。
加えて、軽さを維持するために「dat落ち」の処理をしないとね。
0739nobodyさん
03/03/10 02:08ID:Flp9oiBQ0740nobodyさん
03/03/10 03:29ID:YULSwnq/0741nobodyさん
03/03/10 11:31ID:???一定期間更新されていないスレは
スレテーブルとレステーブルから
過去スレテーブルと過去レステーブルに
移動する。もしくは2ちゃんと同じように
HTMLなど静的ファイル化してしまう。
0742nobodyさん
03/03/10 13:40ID:???だったらみんながそれ使えばもうハッピーじゃん。
0743地獄狂
03/03/10 16:25ID:???ありがとうございました。
MySQLはそんな処理をやっても大丈夫なくらい速いのですね。。。
これで安心してMySQLで構築できます。
0745nobodyさん
03/03/11 02:59ID:???だから、PEARのDB_DataObjectに期待するわけだが…
MySQL関数の素使いに比べると、やっぱりスピードが気になるわけで。
元より速度が欲しくてMySQLにしてるのだし。
0746山崎渉
03/03/13 17:04ID:???0747nobodyさん
03/03/16 15:34ID:qwCMGIZU完璧だと思ってたらバグ潰し中にヤバイことに気づいた。
SQLは大文字小文字を区別しないらしいのだ。
select * id='test'でも
select * id='TEST'でも
同じ結果になってしまう。
(移植したい)現行のログがすでに大文字小文字混じっているので
大文字は不可とか強制にはしないで
大文字小文字両方使える&区別させる
(・∀・)イイ!方法はないでしょうか?
0748nobodyさん
03/03/16 15:35ID:qwCMGIZUselect * from log where id='test'でも
select * from log where id='TEST'でも
だ。
だれかお助け〜
0749nobodyさん
03/03/16 15:40ID:???0750nobodyさん
03/03/16 15:55ID:vZDlaTYB0751nobodyさん
03/03/16 17:17ID:KuvmbFJCマニュアル嫁や
--
CHAR および VARCHAR フィールドの値はテーブルの生成時に BINARY 属性が
つけられない限り、大文字と小文字を区別しないでソート・比較されます。
BINARY 属性はその列の値が大文字、小文字を区別して、MySQLサーバを
実行しているマシンのASCII順にソート・比較されることを意味します。
0754nobodyさん
03/03/26 17:17ID:aQSLS2M4実際には別々のロックとして機能させる事は出来ないんですよね?
(GET_LOCKは名前に関わらず呼び出した時点で未開放のロックは解除してしまうみたいなので・・・)
テーブル毎にロックするスマートな方法はありませんかな・・・?
0756nobodyさん
03/03/29 04:17ID:???0757nobodyさん
03/04/10 09:13ID:Gvrywi5t逆に、「あるフィールド以外すべてセレクト」というふうなクエリーはかけないのでしょうか?
0758うんこ
03/04/11 05:12ID:0xz1/vPl"Flushなんとか"ってもの4つくらいしかメニューに出ないんですが・・・
どうしたらよいですか?
0761nobodyさん
03/04/15 10:21ID:???0762山崎渉
03/04/17 12:06ID:???0763nobodyさん
03/04/17 13:47ID:TKMGs//Q原子性が大きく損なわれる・・・、といってみるテスト
0764山崎渉
03/04/20 06:04ID:???( ^^ )< ぬるぽ(^^)
0765nobodyさん
03/04/23 12:33ID:0FJvBfYuてなテーブルがあるとき、 ORDER score DESC でソートしたあと表示すれば、
スコアランキングの完成なのですが、
「自分が何位なのか」をさくっと取得できる方法って無いですかね。
普通に全種得したあと player_id が一致するものを探す、ぐらいしか思いつかなくて。
0766nobodyさん
03/04/23 13:28ID:???自分よりscoreが上のものが何人か勘定しる
SELECT score FROM my_table WHERE player_id = '$foo';
自分のスコアをどっかに記憶(例えば$my_score)
SELECT count(*) + 1 FROM my_table WHERE score > $my_score;
0768nobodyさん
03/04/23 18:28ID:aG9NAudL0769動画直リン
03/04/23 18:29ID:wyYrHR5Q0770質問さん
03/04/23 22:52ID:m9D4gJ4YPerlであったqq();のような関数はPHPにはないのでしょうか?
エスケープシーケンスで\"とかやるのはHTMLが見にくくなって嫌なのですが・・・。
よかったら誰か教えてくださいお願いします。
0771質問さん
03/04/23 22:53ID:m9D4gJ4Y0773初心者さん
03/04/25 11:18ID:???↑のようなテーブルで常に最新のTXTのみを表示させるにはどうすればいいでしょうか?
日によってTXTの件数が変動してしまうのでLIMIT関数が使えなくて…
NAMEには名前、DATEには日付、TXTにはテキスト文が入っています。
わかりにくくてすいません…
0774nobodyさん
03/04/25 14:32ID:???0775初心者さん
03/04/25 14:46ID:???返信ありがとうございます。
ええと例えば今日入力したものだけ表示する、と言ったものを作りたいのです。
↑の方法だと過去に入力されたものまで全件表示されてしまって…
0776初心者さん
03/04/25 15:35ID:???(今日入力されていなければ最後に入力した日のデータ)
させるようなものです。連続申し訳ない;
0777nobodyさん
03/04/26 04:15ID:???現在PHP+MySQLの環境で仕事していて、
SQLのステートメントってどうやって管理したら
メンテナンス性がよくて管理しやすいかという問題をここ最近よく考えます。
最初はまあ何もわからんのでページのソースに直書きしてて、
こりゃメンテしにくい汚いとわかってきて、
各SQLステートメントに名前つけてその名前引数で
SQLを取得する一個のfunctionで1ファイルに全SQLをまとめてみたり、
テーブル毎に1テーブル1クラス1ファイルっぽい感じにまとめてみたり
色々やってみてはいるんですがどうもエレガントでないというか、
微妙に見通しが悪いというか、管理しにくいんです。
実際のところみなさんどうやってSQL管理してますか?
使ってるDBにストアドプロシージャがあってちゃんと使えれば
そんな問題は解決するもんなんですか?そういう問題じゃない?
なんか書いててこれで伝わってるのかどうかよくわからないですが
スマートにSQLを管理する方法があれば教えていただきたいです。
0778nobodyさん
03/04/26 18:40ID:???ここがたいへん参考になる
http://www.phppatterns.com/index.php/article/articleview/25/1/1/
■ このスレッドは過去ログ倉庫に格納されています