2013-11-20 19 views
0

你好,我想把這個變成一個函數getTableResults。我對PHP不熟悉。如何在php中寫出sql?

SELECT * 
FROM members 
INNER JOIN member_details 
ON members.member_id=member_details.member_id; 

我有一個類似的函數,我試圖基於它,但我真的不確定,因爲sql更長。

function getResults($tablename) { 
    $sql = "SELECT * FROM " . $tablename; 
    $mysqlConnection = getSQLConnection(); 

    $ResultSet = $mysqlConnection->query($sql); 
return $ResultSet; 
} 

這將是它?

function getResults($tablename) { 
    $sql = "SELECT * 
      FROM members 
      INNER JOIN member_details 
      ON members.member_id=member_details.member_id; " . $tablename; 
    $mysqlConnection = getSQLConnection(); 

    $ResultSet = $mysqlConnection->query($sql); 
return $ResultSet; 
} 
+1

這其實是很基本的。你確定你沒有嘗試過所有的東西來搞清楚嗎? –

+0

PHP對sql一無所知。你在php中使用SQL編寫完全一樣的,你會寫任何其他純文本字符串。 –

+0

我曾嘗試過,但我不確定函數中的第一行 –

回答

4
function getTableResults() { 
    $sql = "SELECT * FROM members INNER JOIN member_details ON Members.member_id=member_details.member_id"; 
    $mysqlConnection = getSQLConnection(); 

    $ResultSet = $mysqlConnection->query($sql); 
return $ResultSet; 
} 

基本上是一樣的,你改變你的SQL查詢中的$ sql變量。

注意:此函數現在不接受表名,因爲您有一個非常特定的SQL查詢。

+1

不,你沒有在語句中包含分號 – Woot4Moo

+0

沒有從複製/粘貼中捕捉到。你是對的。 – user3012708

3

入住這

function getTableResults() { 
    $sql = "SELECT * 
      FROM members 
      INNER JOIN member_details 
      ON members.member_id=member_details.member_id"; 
    $mysqlConnection = getSQLConnection(); 

    $ResultSet = $mysqlConnection->query($sql); 
    return $ResultSet; 
} 

編輯:

的問題在您編輯後Would this be it

沒有,因爲你正在嘗試是Concat的在查詢enating表名..

details.member_id; " . $tablename; < - 不能做到這一點..

這會讓你的查詢看起來像ON members.member_id=member_details.member_id; members如果您發送members作爲參數的$表名)

+0

所以這是做什麼是選擇表成員和加入成員的詳細信息,他們都與member_id匹配? –

+1

非常感謝! –

+0

是的..因爲你寫的查詢.. – zzlalani

2
function getTableResults(){ 
$sql = "SELECT * FROM members 
     INNER JOIN member_details 
     ON members.member_id=member_details.member_id"; 

$mysqlConnection = getSQLConnection(); 
$ResultSet = $mysqlConnection->query($sql); 

return $ResultSet; 
} 

請注意,mysql的函數已被棄用。應該使用mysqli代替。 PHP.net says mysql的函數將來會被刪除,所以你現在應該切換。實際上,mysql的代碼和mysqli的代碼之間幾乎沒有什麼區別。請參閱本網站的例子介紹如何使用的mysqli:http://www.php.net/manual/en/mysqli.query.php

+0

就像頭一回,'$ mysqlConnection'看起來是一個PDO包裝,與'mysql_ *'函數家族(已棄用)無關。此外,一個小錯字:分配給'$ mysqlConnection',但使用'$ mysqliConnection' –

+0

良好的捕獲。編輯。 – Benjamin

1

使用此代碼

<?php 

$con=mysqli_connect("example.com","peter","abc123"); 

// Check connection 


if (mysqli_connect_errno()) 

     { 


echo "Failed to connect to MySQL: " . mysqli_connect_error(); 

    } 
// Create database 
$sql="SELECT * 
FROM members 
INNER JOIN member_details 

ON members.member_id=member_details.member_id"; 

if (mysqli_query($con,$sql)) 
{ 

echo "Database my_db created successfully"; 

    }else{ 

echo "Error creating database: " . mysqli_error($con); 

}?> 
1

它最終會看起來像這樣:

function getResults($tablename) { 
    $sql = "SELECT * FROM members" 
      . " INNER JOIN member_details" 
      . " ON members.member_id=member_details.member_id"; 
    $mysqlConnection = getSQLConnection(); 

    $ResultSet = $mysqlConnection->query($sql); 
    return $ResultSet; 
}