2012-03-29 18 views
1

私は何もしたくないが、私は何をしたいのかについてかなりの研究を行った。私は私が正しいこと:(私はとても親切にしてください、また、PHPとMySQLの構文に少し新しいです探しています場合には、あまりにもわからないMysql値を比較してPHP変数に代入するクエリ

私はこのためには、以下を実行したい:。

  1. 特定の文字列のためのデータベースへの接続(DONE)
  2. クエリ(私はイムが行わ思う) ここからですが、少しファジーを取得:(
  3. 一致が変数のために発見された場合、行全体をコピーします(私は他の変数が必要です)
  4. SQLクエリの値をPに割り当てますHP変数。
  5. そこから私は持ち歩くのが正しいでしょう。その後、

    function connect() { 
    $dbname = 'database'; 
    $dbuser = 'username'; 
    $dbpass = 'password'; 
    $dbhost = 'localhost'; 
    mysql_connect($dbhost, $dbuser, $dbpass) or die("Unable to connect to database"); 
    } 
    

    そして、私は、その後ために、特定の値をデータベースに照会したいconnect();

    関数を呼び出す:私は、次のとデータベースへの接続を確立している

私は静的な値を使用します。これは私が持っているものである。ここから

mysql_select_db(DATABASENAME) or die("Unable to select database"); 
$query = "SELECT * FROM `TABLE` WHERE `COLUMN` LIKE 'VAULE'"; 
$result=mysql_query($query); 

私はそれが一致(mysqlの列の線に沿って何か?)であるかどうかを確認するために、クエリの結果を比較する方法があまりにもわかりません。 一致がある場合、私は行全体を取得し、各値をPHP変数に割り当てたいと思います。

私はあなたに私のためにそれをするよう求めていません、私は正しい方向にキックするだけでいいです!

は:)それは十分にそれを説明する別のページ機能を使用する必要はありませんでデータベース接続を作成するためにあなたの親切指導

+0

これはプロダクションシステムではないかもしれませんが、私はまだパスワードを投稿していないでしょう... –

+0

Kris、パスワードとユーザー名が本当ではない、私はちょうどコンテキストの目的のためにそれらを作った:) –

答えて

-1

試し用

感謝を願っていますし、あなたが必要とどこでそのページが含まれています。

ex: require_once 'dbConnect.php'; 

dbConnect.phpが構成されています

<?php 
$dbname = 'datadump_pwmgr'; 
$dbuser = 'datadump_pwmgr'; 
$dbpass = 'kzddim05xrgl'; 
$dbhost = 'localhost'; 
mysql_connect($dbhost, $dbuser, $dbpass) or die("Unable to connect to database"); 
?> 
+0

あなたの質問は適切にはできませんでした。 – vvr

0

を私はあなたがこのような何かを探していると思う:

$count = mysql_num_rows($result); 

//if there is more then 1 record retrieved from the database 
if($count > 0) 
{ 
    //Do what ever you want to do here, which I think you want to be 
    while ($row = mysql_fetch_assoc($result)) 
    { 
     echo $row["Columnname1"]; 
     echo $row["Columnname2"]; 
     echo $row["Columnname3"]; 
    } 
} 

else 
{ 
    echo "There are no matches for this specific value"; 
} 
+0

しかし、tereskoはPDOの使用を勧めます.Prepared StatementはSQLインジェクションを避けるための優れた方法です。 – Bono

+0

これは私にはもっと意味をなさない、ありがとう、私はPDOにボノを見ていきます。 –

0

あなたが使用して関連する配列として行によって照会データを取得することができますmysql_fetch_array():

$row = 0; 
$data = mysql_query("SELECT name1,name2 FROM ...."); 
while(($result = mysql_fetch_array($data)) !== false) 
{ 
    echo "row = $row, name1 = " . $result["name1"] . ", name2 = " . $result["name2"]; 
    $row ++; 
} 

...またはmysql_fetch_objectを使用してオブジェクト()のように:

