2011-03-26 42 views
0

(在這裏初學者的問題...要溫柔)如何從一個或兩個字段中獲取其他記錄?

我的PHP腳本是對窗體的響應。假設我已經連接到數據庫並提取後的變量(只有兩個 - EMAILADDRESS和用戶名),像這樣

mysql_connect('localhost', 'dbusername', 'dbpassword'); 
mysql_select_db('database'); 
extract($_REQUEST); 

..和知道「用戶」表中,也有「EMAILADDRESS」,「用戶名「和」地址「字段。 (電子郵件地址將全部是唯一的..)

如何在收到電子郵件地址和用戶名後查找特定「地址」(如果沒有匹配的名稱和地址,則輸出其他內容)?


看起來很荒唐難以得到答案。這一定是一個非常非常非常非常困難的問題。


特別感謝用戶告訴我這個問題非常簡單,但卻不能拿出答案。我向你的不屈不撓,你的壯麗勇氣和你的幫助意願致敬。

一個可能的答案,我的問題是:

$result = mysql_query("SELECT * FROM users WHERE emailAddress='".$emailAddress."' AND username='".$username."'"); 
$row = mysql_fetch_array($result); 
if ($row['username'] == "") { 
    // no results 
} else if ($row['emailAddress'] == $emailAddress AND $row['username'] == $username) { 
    // found result 
    echo "The address is ".$row['address']; 
} else { 
    // i guess something else happened 
} 

一定要告訴我這是怎麼錯的,真正的答案是容易的,但沒有拿出答案。

+1

只是注意:請閱讀筆記上http://fr2.php.net /提取關於不使用「提取」不安全的數據;-) – 2011-03-26 16:36:22

+0

「*請*溫柔」你的意思是? – 2011-03-26 16:38:10

+2

是的。在PHP/mysql上初學者課程非常困難。非常罕見的技術 – 2011-03-26 17:40:50

回答

0

您可以使用SELECT聲明。請注意,此代碼對SQL注入不安全。

SELECT * FROM Users WHERE emailAddress = '[email protected]' 
+0

,我該如何獲得該地址'該地址' – cannyboy 2011-03-26 16:39:30

1

要獲取單個元素,請執行「從標準表中選擇列名」。

在你的榜樣

這將是

select address from users where emailaddress = '[email protected]' and name = 'John Doe' 

的列名部分可以用逗號分隔的多個項目,因此,舉例來說,如果你想要的名稱和地址,你會做

select name, address from users where emailaddress = '[email protected]' and name = 'John Doe' 
+0

謝謝。告訴是否沒有選擇任何東西? – cannyboy 2011-03-26 16:49:54

+0

忘記這是一個PHP問題,並專注於它的SQL方面。http://en.wikibooks.org/wiki/PHP_Programmin g/SQL_Injection似乎像顯示快速簡單的方式(第一項)和使用if/else的更安全的方法。 .NET的傢伙我自己 – Robert 2011-03-26 17:00:59

1

你必須把這個sql請求變成一個變量,然後執行它,你可以驗證如果數組是空的或不是..如果這意味着沒有組合與名稱和該電子郵件對應到您的數據庫..和它完成了!`$ req =「選擇姓名,地址來自用戶mailaddress = $ email and name = $ name「; $ result = mysql_query($ req); 如果!isset($結果){/// 一些東西在那裏當一切okkay

} 其他{/// 一些東西,如果有相應的

沒有記錄}` 在VRAC ..在這一想法的樣本爲例..注意SQL查詢得到的結果到一個數組所以我只好操縱一個數組或哈希

+0

似乎你需要的初學者課程上的PHP/MySQL更迫切比人問這個問題... – 2011-03-26 17:47:43

相關問題