[前][次][番号順一覧][スレッド一覧]

mysql:8817

From: zai <zai <zai91210@xxxxxxxxxx>>
Date: Thu, 19 Feb 2004 06:26:38 +0900
Subject: [mysql 08817] Re: 機種の変更に伴う不具合

zaiです、毎度。

とみたさん、ありがとうございます。
 
> # 新規の話題は古いメッセージへの返信にしない方が良いです。

 はい、気をつけます。
> 
> On Sat, 14 Feb 2004 01:48:15 +0900
> zai <zai91210@xxxxxxxxxx> wrote:
> 
> >  現在も、問題なく、使えるシステム(Windows2000Pro)のデータを、コピーし
> > て、新しいパソコン(WindowsXP Pro)に移しました。具体的には、WEBサーバー
> > も、PHPもMySQLも、全く同じ物をインストールしました(MySQLのデータベース
> > も、PHPのスクリプトも全て、同一にしました、異なるのは、パソコンとOSが違
> > うことです)。PHPでMySQLデータの表示などは、問題なくできるのですが、新規
> > データの追加ができません。問題のPHPは、以下のものです。

 削除もできません。
> 
> 同じクエリを mysql コマンドで試してみるのが良いと思います。問題が PHP 
> なのか MySQL なのかはっきりししますし、エラーになった場合は原因も表示
> されますし。

 確かに、そうですね。
 mysqlコマンドでは、問題なく追加処理が出来ました。また、近藤さんのアド
バイスで、PHPでも追加できましたが、質問のPHPは、追加処理だけのものでした
が、現実は、少し複雑(と言うか、複雑になってしまった)です。と、言うこと
で、mysql か PHP か切り分けることが、私には出来ません。

大変長いPHP(読みやすい短いものにしたい意志はあるのですが、まだ出来ずに
おります。時間もそうですが、能力の方がなくてすみません)です。id(ここで
はfname[0])が、取れていないのかと考え、GET送信に変えて確認をしておりま
す。GET送信文を読んでも問題はなく、勿論オリジナルのコピー元のほうでは、
GETでもPOSTでも追加ができます。

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=Shift_JIS">
<title>診療圏</title>
</head>
<body>診療圏
<?php
function cnv_dispstr2($string) {
  $string = nl2br($string);
  return $string;
}
$svname = "localhost";
$dbname = "RESE";
$tbname = "ken";
$usname = "root";
$psname = "****";
$mycon = mysql_connect($svname, $usname, $psname) or die(mysql_error());
$cnt      = 0;
$COL_DATS = array();
$result   = mysql_list_fields( $dbname, $tbname, $mycon);
while ( $cnt < mysql_num_fields( $result)) {
  $fdname[$cnt]            = mysql_fieldname( $result, $cnt);
  $COL_DATS[$fdname[$cnt]] = ${$fdname[$cnt]};
  ++$cnt;
}
mysql_select_db($dbname) or die(mysql_error());

if ($submit) {
  if (${$fdname[0]}) {
    $where = "$fdname[0]=".${$fdname[0]};
    $i=0;
    $set = ' SET ';
    foreach ($COL_DATS as $key => $dat){
      $set .= (strlen($dat) == 0)? "{$key}=NULL,": "{$key}='{$dat}',";
      $i++;
    }
    $set = chop($set, ',');
    $sql  = 'UPDATE '.$tbname.$set.' where '.$where;
  } else {
    if (${$fdname[1]}=="" || ${$fdname[2]}=="" ) exit();
    $set1=""; $set2="";
    $set1 = ' ( ';
    $set2 = ' VALUES ( ';
    foreach ($COL_DATS as $key => $dat){
      $set1 .= (strlen($dat) == 0)? "": "{$key},";
      $set2 .= (strlen($dat) == 0)? "": "'{$dat}',";
    }
    $set1 = chop($set1, ',');
    $set1 .= " ) ";
    $set2 = chop($set2, ',');
    $set2 .= " ) ";
    $sql  = 'INSERT INTO '.$tbname.$set1.$set2;
  }
  // DBに対してSQL実行
  $result = mysql_query($sql, $mycon) or die(mysql_error());
  echo "updated/edited sql文の確認: $sql<p>";
} elseif ($delete) {
  // レコードの削除SQL実行
  $where = "$fdname[0]=".${$fdname[0]};
  $sql = "DELETE FROM $tbname WHERE ".$where;
  $result = mysql_query($sql, $mycon) or die(mysql_error());
  echo "deleted sql文の確認: $sql<p>";
} else {  // submitを押してないときに、全レコードを編集できるように表示
  if (!${$fdname[0]}) {
    $sql = "SELECT * FROM $tbname ORDER BY ".$fdname[0];
    $result = mysql_query($sql, $mycon) or die(mysql_error());
?>
<table border="1">
<tr>
<td colspan=2 bgcolor="#b00023">ID</td>
<td colspan=1 bgcolor="#b00023">診療圏コード</td>
<td colspan=1 bgcolor="#b00023">診療圏</td>
<td colspan=1 bgcolor="#b00023">操作</td>

</tr>
  <?php
    while ($myrow = mysql_fetch_array($result, MYSQL_ASSOC)) {
  ?>
     <tr>
     <form method="GET" action="<?php echo $_SERVER['PHP_SELF']; ?>">
     <td><input type="submit" value="SYUSEI"></td>
     <input type="hidden" name="<?php echo $fdname[0]; ?>" value="<?php echo cnv_dispstr2($myrow[$fdname[0]]) ?>">
     <td><?php echo cnv_dispstr2($myrow[$fdname[0]]); ?></td>

     <?php
     for ($i=1; $i<3; $i++) { ?>
      <td>
      <input type="text" name ="<?php echo $fdname[$i]; ?>" value="<?php echo cnv_dispstr2($myrow[$fdname[$i]]) ?>">
      </td>
     <?php
     }
     ?>
    </form>

    <form method="GET" action="<?php echo $_SERVER['PHP_SELF'] ?>">
    <td><input type="submit" value="SAKUJO" name="delete"></td>
    <input type="hidden" name="<?php echo $fdname[0]; ?>" value="<?php echo cnv_dispstr2($myrow[$fdname[0]]); ?>">
    </form>
    </tr>
    <?php
    }
    ?>
    <?php
  }
  ?>

  <form method="GET" action="<?php echo $_SERVER['PHP_SELF'] ?>">
  <?php
  if (${$fdname[0]}) {
    // レコードを選択できるように編集
    $sql = "SELECT * FROM $tbname WHERE ".$where;
    $result = mysql_query($sql, $mycon) or die(mysql_error());
    $myrow = mysql_fetch_array($result, MYSQL_ASSOC);
    for ($i=0; $i<$cnt; $i++) {
      ${$fdname[$i]}=$myrow[$fdname[$i]];
    }
    // 編集用のidは非表示
    ?>
    <input type="hidden" name="<?php echo $fdname[0]; ?>" value="<?php echo cnv_dispstr2($myrow[$fdname[0]]) ?>">
  <?php
  }
  ?>
    <tr>
    <td colspan=2><input type="submit" value="TUIKA" name="submit"></td>
    <?php
    for ($i=1; $i<3; $i++) { ?>
      <td>
      <input type="text" name ="<?php echo $fdname[$i]; ?>" value="<?php echo cnv_dispstr(${$myrow[$fdname[$i]]}) ?>">
      </td>
    <?php
    }
  ?>
  <td><input type="reset" name="cancel" value="CANCEL"></td>
  </tr>
  </table>
  </form>
  <?php
}
mysql_close($mycon);
?>

