2011-10-25 27 views
-3

對於那些你看到我以前的問題,這裏是問題。我正在將一些ColdFusion轉換爲PHP。這是ColdFusion,效果很好。如何讓PHP做同樣的事情我的ColdFusion做

<cfset ColCount = 0> 
     <cfloop query="getArt"> 
      <cfset ColCount = ColCount + 1> 
      <cfif ColCount is 1> 
       <div id="clear"></div> 
      </cfif> 
      <div id="thumb" onClick="window.location='gallery_detail.cfm?AID=#AID#';" title="Enlarge"> 
       <div id="thumb_container"> 
        <a href="gallery_detail.cfm?AID=#AID#" ><img src="/#ThumbFilePath#" alt="Enlarge" border="0"></a> 
        <div id="name_spacer"></div> 
        <div id="thumbdesc"> 
         #Title# 
        </div> 
       </div> 
      </div> 
      <cfif ColCount LT 4></cfif> 
      <cfif ColCount is 4> 
       <cfset ColCount = 0> 
      </cfif> 
     </cfloop> 

這是我試圖做的和ColdFusion做同樣的事情的PHP。

<?php 
$dbname = 'pdartist2'; 
$table = 'artwork'; 
// query 
$result = mysql_query("SELECT AID, ThumbFilePath, Title, DisplayOrder FROM artwork where SCID = '$SCID' ") or die(mysql_error()); 
while($row = mysql_fetch_row($result)) 
{ 
$colCount = 0; 
foreach($row as $cell) { 
    $colCount++; 
    if ColCount is 1 
    echo "<div id="clear"></div>"; 
    echo "<div id="thumb" onClick="window.location='gallery_detail.php?AID=$AID';" title="Enlarge">"; 
     echo "<div id="thumb_container">"; 
      <a href="gallery_detail.php?AID=$AID" ><img src="/$ThumbFilePath" alt="Enlarge" border="0"></a> 
     echo "<div id="name_spacer"></div>"; 
     echo "<div id="thumbdesc">"; 
       $Title 
     echo "</div>"; 
     echo "</div>"; 
     echo "</div>"; 

    } 
} 
mysql_free_result($result); 

?> 

我知道這有點粗糙,但你明白了。顯然,ColdFusion和PHP處理HTML和SQL的方式完全不同。除非我也一樣,否則我不會做出改變,唉,我也是。

+0

您是否考慮閱讀PHP手冊中的[語言參考](http://es.php.net/manual/en/langref.php)章節?至少在第一部分。浪費每個人的時間,包括你的,只是爲了學習基本的PHP操作符,因爲它們出現在你的代碼中是愚蠢的。 –

+0

我在最後一個問題中告訴過你,現在我告訴你:在來這裏哭泣之前沒有用的東西,請先查看你的php語法!此外,啓用錯誤報告,不要讓它哭泣看不見 –

+0

你太有趣了Damien!我們每個人都有我們自己的禮物夥伴。它恰好是代碼不是我的。儘管如此,我會盡我所能不要打擾你,所有這些都是愚蠢的。 –

回答

1

11號線:

if ColCount is 1應該if($colCount > 0)

線12和幾個下面還有: echo "<div id=\"clear\"></div>"; - 在「字符需要在這裏躲過另外,產生的字符串是這樣的:echo '<div id="clear"></div>';

第15行和第18行缺少輸出方法

您應該考慮在邏輯文件中放置較少的演示文稿

編輯:讓我詳細說明一下。在這種情況下,除了語法錯誤之外,您還可以通過將如此多的表示數據直接放入邏輯文件中,繞開良好的實踐。你可以做的是把你的邏輯放入gallery.php或其他東西,然後在一個php模板文件中使用該邏輯。例如(這不會爲你工作,正是因爲它是):

<?php 
    // Here is our logic 
    $dbname = 'pdartist2'; 
    $table = 'artwork'; 
    // query 
    $result = mysql_query("SELECT AID, ThumbFilePath, Title, DisplayOrder FROM artwork where SCID = '$SCID' ") or die(mysql_error()); 
    $row = mysql_fetch_row($result); 

    $colCount = 0; 
?> 

<!-- Here is the view --> 
<?php foreach($row as $cell): ?> 
    <div id="clear"></div> 
    <div id="thumb" onClick="window.location="gallery_detail.php?AID=<?php echo $AID ?>"" title="Enlarge"> 
    <div id="thumb_container"> 
     <a href="gallery_detail.php?AID=<?php echo $AID ?>" ><img src="/$ThumbFilePath" alt="Enlarge" border="0"></a> 
     <div id="name_spacer"></div> 
     <div id="thumbdesc"><?php echo $Title ?></div> 
    </div> 
    </div> 
<?php endforeach ?> 
+0

我很感謝你的幫助史蒂夫。我不是像這裏的一些人一樣全職極客。我是一個全職的肖像藝術家,不幸的是我喜歡在我自己的網站LOL上工作。但是,它有時讓我頭痛。我的問題是,我將如何將<?php foreach應用於每個結果? –

+0

@Theolddog這是一個很好的問題。爲了方便起見,我從代碼中排除了while循環,但我應該預料到會讓人困惑。我相信你會使用與你相同的代碼,但稍微不同以適應邏輯/視圖體系結構:<?php while($ row = mysql_fetch_assoc($ result)):?> ## foreach循環嵌套在這裏## <?php endwhile?>' –

0
<?php 
$dbname = 'pdartist2'; 
$table = 'artwork'; 
// query 
$result = mysql_query("SELECT AID, ThumbFilePath, Title, DisplayOrder FROM artwork where SCID = '$SCID' ") or die(mysql_error()); 
$colCount = 0; 
while($cell = mysql_fetch_assoc($result)) {  
    $colCount++; 
    if($colCount > 0) { 
     echo '<div id="clear"></div>'; 
    } 
    echo '<div id="thumb" onClick="window.location=\'gallery_detail.cfm?AID='.$cell['AID'].'\';" title="Enlarge"> 
       <div id="thumb_container"> 
        <a href="gallery_detail.cfm?AID='.$cell['AID'].'" ><img src="/'.$cell['ThumbFilePath'].'" alt="Enlarge" border="0"></a> 
        <div id="name_spacer"></div> 
        <div id="thumbdesc"> 
         '.$cell['Title'].' 
        </div> 
       </div> 
      </div>'; 

    if($colCount == 4) $colCount = 0; 
} 

?> 

在這裏你去

請考慮學習PHP的時候,你會發現下一個PHP的問題。

+0

我正在學習PHP Peter。但是,Godaddy在下個月底之前向我施壓,要求我從Cold Fusion轉換到PHP。我還需要做很多其他的事情:-(再見,這段代碼得到一個錯誤,意外的$ end。 –

+0

@Theolddog編輯。立即嘗試。 – Peter

相關問題