検索結果
DB
- 全てのカテゴリ
- 全ての質問
- リトルエンディアンのデータをテキスト変換して利用したい
いつもお世話になっています。 ある観測生データが「リトルエンディアン」という形式のバイナリファイルです。 これをテキストに変換して、DBに取り込んで利用したいです。 環境としては、Accessの標準モジュールにその機能を作りたいです。 (Visual Basicなどは持っていないので^^;) やりたいことは、 1)当該のファイルを読み込んで、 2)テキストに変換した後、 3)テキストファイルに書き出して、 4)再度それを固定長の定義に従ってDBに取り込んで、 5)必要なフィールドのみ利用したい、 ということです。 この流れのうち、1)と2)がわかりません。 VBAで上記の1)、2)は可能でしょうか? 可能だとしたら、どのような方法がありますか? 3)以降は、Open やPutなどでテキストファイルを書き出すのと同じでよいでしょうか? なお、秀丸エディタのバイナリモードでファイルを開くと、次のように見えます。(行末に必ず","があります) 91,01,D7,07,02,00,07,04,00,00,A1,62,9F,53,1C,00, 75,00,0F,00,12,00,EA,00,E9,00,80,1F,96,6B,8A,43, 93,B9,92,74,93,E0,8E,73,8A,4A,89,5E,82,51,92,9A, いかがでしょうか?
- ベストアンサー
- Visual Basic
- Cirq1646
- 回答数3
- DMZのPHPからLAN内のMySQLへの接続が遅いのですが・・・
初めて質問させていただきます。 現在、公開サーバ(DMZ)のPHPから、DBサーバ(LAN)のMySQLへ、接続を試みています。 mysql_connect()により接続はできるのですが、どうにも時間がかかって困っています(5秒くらい)。 (公開サーバにMySQLをインストールして接続すると、ほぼ待ち時間なく接続されます) 環境、設定は以下の通りです。 (公開サーバ)DMZに接続 Windows 2003 Server プライベート:192.168.0.1 (DBサーバ)LANに接続 Windows 2003 Server プライベートIP:192.168.1.1 (ルータ/ファイアウォール)SonicWALLを使用 DMZ(192.168.0.1)からLAN(192.168.1.1)へアクセス[Any]を許可 WANからDMZ(192.168.0.1)へのアクセス[HTTP]を許可 (PHPのソース) mysql_connect('192.168.1.1', $dbuser, $dbpwd); <<質問>> (1) PHPから、同サーバのMySQLに接続する場合と、別サーバに接続する場合とでは、このレスポンスの差は仕方がないものなのでしょうか? (2) 接続が遅くなる要因になりそうなことがあれば教えてください。 (3) DMZからLANへのアクセスを[全て]許可するのは、セキュリティ上どうかと思うのですが、MySQLにアクセスするのに何を許可すれば良いかわからず[Any]にしています。許可が必要なサービス(ポート?)を教えてください。
- ベストアンサー
- その他(ITシステム運用・管理)
- TC-future
- 回答数1
- パルス符号変調(PCM)方式について
こんにちは、 只今、技術士1次試験 電気電子部門 専門科目 過去問題について勉強中です。 下記問題に関して教えてください。 問題 パルス符号変調(PCM)方式に関する次の記述のうち、誤っているものはどれか。 (H20-28) (1) 標本化定理によれば、アナログ信号はその最高周波数の2倍以上の 周波数でサンプリングすれば、そのパルス列から原信号を再生できる。 (2)量子化における量子化ステップ幅を2倍にすれば、量子化雑音電力は6[dB]減少する。 (3) 量子化の性能評価尺度の1つとして、信号村量子化雑音比がある。 (4) 符号化の符号形式には、自然2進符号、交番2進符号、折返し2進 符号などがある。 (5) 符号化に2進符号を用いる場合、符号ディジット数を1ビット増加 すれば量子化雑音電力は6[dB]減少する。 で解答は2ですが、この問題について、下記の意味を教えて下さい。 自然2進符号、交番2進符号、折返し2進符号、符号ディジット数 この辺りの説明をしている本、資料等を教えて下さい。但し、超専門的な本は時間がかかり読む時間がないため、×です。
- mb_detect_encoding
mb_detect_encodingについてどなたかご教授ください。 PHPによるWebアプリケーションスーパーサンプル http://www.nishi2002.com/phpsample/ にて勉強してるのですが、どうしてもわからない所がありまして 知恵を貸していただきたく投稿いたします。 本書の中で $enc_disp = "EUC-JP"; $enc_db = "EUC-JP"; // データの文字コードを変換する関数 function cnv_enc($string, $to, $from) { // 文字コードを変換する $det_enc = mb_detect_encoding($string, $from . ", " . $to); if ($det_enc and $det_enc != $to) { return mb_convert_encoding($string, $to, $det_enc); } else { return $string; } } とユーザー定義関数を指定して // 取り出したデータを表示する echo "<select name=\"menu1\">"; while ($row = mysql_fetch_array($res, MYSQL_ASSOC)) { echo "<option value=\"".$row["id"]."\">". cnv_enc($row["nam"], $enc_disp, $enc_db)."</option>"; このように使用しているのですが 定義する段階での $det_enc = mb_detect_encoding($string, $from . ", " . $to); この部分がわかりません。 この関数は文字エンコーディングを検出する関数であるというのはわかるんですが、(http://jp.php.net/manual/ja/function.mb-detect-encoding.php)参照 「$from」 のあとの 「.」 の意味などがどうしてもわかりません。 またなぜ引数が3つ指定されているのでしょうか? 調べてみたのですが解答にいきつかず、どなたかご教授お願いします!!!
- MYSQLへのデータサイズの大きなデータの挿入
C APIを用いて、MYSQLにテキストファイルの中身を格納したいと考えています。 以下のプログラムのように一度ファイルの中身をchar型配列に書き出し、配列の中身をクエリにコピーというようにすると、ファイルの大きさに合わせて、非常に大きな配列を確保しなければならないと思います。 int main(void){ MYSQL mysql; char query[1000]; char buf[1000]; FILE *fp; fp = fopen("test.txt", "r"); mysql_init(&mysql); if(!mysql_real_connect(&mysql,ホスト名,ユーザ名,パスワード,DB名,0,NULL,0)){ //エラー処理 } fread(buf, sizeof(char), sizeof(buf), fp ); sprintf(query, "insert into DB名 values(buf)); mysql_real_query(&mysql, query, strlen(query)); } これではメモリの無駄遣いなので、他の方法として、 1.データを分割して複数回に分けて挿入する 2.テキストファイルから直接読み込む を考えました。 しかし 1.は方法が分からず、 2.はリダイレクトを使えばできると思ったのですが、リダイレクトでは テキストファイルにSQLコマンドも記入しておく必要があると思うの で、今回の方法には合いません。 MYSQLのフィールドにC言語から大きいデータを書き込むよい方法があれば教えてください。さらには、読み出し方まで教えていただけると助かります。 よろしくお願い致します。
- 検索項目のデータの比較確認方法が分かりません。
データベースの主キーの時刻と同じ時刻のデータを 持っていた場合には、UPDATEで修正する。主キーと 同じ時刻とは異なったデータを持っている場合には、 INSERTでDBに書き込みをしたいのですが、うまく動 作させることができない状況です。 $DSQ[0][0] = "2007-01-31 11:00:00"; $DSQ[0][1] = 2.5; $DSQ[0][2] = 3.7; $DSQ[0][3] = -0.8; $DDSQ[0][0] = "INSERT INTO data VALUES('".$DSQ[0][0]. "',".$DSQ[0][0]. ",".$DSQ[0][1]. ",".$DSQ[0][2]. ")"; $DDSQ[1][0] = "UPDATE data SET record_time = ".$DSQ[0][0].", data01 = ,".$DSQ[0][0].", data02 = ,".$DSQ[0][1].", data03 = ,".$DSQ[0][2]. ")"; $MySQL['conn'] = @mysql_connect($MySQL['HOST'],$MySQL['USER'],$MySQL['PASSWORD']) or exit('MySQLへ接続できませんでした'); mysql_select_db($MySQL['DATABASE'], $MySQL['conn']); $MySQL['query'] = "SELECT * FROM data WHERE record_time = '$DSQ[0][0]'"; $MySQL['result'] = mysql_query( $MySQL['query'],$MySQL['conn'] ); while($tableD = mysql_fetch_array($MySQL['result'],MYSQL_NUM)) { print_r("data_view = ".$tableD); print("\n"); } if( $DSQ[0][0] != $tableD[0]){ $MySQL['result2'] = mysql_query( $DDSQ[0][0],$MySQL['conn'] ) or exit($i.'番目のデータがMySQLへ書き込みできませんでした'); }else{ $MySQL['result2'] = mysql_query( $DDSQ[1][0],$MySQL['conn'] ) or exit($i.'番目のデータがMySQLへ書き込みできませんでした'); }
- [VB6]プログレスバーコントロールの使用法について
環境:VB6.0+SP5, DB: Adaptive Server AnyWhere こんにちは。 プログレスバーコントロールの使い方について質問させていただきます。 データベースにクエリを投げて、レコードセットを取得する関数myFunctionを次のように書きました。 ここで処理の進捗に合わせてプログレスバーを表示する機能を追加したいと思います。 参考書を調べた結果、↓のようなもの組み込めば良いのだろうと考えましたが、 繰り返し文の中身をどう記述して良いものかわかりません。 申し訳ありませんがお力を貸して頂けないでしょうか? また、もっとスマートな方法があれば、そちらも教えていただけると助かります。 ///////////////////////////////////////////////////// 'プログレスバーコントロールを設置したフォームを呼び出す frm_progressBar.Show frm_progressBar.ProgressBar1.Visible = True frm_progressBar.ProgressBar1.Max = q_rs!rNum For i = 1 To q_rs!rNum frm_progressBar.ProgressBar1.Value = i 'レコード取得 Next i ////////////////////////////////////////////////////// Public Function myFunction(query As String) As Recordset Dim p_rs As Recordset 'DBから取得したレコードセット Set p_rs = New ADODB.Recordset Dim q_rs As Recordset 'レコード件数を格納 Set q_rs = New ADODB.Recordset Dim i As Integer ' 'テーブルのレコード件数を取得 Set q_rs = con.Execute("SELECT COUNT(*) as rNum FROM AppEnd_Logs", , adCmdText) p_rs.CursorLocation = adUseClient p_rs.Open query, con, adOpenStatic Set myFuncsion = p_rs q_rs.Close Set q_rs = Nothing End Function
- ベストアンサー
- Visual Basic
- TORYS
- 回答数2
- PHPとMYSQLでカウンターを作っています
アクセス数を管理画面で表示しようとしています。 **全く変な事をしているかも知れません。。。 DBはこのようになっています、同じ会員のページを合算して表示したいので 0001の会員にはpagename 0001 0001a と言う具合につけて、 0002の会員にはpagename 0002 0002a とつけて行きます pagename varchar(20) access int(11) カウントは出来ているのですが、表示させることが出来ません。 多分、全く的外れなことをしていると思います <?php require_once("dbini.php"); $con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD); $selectdb = mysql_select_db($DBNAME, $con); $sql = "select access from count where like pagename = '0001%'"; $rst = mysql_query($sql, $con); $body = ""; while($col = mysql_result($rst)) { $body .= "総アクセス数". "<br>"; $body .= $col["0001"]+$col["0001s"]. "<br>"; $body .= "トップページアクセス数". "<br>"; $body .= $col["0001"]. "<br>"; $body .= "紹介ページアクセス数". "<br>"; $body .= $col["0001s"]. "<br>"; } mysql_free_result($rst); $con = mysql_close($con); ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META http-equiv="Content-Style-Type" content="text/css"> <TITLE></TITLE> </HEAD> <BODY> <?= $body ?> </BODY> </HTML> 分かりにくい説明かと思いますが、 どなたか分かる方ヒントでも頂けると幸いです よろしくお願いいたします。
- 締切済み
- PHP
- kiyomidesuyo
- 回答数1
- MovableType3.2のエントリーが出来ない
エントリーで日本語を入力後、保存を行ったときに 「アップデート中にSQLエラーが発生しました: Data too long for column 'entry_title' at row 1 」 が表示され、保存が出来ない。 アルファベットのみの入力を行うと、正常に保存されます。 しかし「サイトの確認」を行うと構築がされておらず、「あなたのサイトをよりアクティブに、よりクリエイティブに。次世代ウェブツール "Movable Type" へようこそ ログイン」初期画面が表示されます。 環境は、自分のパソコン(Windows2000SP4)に Apache2.0 ActivePerl5.8.7 MySQL5.0 DBD::MYSQLモジュール MT3.2 をインストールしています。 ファイル場所などは、設定どおりの場所に保存しています。 ●httpd.confファイルの内容 228行目 DocumentRoot "C:/Program Files/Apache Group/Apache2/htdocs" 515行目 ScriptAlias /cgi-bin/ "C:/Program Files/Apache Group/Apache2/cgi-bin/" 521行目 <Directory "C:/Program Files/Apache Group/Apache2/cgi-bin"> 765行目 AddHandler cgi-script .cgi .pl ●mt-config.cgiファイルの内容 28行目 CGIPath http://localhost/mt/ 35~39行目 ObjectDriver DBI::mysql Database mt_db DBUser yagi DBPassword asspie11 DBHost localhost 70行目 # DataSource /www/db 90行目 StaticWebPath http://localhost/mt/mt-static 272行目 PublishCharset shift_jis ●CGIファイルの内容 全ファイル1行目 #!C:/Perl/bin/perl -w
- 締切済み
- CGI
- jetnamikosi
- 回答数1
- phpエラーについて
おはようございます。 PHPにて掲示板を作成しています。 (全文は文字数制限にて掲載することができなかったため、主要な部分を掲載しております) 一通り作成した後、 ブラウザから参照したところ、 Parse error: parse error, unexpected ';', expecting '{' in /***/***.php on line 44 が出力されました。 line 44行目は「function convstr ( $str );」の行を指します。 この場合、問題となっているのは、 44行目から 57行目の間と考えてよろしいのでしょうか? もし、違っていたとするならば、どこまで追っていけばよろしいのでしょうか? また、errorに対するデバッグ手法がありましたら、 具体的な手法を教えて頂けないでしょうか? 例:printfを*行目にprint()の構文で設置する。 どうぞよろしくお願いします。 42:<?php 43: //タグ無効化等の処理をする関数 44: function convstr ( $str ); 45: { 46: //タグを無効化する 47: $str = htmlspecialchars ( $str ); 48: 49: //「'」「"」を全角に置換する 50: $str = stripslashes ( $str ); 51: $str = ereg_replace ( "'", "’", $str ); 52: $str = ereg_replace ( """, "”", $str ); 53: 54: //文字列内の改行を<br>に変換する 55: $str = ereg_replace ("\r\n|\r|\n", "<br>", $str); 56: return $str; 57: } 58: 59: //DBに接続する 60: $conn = mysql_connect ( "localhost", "root", "mysql" ); 61: if ( $conn == false ) 62: { 63: print ( "DB接続エラーです<br>\n" );
- BCPコマンドのcmdファイルを複数行う・・・
お世話になります。 只今、以下の環境でシステム構築を行っています。 OS:Windows2003Server DB:SQLServer2000(SP4) そこでBCPコマンドを使用して複数のテーブルのデータを出力する為にテーブル分のBCPコマンドを記述したcmdファイルを用意して実行してみた所・・・ C:\>bcp * out *.dat -S * -U * -P * -c -t * -r * C:\>bcp * out *.dat -S * -U * -P * -c -t * -r * C:\>bcp * out *.dat -S * -U * -P * -c -t * -r * ・ ・ ・ ※「*」はテーブル名、サーバー名など ・・・と一行目のコマンドが繰り返し表示され実行されてずに無限に繰り返す状態に陥ってしまいました。 cmdファイルを使用せずに1テーブルのbcpコマンドだけを実行すると正常に終了します。 また1度上記の現象に陥ってしまうと今まで動いていたcmd(複数bcpコマンドが記述)を実行しているのにも関わらず失敗したcmdのbcpコマンドが繰り返し表示される状態になってしまいました。 自PCもDBも再起動しましたが直りませんでした。 原因が不明なので非常に困っています。 なんらかの解決方法や情報を頂ければ幸いです。 よろしくお願い致します。
- ベストアンサー
- SQL Server
- noname#30420
- 回答数1
- リカバリに必要なファイルを教えてください
こんばんは。 以前にOracle 9iのDBのバックアップについて質問させていただいたものです。 再度行き詰まってしまい、皆様のご助言をお借りしたく質問させて頂きます。 当初、ORACLE_HOME以下全ファイルをバックアップしてリカバリに備えようとしていたのですが、容量の関係でそれが難しくなってしまいました。 そこで完全リカバリに必要なファイルを考えてみたのですが、以下のファイルで完全リカバリは可能なのでしょうか。 よろしくお願いします。 ■環境■ OS:Solaris(Windows2000から変更になりました…(涙)) DB:9i DataBase Release2 ●コールドバックアップの、ノーアーカイブログです。 ●バックアップとして取得する予定のファイル 1) select name from v$database 2) select name from v$controlfile 3) select member from v$logfile で取得できるファイル ●以下のファイルも必要?と懸念するファイル 4) パラメータファイル 4-1) %ORACLE_HOME%\ADMIN\%ORACLE_SID%\pfile\init.ora.xxxxxxxxxxxx 4-2) %ORACLE_HOME%\database\SPFILE%ORACLE_SID%.ORA 5) パスワードファイル %ORACLE_HOME%\database\PWD%ORACLE_SID%.ORA 6) リスナーファイル %ORACLE_HOME%\network\admin\listener.ora 7) ホスト文字列(?)ファイル %ORACLE_HOME%\network\admin\tnsnames.ora 上記1)~3)のファイルだけでは完全リカバリは無理なのでしょうか。 もしくは、これ以外で必要なファイルはあるのでしょうか。 どうかご助力お願いします。
- 締切済み
- Oracle
- help3hoimi
- 回答数2
- phpmyadminの#1142エラーの解決方法
ド素人感丸出しで申し訳ないのですが、 Laravel9でデータベースのテーブルのデータを表示するため phpmyadminを触っているのですが、 .envの「DB_DATABASE」に使いたいDB名を入れて、 コマンドプロンプトで「php artisan make:migration create_members_table」と入力しました。 そして、マイグレーションファイルを下記のように設定しました。 <?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; class CreateMembersTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('members', function (Blueprint $table) { $table->id(); $table->string('name'); //追加 $table->string('email'); //追加 $table->string('tel'); //追加 $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('members'); } } そうしたら、「設定が保存できません #1142 - INSERT command denied to user 'pma'@'localhost' for table 'pma_userconfig'」というエラーが出てきました。 解決方法を調べていたら、下記を入力したことで解決したという情報があったのですが、 ひとくちに「入力する」と言っても、どこに入力して良いのか分かりません。 (そのままコマンドプロンプトに入力するのか、はたまたphpmyadminのどこかに入力するのか) どこに入力すればよいのか知っている方がいらっしゃいましたら、お願い致します。 GRANT SELECT, INSERT, UPDATE, DELETE ON `phpmyadmin`.* TO '********'@'localhost';
- ベストアンサー
- MySQL
- egg_engineer
- 回答数1
- 2バイト文字を含むXMLファイルのパース
こんばんわyukimura1024です。 JavaでXMLファイルを読み込み、それをもとに別のXMLファイルを作って出力するプログラムを作っています。 環境はWinXPsp2、JDK1.4.2_08でeclipseを使ってます。 現象なのですが、以下のようなソースでtest.xmlを読み込もうとすると、ファイル内に2バイト文字があるときだけ、 org.xml.sax.SAXParseException:文字変換エラー:"Uniconvertible UTF-8 character beginning with 0x83"(行番号が小さすぎる可能性があります) というエラーが出てしまいます。 DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); Document doc = db.parse(new FileInputStream("test.xml")); //←ここでエラー ネットで調べて「ヘッダ部で指定したエンコーディング名と、実際のXMLファイルの文字コードが異なっていないかを確認してください。XMLファイルをシフトJISで保存しているのであれば、ヘッダ部には<?xml version="1.0" encoding="Shift_JIS"?>といった指定を行う必要があります。」というのを見つけて試してみましたがうまくいきません。 とにかく2バイト文字が含まれているとエラーが出てしまいます(TT このエラーが出ないようにするには、どうしたらよいででしょうか? ご存知の方、教えていただけると助かります!よろしくお願いします。
- 締切済み
- Java
- yukimura1024
- 回答数1
- サーブレットから送られてきた文字が表示されない
urizakaです さて、OSはWindows2000、アプリケーションサーバーはTomcat-3.3aという環境でJSP+DB(posgreSQL windows-Native版)でサーブレットからBeanにDBのデータを検索させるというきわめてオーソドックスなプログラムを組んだのですが、どうしたわけかブラウザー(IE6.0)の画面にJSPで設定したタブや文字が表示されず、真っ白に表示されてしまいます。プログラムのエラーかと思って、Tomcatの画面を見てみたのですが、Tomcatにはエラーらしい表示はなく、それどころか表示→ソースの順番に見てみるとちゃんとそこには表示したかったデータのHTMLデータがある状態です。表示→エンコードで文字種類を変えてもだめでした。別にMETAタグで変な設定をしているわけではないのですが・・・ ちなみに、JSPのソースコードは以下のようです <%@ page import = "NeoBean" %> <jsp:useBean id="neobean" scope="session" class="NeoBean"/> <HTML> <head> <title>サンプルでGO!</tilte> </head> <body> <input type="button" value="aaaa"> <H3>サンプル画面表示</H3> <table width="100%" border="1"> <% int i = 0; for(int lp = 1; lp <= neobean.getID().size(); lp++){ %> <TR> <TD width="20%"> <% out.println(neobean.getID().elementAt(i)); %> </TD> <TD width="80%"> <% out.println(neobean.getName().elementAt(i)); %> </TD> </TR> <% i++; } %> </table> </body> </HTML> すみませんが、ご存知の方よろしくお願いします。
- 検索して持ってきた数値をfor文に使いたい
urizakaです。 現在、ある組織に所属した人間の数と名前を調べ、その所属した人間がある業務に該当しているかどうかを調べるという処理を作っています。その際に調べてきた数理まで処理を行うという処理を作るためにfor文を使おうと思っているのですが、 調べてきた数値というのは、 String c_code_staff = new String(); public void searchFlag1(){ int num; String sf1Stmt = "select count(*) from m_staff where code_org='" + s_code_org +"'"; try{ open(); Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery(sf1Stmt); while (rs.next()){ c_code_staff = rs.getString(1); } rs.close(); stmt.close(); close(); } catch(SQLException ex){ System.out.println("searchFlag1のDBエラー : " + ex); System.out.println("searchFlag1のSQL" + sf1Stmt); } catch(java.lang.Exception ex){ System.out.println("searchFlag1のDB ErrorB : " + ex); } } という処理を使うため、STRING形になっているので、このままではfor文には 代入できない状態です。c_code_staffをintで宣言という手も考えたのですが、intでは宣言できなかったため、駄目でした… すみませんが、javaでStringをintに変換する方法についてご存知の方宜しくお願いします。
- VBで作成したEXEを実行するとエラーになってしまいます
いつもお世話になっています。 早速ですが、VB6.0で作成したEXEを実行すると、 DB(Oracle)に接続する際、接続できなくなってします。 デバックモードでは(F8のステップ実行でもF5"開始"でも)問題なく処理が実行されるのですが、 変数も何も変更しないのに、接続できない時のリターンコードが返されます。 実行時のDBへの接続状況を確認しても自分以外接続していませんでした。 接続用のサブルーチンは他の人が作成したものですが 他のプログラムでは正常に動作します。 接続する直前でMSGBOXで接続する引数を表示してみたの ですが違いはありませんでした。 このプログラムでは、 (1)CreateObjectでEXCELファイルをOpenして、 データ読込 Application.workbooks.closeでDocumentをクローズ (2)CreateObjectでOOfO(Oracle for object for OLE)でOracleに接続します。 この段階でOracleへの接続がエラーになってしまいます。 デバックモードとEXEからの実行でなにか違いがあるのでしょうか? プログラムの製造が先に進まなくて大変困っています。 誠に申し訳ないのですが、誰かわかる方がいましたら、 直ぐに回答をお願いします。
- 締切済み
- Visual Basic
- y-kawamura
- 回答数2
- ループ処理について
こんにちわ。ループ処理についての質問があります。 現在、ページ内での「前へ」というボタン設定をしています。その際、コード番号を元にして値をもってきていますが、1つ前のコードがない場合、DB内の更に前のコードを自動的に調べて持って来たいのです。 コードのtypeがTEXTで、値が03-00122のように入っています。 1つ前だけならこれでできるのですが、DB内の更に前のコードを自動的に調べて作成する方法が多分ループ処理を使って、$rs==1の時(データが存在する時)にぬければいいと思うのですが・・ どなたかご教授の方、お願いします。 php4.2です。 //年度取得 $N=substr($Number,0,3); //「前へ」 $i=1; $H=substr($Number,-5)-$i++; $I='000'.$H; $J=substr($Number,0,2); $BackNumber=$J.'-'.substr($I,-5); //$BackNumberがあるか確認 $sl="select * from student where number='$BackNumber'"; $rs=pg_exec($con,$sl); $row=pg_numrows($rs); //numberのmin値を得る $min = "select min(number) from base where number like '$N%'"; $resource_id = pg_exec($min); $remin = pg_result($resource_id, 0, "min"); // 1ページ目じゃなかったら「前へ」をつける if ($remin != $Number){ $prev = $page - 1; print("<A HREF=\"base.php?Number=$BackNumber\"><I>前へ</I></A>\n"); print(" \n"); }
- ループ文で呼び出したデータの複製方法
お世話になっております、 PHP初心者の者です。 <form method="post" action="links-loop.php"> <table> <?php for($a = 1; $a < 10; $a++){ while($row=mysql_fetch_assoc($result)) { print "<tr>"; print "<td>"."$a"."</td>"; print "<td>id = {$row["id"]}</td>"; print "<td>name = {$row["name"]}</td>"; print '<td><a href="http://localhost/test/'."{$row["slug"]}".'">'."{$row["slug"]}".'</a></td>'; print '<td><img width="200" height="200" src="'."{$row["links_img"]}".'"/></td>'; print "<td>{$row["description"]}</td>"; print '<td><input type="button" value="複製"></td>'; print "</tr>"; $a++; } } ?> </table> </form> 現在ループ処理によってDBから投稿した記事を一覧で表示しています。 表示された一覧記事一つ一つにボタンをつけてボタンを押したら その記事をDB上に複製する方法が思いつかずに困っております。 できればページ遷移を行わずに複製が理想なのですが、 この場合<input type="text" value="{$row["id"]}" >を非表示で呼び出す形で宜しいのでしょうか? この場合連続で呼び出されているデータから一つの記事だけ選択して 複製するにはどのような処理にすればよいのでしょうか? 中々解決策を探しても見つけることができませんでした。 もし宜しければご回答いただけましたら幸いでございます。 宜しくお願い致します。
- ベストアンサー
- PHP
- hokutoken4rou
- 回答数1
- エクセルの関数でピボットテーブルのような集計
以下のようなテスト結果の表(DB)があります。 列:A,B,C,D,E,F,G,H,I,J,K,L,M,N,O ,,,,1700,小野,,,,2,,0,A,B,0 ,,,,1200,小野,,,,4,,1,C,0,C ,,,,1700,柴田,,,,5,,4,A,B,0 ,,,,1400,矢野,,,,3,,4,B,0,A ,,,,1200,伊藤,,,,4,,1,C,D,0, ,,,,1000,田村,,,,4,,3,D,C,A F列には、名前がフルネームで入力されています。同一人物が複数あります。 J列には、数字が1,2,3,4 L列には、A,B,C,D,E M列には、A,B,C,と数字の0 N列には、A,B,C,と数字の0 O列には、A,B,C,と数字の0 が、それぞれ入力されています。 このDBを元に L,M,N,Oのデータの個数を名前別に以下のように集計をしたいのです。 J , L , M ,N,O 名前,1,2,3,4,計,A,B,C,D,E,計,A,B,C,0,計,.... 小野, ピボットテーブルで考えましたが、5回行わねばならず、結合も考えると関数で何とかならないものか と質問させていただきました。 別に関数でなくても、もっと有効な方法がありましたらそれで結構です。御教示下さい。
- ベストアンサー
- その他MS Office製品
- Siam0710
- 回答数5