</body>
</html>

 どうしても、解決できません。もう、不思議の世界です!
 アドバイスをよろしくお願いいたします。

> 
> -- 
> とみたまさひろ <tommy@xxxxxxxxxx>
> 日本MySQLユーザ会 http://www.mysql.gr.jp

-- 
zai <zai91210@xxxxxxxxxx>


[前][次][番号順一覧][スレッド一覧]

      8558 2004-01-07 02:39 [zai <zai91210@xxxxxx] count(*) の合計の仕方                   
      8559 2004-01-07 04:59 ┣[UNO Shintaro <uno@xx]                                       
      8561 2004-01-07 15:29 ┃┗[zai <zai91210@xxxxxx]                                     
      8562 2004-01-07 15:56 ┃ ┣[<lavlav@xxxxxxxxxx> ]                                   
      8563 2004-01-07 16:00 ┃ ┃┗[<lavlav@xxxxxxxxxx> ]                                 
      8565 2004-01-07 16:37 ┃ ┗[ML account <ml@xxxxx]                                   
      8566 2004-01-07 16:46 ┃  ┗[ML account <ml@xxxxx]                                 
      8564 2004-01-07 16:22 ┣[Kazuhiro Yoshida <mo]                                       
      8790 2004-02-14 01:48 ┗[zai <zai91210@xxxxxx] 機種の変更に伴う不具合                
      8791 2004-02-14 15:43  ┣[Seto <seto@xxxxxxxxx]                                     
      8792 2004-02-14 20:09  ┣[<konet218@xxxxxxxxxx]                                     
      8793 2004-02-15 03:21  ┃┗[zai <zai91210@xxxxxx]                                   
      8794 2004-02-15 03:43  ┃ ┣[<konet218@xxxxxxxxxx]                                 
      8816 2004-02-19 05:35  ┃ ┃┗[zai <zai91210@xxxxxx]                               
      8796 2004-02-15 06:28  ┃ ┗[Seto <seto@xxxxxxxxx]                                 
      8818 2004-02-19 06:35  ┃  ┗[zai <zai91210@xxxxxx]                               
      8795 2004-02-15 04:18  ┗[とみたまさひろ <tomm]                                     
->    8817 2004-02-19 06:26   ┗[zai <zai91210@xxxxxx]                                   
      8819 2004-02-19 09:47    ┣[Seto <seto@xxxxxxxxx]                                 
      8820 2004-02-19 15:29    ┃┣[<lavlav@xxxxxxxxxx> ]                               
      8824 2004-02-19 21:12    ┃┃┗[zai <zai91210@xxxxxx]                             
      8823 2004-02-19 21:02    ┃┗[zai <zai91210@xxxxxx]                               
      8826 2004-02-19 21:57    ┃ ┗[bon <bon@xxxxxxxxxx>]                             
      8827 2004-02-20 02:19    ┃  ┗[zai <zai91210@xxxxxx]                           
      8821 2004-02-19 18:52    ┗[Hiroto Tsubaki <jak@]                                 
      8825 2004-02-19 21:46     ┗[zai <zai91210@xxxxxx] Re: 機種の変更に伴う不具合(大感謝)