2012-06-30 98 views
0

我在學習......我已閱讀了關於http://www.w3schools.com的教程,我瀏覽了www.php.net上的手冊,並且非常瞭解所有內容的工作原理。但是我對如何構建頁面感到困惑。什麼東西應該在同一頁面上放在一起,什麼應該有它自己的頁面,只是被包含/需要?組織文件的最佳方式是什麼?

我仍然需要閱讀的一件事是參數化,所以不要毆打我......。

以下是我有:

a.php只會這是用戶看到的頁面,當他們在www.mydomain.com/a.php

<html> 
<body> 

<?php require("b.php"); ?> 
// this requires that the page gets b.php and puts it here 

<p>Name: <?php echo $row['firstname']; ?></p> 
<p>Last Name: <?php echo $row['lastname']; ?></p> 

</body> 
</html> 

b.php本頁面鍵入在a.php只會隨附/必需的

<?php 

require("../dbunamepword.php"); 
// this connects to my database 

$query = ("SELECT * FROM contacts WHERE contacttype IN ('Buyer','Seller','Buyer/Seller','Investor') AND leadstatus = 'New' ORDER BY date DESC"); 
$result = $mysqli->query($query) or die ("Error: ".mysqli_error($mysqli)); 
while ($row = $result->fetch_array()) { 
// this fetches the data I want from the table in my db while all cases match above 

$firstname = $row ['firstname'];  
$lastname = $row['lastname']; 
// these are the rows in the table I want to fetch 

echo "First Name: " . $firstname . " " .$lastname ."<br />"; 
// this is how I want the data presented 

} 
?> 

這裏是我的問題,謝謝你在前進:

1)如何將用F強制我在建立這些網頁時受益,還是他們不會使我受益?

2)難道我不能在b.php上忽略echo,只需調用下面的a.php中的行並輸入foreach聲明?我實際上測試了這一點,並且不斷收到意外的$ end錯誤,所以我不確定這是不是一個好方法,或者如果我做錯了什麼?

<html> 
<body> 

<?php require("b.php"); ?> 
// this requires that the page gets b.php and puts it here 

<p>Name: <?php echo $firstname; ?></p> 
<p>Last Name: <?php echo $lastname; ?></p> 

</body> 
</html> 

3)比方說,我加入一些,如果像下面/ else語句,我應該把這些在b.php或把他們在自己的文件c.php然後放入b.php的包括哪些內容?

if(isset($_GET['leadstatus']) && $_GET['leadstatus'] == "All") 
{ 
$query = "SELECT * FROM contacts WHERE contacttype IN ('Buyer','Seller','Buyer/Seller','Investor') ORDER BY contacts.date DESC"; 
} 
elseif (in_array($_GET['leadstatus'], array('New', 'Hot', 'Warm', 'Cold', 'Rejected', 'Closed'))) 
{ 
$status = $_GET['leadstatus']; 
$query = "SELECT * FROM contacts WHERE leadstatus = '".$status."' AND contacttype IN ('Buyer','Seller','Buyer/Seller','Investor') ORDER BY contacts.date DESC"; 
} 

4)在我$query我有SELECT * FROM contacts WHERE contacttype IN ('Buyer','Seller','Buyer/Seller','Investor')而不是在每個if/else語句打字說出來或者可以說,我需要添加其他領域一樣,「承租人」,我可以這樣做:

$type = ('Buyer','Seller','Buyer/Seller','Investor') 

$query = ("SELECT * FROM contacts WHERE contacttype = $type AND leadstatus = 'New' ORDER BY date DESC"); 


if (($_GET['date'] == 'today')) 
{  
$$query = "SELECT * FROM contacts WHERE contacttype = $type AND date = DATE(NOW()) ORDER BY date DESC"; 
} 

if (($_GET['date'] == 'thisweek')) 
{  
$thisweek = date('Y-m-d', strtotime('last sunday')); 
$query = "SELECT * FROM contacts WHERE contacttype = $type AND date BETWEEN '$thisweek' AND '$thisweek' + INTERVAL 7 DAY ORDER BY date DESC"; 
} 
+0

這不是一個合適的問題,目前的形式。從常見問題中,我引用:您的問題應該合理地限定範圍。如果你能想象整本書能夠回答你的問題,那你的要求太高了。 – gview

+0

@馬里奧和@gview在哪裏建議我開始,因爲在w3schools.com和php.net的教程不達標? – Josh

+0

一般來說,既然你問了,你的方法會很快轉入意大利麪。 PHP使事情發生變得非常容易,所以它不會打擊你的才能,但是具有任何基本能力和可維護性的Web應用程序都會採用MVC設計模式的一些變體。儘管將標記和邏輯混合在一起很簡單,但不應該這樣做。有一些非常簡單/新手友好的框架,比如CakePHP或Codeignitor,它們將爲您提供結構和MVC實現。我建議你看看這些項目。 – gview

回答

2

我建議你開始使用微框架來幫助你組織你的代碼。我更喜歡Silex,因爲它促進/鼓勵良好的編程習慣/實踐,隨着項目的增長,您可以無縫地發展成更全面的Symfony世界。

你不需要需要一個框架,但我相信他們可以幫助你學習組織任何代碼庫的最佳實踐,即使你決定不使用某個項目。

+0

雖然我個人使用symfony2,但我認爲,期望一個完全熟悉PHP和Web編程的新手能夠使用symx2或symf2進行操作,這是一個很好的過程。出於這個原因,我建議更簡單/更容易啓動和運行mvc。 – gview

相關問題