共有カテゴリー追加について


投稿ツリー


前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 | 投稿日時 2012/2/27 2:54
ホーリー 

こんにちは、お世話になります。

0.22を下記の環境下で使用しています。
XC Legacyバージョン : XOOPS Cube Legacy 2.2.1 Beta1
使用言語 : japanese
オペレーティングシステム : Windows
サーバー : Apache/2.2.20 (Win32) PHP/5.2.17
PHPバージョン : 5.2.17
MySQLのバージョン : 5.0.27-community-nt

共有カテゴリーを追加しようとすると「追加しました」と表示されるのですが、追加できずにいます。再度追加作業を行っても「追加しました」と表示されるだけで追加されません。

今4つのカテゴリーが追加されていますが、これら4つは旧バージョン(追加した時のバージョンは忘れました)で追加しました。今回は0.22でさらに1つ追加しようとしています。

何か対応する方法があれば、教えてください。

宜しくお願い致します。

投票数:0 平均点:0.00
返信する
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2012/2/27 9:22
なーお  長老   投稿数: 1744

ホーリーさん、こんにちは。

カテゴリー追加がうまくいかないとのこと。
以下、確認いただきたい内容です。

1、個人カテゴリーの追加は問題無くできますか?

2、phpMyAdminなどで、データベース「(prefix)_(d3diary)_category」テーブルのフィールドは、問題ないですか? xoops_trust\Path/modules/d3diary/sql/mysql.php 内の記載と相違ないか見てください。 また、追加を試みたデータが登録されているかいないか、確認してください。

3、上記正常なときは、main/editcategory.php 内の96行目付近の//create 処理の以下の部分をコメントアウトしてリダイレクトしないようにしてみて、 SQLデバグやphpデバグなど色々なデバグ環境でカテゴリー追加を試みて、表示されるエラーを教えてください。 (リダイレクトしないことで別のエラーが出ますけど、データ追加に関わる部分だけで結構です)

96
    //redirect_header("index.php?page=editcategory",2,_MD_CATEGORY_CREATED);

以上、よろしくお願いします。

投票数:0 平均点:0.00
返信する
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2012/2/28 2:44
ホーリー 

お世話になります。
まいど、まいど、すみません。
(自分でチャントdebugできればいいのですが…)

1
2
3
4
5
6
7
MySQL/Blocksデバグ
/*!40101 SET NAMES ujis */
/*!40101 SET SESSION collation_connection=ujis_japanese_ci */
 
INSERT INTO aaaa_d3diary_category (uid, cid, cname, corder, subcat, blogtype, blogurl, rss, openarea, dohtml, vgids, vpids) VALUES ( '0', '10005', '\Ô\°\é\¤\Õ', '10005', '', '', '', '', '', '', '', '' )
Error number: 1366
Error message: Incorrect integer value: '' for column 'subcat' at row 1

subcatはtinyint(1) の型ですが、ブランクをセットしているため、ブランクはtinyintでは使えませんってエラー出しているようです。

category.class.phpのinsertdb関数をザックリ確認したのですが、$this->subcatはどこでセットされているのでしょうか?教えて下さい。お願い致します。

ご迷惑をお掛けしますが、宜しくお願い致します。

投票数:0 平均点:0.00
返信する
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2012/2/28 7:14
なーお  長老   投稿数: 1744

ホーリーさん

その辺は変えていないし同じSQLでも当方の環境では問題無くInsertされるんですが、環境依存のようですね。 前回カテゴリー作成したときから、環境が変わったりしてますか?

取り急ぎ、

95
    $category->insertdb($mydirname, $common_cat);

の前に4行追加し、

95
96
97
98
99
    $category->subcat=0;
    $category->blogtype=0;
    $category->openarea=0;
    $category->dohtml=0;
    $category->insertdb($mydirname, $common_cat);

として見て下さい。

まあこの辺のコードはかなり未熟ですね。直した方がいいけど、とりあえず上記で凌いでください。

投票数:0 平均点:0.00
返信する
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2012/2/28 14:00
ホーリー 

こんにちは、御世話になります。

引用:
なーおさんは書きました:
ホーリーさん

その辺は変えていないし同じSQLでも当方の環境では問題無くInsertされるんですが、環境依存のようですね。 前回カテゴリー作成したときから、環境が変わったりしてますか?

取り急ぎ、

95
    $category->insertdb($mydirname, $common_cat);

の前に4行追加し、

95
96
97
98
99
    $category->subcat=0;
    $category->blogtype=0;
    $category->openarea=0;
    $category->dohtml=0;
    $category->insertdb($mydirname, $common_cat);

として見て下さい。

まあこの辺のコードはかなり未熟ですね。直した方がいいけど、とりあえず上記で凌いでください。

前回、御迷惑をお掛けしました時に、IISからApache、mySQLのバージョンアップを行なっております。

頂いた内容から、とりあえず初期化しておけば良いと判断しましたので、勝手ながらcategory.class.phpのclass D3diaryCategoryのconstruct時に変数を初期化するようにしてみました。
(頂いた対応方法を無視してすみません)

21
22
    public function __construct(){
    }

修正後

21
22
23
24
25
26
27
28
29
30
31
32
33
34
    public function __construct(){
        $this->uid = 0;
        $this->cid = 0;
        $this->cname = '';
        $this->corder = 0;
        $this->subcat = 0;
        $this->blogtype = 0;
        $this->blogurl = '';
        $this->rss = '';
        $this->openarea = 0;
        $this->dohtml = 0;
        $this->vgids = '';
        $this->vpids = '';
    }

とりあえず、上記方法でカテゴリ追加は問題無く動く用になりました。
他の箇所に関しては動作確認中です。

上記方法で問題がある場合には、頂いた方法で対応したいと思います。

私はまだまだ、XCLどころかphpに関する技術力すら持っておらず、d3diaryを使わせて頂きながらd3diaryでphpやXCLに関する勉強をさせて頂いております。見当はずれな質問やらベストでは修正やら対応を行なう事が多々ありますが… 今後も宜しくお願い致します。 m(__)m

ほんと、すみません。 m(__)m

投票数:0 平均点:0.00
返信する
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2012/2/28 17:57 | 最終変更
なーお  長老   投稿数: 1744

ホーリーさん、こんにちは。

ご報告、ありがとうございます。

引用:

category.class.phpのclass D3diaryCategoryのconstruct時に変数を初期化するようにしてみました。

うん、そのほうが他の条件でも初期化されるのでベターですね。 :-)

私が初期化を書くなら、そこよりも変数宣言のほうに書いちゃうかな。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
<?php
class D3diaryCategory
{
    var $uid = 0;
    var $cid = 0;
    var $cname = '';
    var $corder = 0; 
    var $subcat = 0;
    var $children;
    var $parent;
    var $blogtype = 0;
    var $blogurl =0;
    var $rss = '';
    var $openarea = 0;
    var $dohtml = 0;
    var $vgids = '';
    var $vpids = '';
投票数:0 平均点:0.00
返信する
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2012/3/1 18:32
ホーリー 

御世話になります。

参考にさせて頂きます。 m(__)m

投票数:0 平均点:0.00
返信する

このトピックに投稿する

題名
ゲスト名
投稿本文
  条件検索へ