2014-03-03 17 views
0

我需要創建3個函數來使用PHP創建表。但我一直在收集所有數據。它看起來並不是最有效的方法。有人可以告訴我什麼是錯誤的,因爲它看起來像所有的td都顯示爲tr的?所有行都是一列 - PHP創建表

<html> 
<head></head> 
<body> 
<?php 


function tdFunction1($flavor1, $flavor2, $flavor3) 
{ 
    echo "<td>"; 
    echo $flavor1; 
    echo "</td>"; 
    echo "<td>"; 
    echo $flavor2; 
    echo "</td>"; 
    echo "<td>"; 
    echo $flavor3; 
    echo "</td>"; 
} 

function tdFunction2($dessert1, $dessert2, $dessert3) 
{ 
    echo "<td>"; 
    echo $dessert1; 
    echo "</td>"; 
    echo "<td>"; 
    echo $dessert2; 
    echo "</td>"; 
    echo "<td>"; 
    echo $dessert3; 
    echo "</td>"; 
} 

function tdFunction3($temp1, $temp2, $temp3) 
{ 
    echo "<td>"; 
    echo $temp1; 
    echo "</td>"; 
    echo "<td>"; 
    echo $temp2; 
    echo "</td>"; 
    echo "<td>"; 
    echo $temp3; 
    echo "</td>"; 
} 


echo "<table border=1 style='width:100%;'>"; 
echo tdFunction1("chocolate", "apple", "vanilla"); 
echo tdFunction2("Lava Cake", "Cheesecake", "Cream Puffs"); 
echo tdFunction3("hot", "cold", "cold"); 
echo "</table>"; 


?> 
</body> 
</html> 

我切換它周圍的什麼,我有以下,但我得到一個 致命錯誤:

