2014-03-07 51 views
0

下面的代碼效果很好,當正確的URL用於像... http://example.com/user.php?id=joe如何以及在哪裏寫的if語句中的PHP/MySQL查詢

當我需要幫助時,我在哪裏添加一個if語句,以及如何如果要編寫提供默認登錄頁面或更好的輸入字段,則訪問者可以重新鍵入用戶名並提交它以具有正確的頁面加載。

<?php 
$pdo = new PDO('mysql:host=localhost;dbname=users', 'root', ''); 

// retrieve member's data 
$ps = $pdo->prepare("SELECT * FROM members WHERE id = ?"); 
    if(isset($_GET["id"])) { 
    $ps->execute(array($_GET["id"])); 
    } 

$result = $ps->fetch(PDO::FETCH_ASSOC); 

extract($result); 

echo $First_Name . ' - ' . $Email; 

任何幫助?

回答

0
if(!empty($_GET['id'])) { 
    // YOUR PREVIOUS CODE HERE 
} else { 
    // REDIRECT CODE HERE 
} 
+0

這是正確的方向,它回答了我問的問題。但是,如果id拼寫錯像使用「joee」而不是「joe」,我會得到「Warning:extract()期望參數1爲數組,布爾給定」。它甚至可以工作,如果我刪除「id =」。 – Brian

+0

那麼你必須在執行查詢後檢查你是否有一個有效的結果集。如果你不能自己弄清楚,我建議爲此打開另一個問題。 –

+0

謝謝Merlin。我爲$ results數組創建了另一個if語句,其中else提供了一個文本輸入字段來重新輸入id。該頁面做我現在需要的。 – Brian

0

我假設你想用if語句包裝所有的代碼,所以它不會運行,除非存在一個id。

<?php 
    if(isset($_GET['id'])) { 
     //retrieve member data here and render normal page 
    } 
    else { 
     //render landing page 
    } 
?> 

將兩個不同頁面的渲染代碼放入不同的函數中以幫助組織也是明智的做法。

+0

我最初嘗試這個,但它導致錯誤。 「!空」是票。 – Brian