$row = 0; 
$data = mysql_query("SELECT name1,name2 FROM ...."); 
while(($result = mysql_fetch_object($data)) !== false) 
{ 
    echo "row = $row, name1 = $result->name1, name2 = $result->name2"; 
    $row ++; 
} 
0

私はあなたが何をしたいのあまりわからないんだけど、私は1つの考えられるのバグここで見ることができます:あなたは=を意味した方法でLIKEを使用している:順序でLIKEはlikeのように動作する必要がありますするには、いくつかのジョーカーの文字を必要とする:どこ地獄よ

$query = "SELECT * FROM `TABLE` WHERE `COLUMN` LIKE '%VAULE%'"; 
$result=mysql_query($query); 

while (false !== ($row = mysql_fetch_assoc($result))) { 
    //here $row is an array containing all the data from your mysql row 
} 
1

"SELECT * FROM `TABLE` WHERE `COLUMN` LIKE 'VAULE'" // This will return all rows where column='VAUL' 
"SELECT * FROM `TABLE` WHERE `COLUMN` LIKE '%VAULE%'" // This will return all rows where column='%VAUL%' // This will return any row containing 'VAUL' in column 
"SELECT * FROM `TABLE` WHERE `COLUMN` LIKE '%VAULE'" // This will return all rows where column='%VAUL' // this will return all rows ending by VAUL. I guess you get it now :) 

Anが、実際の結果を取得しますPHPでMySQLを使う方法を学びましたか? mysql_*機能は10年以上経過しており、もはや維持管理されていません。コミュニティはすでにdeprecating themで働き始めています。

PDOまたはMySQLiを使用してください。

// connection to database 
$db = new PDO('mysql:host=localhost;dbname=datadump_pwmgr;charset=UTF-8', 
       'datadump_pwmgr', 
       'kzddim05xrgl'); 
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); 

// setting up prepared statement for the query 
$statement = $db->prepare('SELECT * FROM table WHERE column LIKE :value'); 
$statement->bindParam(':value', $some_variable, PDO::PARAM_STR, 127); 

// executing query and fetching first result 
if ($statement->execute()) 
{ 
    $data = $statement->fetch(PDO::FETCH_OBJ); 
    var_dump($data); 
} 

これは、あなたに必要なものを与えるはずです。しかし、私はthis tutorialを試してみることをお勧めします。 prepared statementsについてもっと学ぶことも便利です。

あなたがオブジェクトで作業している場合も、それを使用するために、単一のDB接続オブジェクトを作成し、複数の他のクラスにそれを渡すことができます:

$pdo = new PDO('sqlite::memory:'); 

$a = new Foo($pdo); 
$b = new Bar($pdo, 'something'); 

あなたは、両方のオブジェクト渡しこう同じデータベース接続であり、再初期化する必要はありません。

+0

私はどこかから始めなければなりませんでした。私はこのようなものには新しく、PDOが何であるか分かりませんでした。私は少し前にmysqliを使用しましたが、この例ではmysqlを使用しました。 –

+0

私は今よりずっときれいに見えるので、PDOを探しています! –

1

あなたはどこかのmysqlデータベースへの接続を維持したいでしょう。よく使われるのは$ connです。

だから、どちらかのURLまたは郵便、またはあなたのPHPファイルに座っているだけでいくつかの変数から、クエリ自体に変数を置くことによって、データベースを照会することができ、その後

$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die("Unable to connect to database"); 

を持っているでしょう。また、ここでは$ connを使用してデータベースに接続する場所を1つ(includeなど)にすることができ、データベースに接続する必要がある各場所ですべての接続文字列を作成する必要はありません。

$query = "SELECT * FROM `TABLE` WHERE `COLUMN` LIKE '%" . $varToCompare . "%'"; 
$result=mysql_query($query,$conn); 

上記のようなものを使用しています。あなたはちょうど見てみたいかもしれません.. where column = $ var。

次に、phpを使用して結果を配列に変換します(複数の行を取得するクエリの場合)。

+0

あなたのアドバイスありがとうございましたKris :) –

関連する問題