Call to undefined function colFunction1() in C:\xampp\htdocs\Trash\index.php on line 39 (the first of my 3 echo colFunction's)

<html> 
<head></head> 
<body> 
<?php 

function tableFunction() 
{ 
    echo "<table border=1;>"; 

    function rowFunction() 
    { 
     echo "<tr>"; 
     function colFunction1($flavor1, $flavor2, $flavor3) 
     { 
      echo "<td>".flavor1."</td><td>".flavor2."</td><td>".flavor3."</td>"; 
     } 
     echo "</tr>"; 


     echo "<tr>"; 
     function colFunction2($dessert1, $dessert2, $dessert3) 
     { 
      echo "<td>".dessert1."</td><td>".dessert2."</td><td>".dessert3."</td>"; 
     } 
     echo "</tr>"; 


     echo "<tr>"; 
     function colFunction3($temp, $temp2, $temp3) 
     { 
      echo "<td>".temp1."</td><td>".temp2."</td><td>".temp3."</td>"; 
     } 
     echo "</tr>"; 
    } 

    echo "</table>"; 
} 

echo colFunction1("chocolate", "apple", "vanilla"); 
echo colFunction2("Lava Cake", "Cheesecake", "Cream Puffs"); 
echo colFunction3("hot", "cold", "cold"); 

?> 
</body> 
</html> 

嗯,我愚弄與它周圍和「思考」我想通了(剛以防其他人像我一樣困惑)。
我創建了一個行函數來創建另一行。 我創建了列函數以接受三個函數輸入。 然後我創建了表來創建一個可以自己調用的表。 我祈禱我沒有打印出回聲,因爲它們是,但我不這麼認爲。如果我錯了,請有人向我指出。

<html> 
<head></head> 
<body> 
<?php 

function trFunction() 
{ 
    echo"<tr>"; 

    echo"</tr>"; 
} 
function tdFunction($flavor1, $flavor2, $flavor3) 
{ 
    echo"<td>".$flavor1."</td>"; 
    echo"<td>".$flavor2."</td>"; 
    echo"<td>".$flavor3."</td>"; 
} 
function tableFunction() 
{ 
echo "<table width=400px border=5px cellpadding=3px td style=text-align:center;>"; 
echo trFunction(); 
echo tdFunction("Chocolate", "Strawberry","Vanilla"); 
echo trFunction(); 
echo tdFunction("Molten Lava Cake", "Cheesecake", "Cream Puffs"); 
echo trFunction(); 
echo tdFunction("Hot","Cold","Cold"); 
echo "</table>"; 
} 

echo \tableFunction(); 
?> 
</body> 
</html> 
+4

我沒有看到一個''隨時隨地標籤在這裏!也許那是錯的! –

回答

0

你沒有任何錶行echo"<tr><td>".$temp1."</td><td>".$temp2."</td></tr>"會給你一個2列的行。

+0

這給了我一行的列。但是我需要3個函數來給我一些列,這些列會進入函數內部的行和所有內部函數(創建表標記)。我知道它沒有顯示它,但我試圖從某處開始,這不是給我列,只是行。 – TheOneNOnlyQ

0

您忘記了標籤''(打開的行)和'(關閉的行)。

想一想。你有多餘的代碼。而不是同樣的事情三種功能,你使用這樣的函數:

function printRow($val1, $val2, $val3) 
{ 
    echo '<tr>'; 
    echo '<td>'.$val1.'</td><td>'.$val2.'</td><td>'.$val3.'</td>'; 
    echo '</tr>'; 
} 

echo "<table border=1 style='width:100%;'>"; 
printRow("chocolate", "apple", "vanilla"); 
// etc. 
echo "</table>"; 

,甚至更好的循環:

function printRow($values = array()) 
{ 
    $s = '<tr>'; 

    foreach($values as $value) 
    { 
    $s.= '<td>'.$value.'</td>';  
    } 
    $s.= '</tr>'; 
    return $s; 
} 

$valuesToShow[] = array("chocolate", "apple", "vanilla"); 
$valuesToShow[] = array("Lava Cake", "Cheesecake", "Cream Puffs"); 
$valuesToShow[] = array("hot", "cold", "cold"); 

//create table: 
echo "<table border=1 style='width:100%;'>"; 

foreach($valuesToShowas as $value) 
{ 
    echo printRow($value); 
} 

echo "</table>"; 
+0

我看到所有這些都會給我一張桌子。但我有具體細節。我不希望你給我完整的解決方案,但一個方向將是有益的。具體內容是:創建一個td()函數,瞭解如何使用它以及如何使用它創建一個TR標籤。然後,採取這個想法,並把它放到你的tr()函數中。然後,找出如何使用tr()函數創建完整的TABLE標記......最後,將這個想法放到table()函數中。從你的「主」php代碼調用table()函數****就像我說的,我不想要解決方案,只是一個方向來嵌套這些函數。 – TheOneNOnlyQ

1

嗯,我愚弄與它周圍和「思考」我想通了(以防其他人像我一樣困惑)。
我創建了一個行函數來創建另一行。 我創建了列函數以接受三個函數輸入。 然後我創建了表來創建一個可以自己調用的表。 我祈禱我沒有打印出回聲,因爲它們是,但我不這麼認爲。如果我錯了,請有人向我指出。

<html> 
<head></head> 
<body> 
<?php 

function trFunction() 
{ 
    echo"<tr>"; 

    echo"</tr>"; 
} 
function tdFunction($flavor1, $flavor2, $flavor3) 
{ 
    echo"<td>".$flavor1."</td>"; 
    echo"<td>".$flavor2."</td>"; 
    echo"<td>".$flavor3."</td>"; 
} 
function tableFunction() 
{ 
echo "<table width=400px border=5px cellpadding=3px td style=text-align:center;>"; 
echo trFunction(); 
echo tdFunction("Chocolate", "Strawberry","Vanilla"); 
echo trFunction(); 
echo tdFunction("Molten Lava Cake", "Cheesecake", "Cream Puffs"); 
echo trFunction(); 
echo tdFunction("Hot","Cold","Cold"); 
echo "</table>"; 
} 

echo \tableFunction(); 
?> 
</body> 
</html> 
+0

爲我工作得很好。但是,你有\ tableFunction()'?它適用於和不適用它。 –

+0

只要斜線顯示,我不記得在我遇到的任何教程中看到它。但是在使用NetBeans的時候,當我輸入回顯的時候,它問我是否希望修復語法,所以我說是的,它就在那裏。 – TheOneNOnlyQ

+0

嗯,如果有效的話,最好單獨保持足夠好;-)無論哪種方式。我+1順便說一句。 –

相關問題