• 締切
  • すぐに回答を!

クラスについて

  • 質問No.4689435
  • 閲覧数33
  • ありがとう数0
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 33% (14/42)

今作っているプログラムのソースが以下のようです

<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=UTF-8">
<input type="hidden" name="ie" value="UTF-8">
<title>7-4 MySQLクラスでのデータの表示</title>
</head>
<body>
<b>入力された条件&nbsp;&nbsp;&nbsp;&nbsp;</b>
<?php
// 検索条件の表示
print "直接入力:";
print $_POST['chokusetsu'];
print "&nbsp;&nbsp;&nbsp;&nbsp;読み:";
print $_POST['yomi'];
print "&nbsp;&nbsp;&nbsp;&nbsp;画数:";
print $_POST['kakusuu'];
print "&nbsp;&nbsp;&nbsp;&nbsp;部首:";
print $_POST['busyu'];
print "&nbsp;&nbsp;&nbsp;&nbsp;の検索結果";

$search_key1= addslashes($_POST['chokusetsu']);
$search_key2= addslashes($_POST['yomi']);
$search_key3= addslashes($_POST['kakusuu']);
$search_key4= addslashes($_POST['busyu']);
//print $search_key1;
//$search1にはきちんと値が入っている
require_once("mysql.php");// MySQLへのID・パスワードの取得をするファイルへのアクセス
//require_once("kanjiteigi.php");//ユーザ定義関数ファイルへのアクセス
function kensaku($str1,$str2,$str3,$str4){
$GLOBALS["mysql"] = new MySQL;
$GLOBALS["sql"] = "SELECT * FROM tankanji
WHERE
kanji like '%$str1%'
AND
(onyomi like '%$str2%'
OR
kunyomi like '%$str2%')
AND
kakusuu like '%$str3%'
AND
busyu like '%$str4%'";
$GLOBALS["mysql"]->query($GLOBALS["sql"]);
}
// 検索条件を変数に代入してDB内を検索
kensaku($search_key1,$search_key2,$search_key3,$search_key4);
//print $sql;
//$mysql->query($sql);
?>




//require_once("kanjiteigi.php");このような形でコメントアウトしてますが、本当はkanjiteigi.phpの中に
function kensaku($str1,$str2,$str3,$str4){
$GLOBALS["mysql"] = new MySQL;
$GLOBALS["sql"] = "SELECT * FROM tankanji
WHERE
kanji like '%$str1%'
AND
(onyomi like '%$str2%'
OR
kunyomi like '%$str2%')
AND
kakusuu like '%$str3%'
AND
busyu like '%$str4%'";
$GLOBALS["mysql"]->query($GLOBALS["sql"]);
}

と記述している関数をいれて参照してきたいのですが、kanjiteigi.phpにどのような記述をしていいかで悩んでいます。グローバル変数とかもややこしくて…


どなたかクラスに詳しい方おられますでしょうか??






ちなみにkanjiteigi.phpの中に
<?php
class kanjiteigi{
// ●:ユーザ定義関数
// ○ demo1.htmlで入力する検索条件を入力し、その条件で検索するSQL文の発行し、DB内を検索
// ($str0=検索するDBのテーブル名、$str1=漢字、$str2=読み、$str3=画数、$str4=部首)
// DB内を検索
var $mysql;
var $sql;
function kensaku($str1,$str2,$str3,$str4){
$GLOBALS["mysql"] = new MySQL;
$GLOBALS["sql"] = "SELECT * FROM tankanji
WHERE
kanji like '%$str1%'
AND
(onyomi like '%$str2%'
OR
kunyomi like '%$str2%')
AND
kakusuu like '%$str3%'
AND
busyu like '%$str4%'";
$GLOBALS["mysql"]->query($GLOBALS["sql"]);
}
}
?>



としてもダメでした

回答 (全2件)

  • 回答No.2

ベストアンサー率 63% (239/379)

前の質問には関数使って回答したのですが理解してもらえたでしょうか・・?
普通のユーザー定義関数から使えないとクラスはまだ無理と思いますよ。
  • 回答No.1

ベストアンサー率 51% (3827/7415)

まず、classの質問をするならPHPのバージョンくらい提示したほうが
よいですよ。

で、classでグローバル変数を参照するなんて本末転倒ですね・・・
最低でも$GLOBALS["mysql"]は$this->mysqlにすべきでは?
おそらくクラスの概念を正確に理解していないので、参考書などで
基本を学習するのが解決への近道だと思いますよ
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,600万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A

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

ピックアップ

ページ先頭へ