• 締切
  • 困ってます

PHPの画像表示関連(?)プログラムで困っています

  • 質問No.7636542
  • 閲覧数75
  • ありがとう数1
  • 回答数1

お礼率 100% (1/1)

初めまして、おはようございます。
私はhtmlを少しかじった程度です。phpに関しては、これから勉強しようと思っていますが現状ではここ数日webで調べてみた程度の知識しかありません。また、php自体も触れるのは初めてです。どうかご助力願えたらと思います。

現状
1)現在運営されているwebサイトに掲示板がいくつかあります。
そのうち、携帯やpcから画像投稿出来て新着なども表示される掲示板と、コメントのみで画像の投稿、表示が出来ない掲示板の2ヶ所があります。

2)表示させていない掲示板にも画像を投稿、表示させるようにしたい。

問題点
・解決するためにどうしたらいいのか、また原因となっているプログラムが分からない

恐らく原因はこの辺りなんじゃないか、と思われる場所のプログラムは以下の通りです。
file名はthread_controller.phpになります。

<!---------------------thread_controller.php----------------------->

var $name = 'Threads';
var $paginate = array(
'limit' => 10,
'order' => array('Thread.created' => 'desc')
);
var $uses = array('Thread', 'Comment', 'Pic');

var $components = array('Search.Prg');
var $presetVars = array(
array('field' => 'content', 'type' => 'value'),
);

function beforeFilter() {
parent::beforeFilter();
$this->Auth->allow("*");
}

function index($forum_id = null) {
$this->Prg->commonProcess();
if (!$forum_id) {
$this->Session->setFlash('ページが存在しません', 'error');
$this->redirect("/");
}
$this->Thread->recursive = 1;
$threads = array();
// multi threads
if ($forum_id == 34 || $forum_id == 41 || $forum_id == 42) {
$sql = 'select id from (select id, name, created from threads where forum_id = ' . $forum_id .' and locate("-", name) = 0 union all select min(id) as id, substring(name, 1, locate("-", name)-1) as name, created from threads where forum_id = '.$forum_id.' and locate("-", name) != 0 group by 2) Thread order by created';
$res = $this->Thread->query($sql);
$ids = array();
foreach ($res as $thread) {
$ids[] = $thread['Thread']['id'];
}
$threads = $this->paginate(array('Thread.forum_id' => $forum_id, 'Thread.id' => $ids));

$sql = 'select id, title, name from ( select id, substring(name, 1, locate("-", name)-1) as title, name, created from threads where forum_id = ' . $forum_id .' and locate("-", name) != 0 ) Thread order by title, id';
$res = $this->Thread->query($sql);
$subthreads = null;
$prev = null;
foreach ($res as $thread) {
if ($prev != null && $prev['Thread']['title'] == $thread['Thread']['title']) {
$data = $this->Thread->read(null, $thread['Thread']['name']);
$names = explode('-', $thread['Thread']['name']);
$data['Thread']['name'] = $names[1];
$subthreads[$prev['Thread']['id']][] = $data;
} else {
$prev = $thread;
}
}
for($i = 0; $i < count($threads); $i++) {
$id = $threads[$i]['Thread']['id'];
if (array_key_exists($id, $subthreads)) {
$threads[$i]['Thread']['children'] = $subthreads[$id];
}
}

<!------------------------------------------->

もし、このコードが原因じゃないという場合、この辺りなんじゃないか?
というような意見でも幸いです。宜しくお願いいします。m(_ _)m

回答 (全1件)

  • 回答No.1

ベストアンサー率 100% (1/1)

とても見にくかったのでコードは見ず、憶測で申し上げます。
PHPで掲示板を実装する場合、高確率でDB(データベース)と連動させていると思います。(DBとは書きこんだ内容を保存しておくための場所だと思ってください。)

コメントのみで画像の投稿、表示が出来ない掲示板( 以下 掲示板A )
画像投稿出来て新着なども表示される掲示板( 以下 掲示板B )

掲示板A を 掲示板Bのようにしたいとのことですが、掲示板Bは コメント + 画像のURL + 新着 と3つのデータを保存しておけるDBですが、掲示板A は おそらく コメント 1つのデータしか保存できないDBになっていると思われます。

ですので、いくら 掲示板A の PHPを変えたところで保存する場所( 画像のURL + 新着 の 2つのデータを保存しておく DB)がなければ望み通りの動作をさせることは出来ないと思います。

運営されている方に相談してみることをお勧めします。
お礼コメント
el_whiz

お礼率 100% (1/1)

回答ありがとうございます。
お礼遅くなってしまい申し訳ございませんでした。

なるほど、掲示板はDBと連動しているのですね…。明日、DBの辺りをもう少し調べてみようと思います。
掲示板Aを掲示板Bのようにするにはやや難しいのでしょうか。
記述を追加するだけではダメそうな感じですね。

それと、コード見にくくてすみません。
どこからどこまで貼れば良いか判断しかねてそのようにしてしまいました。
運営は会社の方でやっているのですが、このページを組んだ前任者が連絡取れない状況らしく、
他の方は門外漢だそうなので仕方なく私が手を付けている次第です。

もっとも前述したように私もphpに触れるのが初めてですので大差はないかもしれませんが…。
投稿日時:2012/08/14 02:37
関連するQ&A

その他の関連するQ&Aをキーワードで探す

ページ先頭へ