2011-10-25 26 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

相关问题