2011-01-31 2 views
0

в php Я пытаюсь создать таблицу, основанную на том, что есть в базе данных, но я никогда не создавал таблицы раньше, поэтому я думал, что не буду оставлять ее в базе данных, и просто бросить случайный jumk в цикле, как это:Динамически сгенерированная таблица отображает «0»

<?php 

      $outa='<table border="0"><tr> 
        <th>Month</th> 
        <th>Savings</th> 
        </tr> 
        <tr>'; 


     for($i=0;$i<500;$i++) 
     { 
      $outb = ' 
       <td>df</td> 
       <td>df</td>>'; 
     } 

     $out=$outa+$outb+' 
            </tr> 
            </table'; 

?> 
<html> 
<head></head><body> 
<?php echo $out; ?> 
</body></html> 

Но это всегда выводит данные на 0 вместо таблицы, что дает?

ответ

3

Вы должны добавить строки, используя точку, например. 'строка 1'. 'строка 2', не используя +.

+0

О мой бог. Я знаю это! Я не могу поверить, что я смотрел мимо этого. Я создавал приложение на C# lastnight (и вы конкатенируете с помощью +), я думаю, я просто не понимал, что делаю. Огромное спасибо! –

+0

Любой может захотеть найти HEREDOCs (http://php.net/heredoc), а также для построения многострочных строк –

0

Ваша скобка стола не закрыта надлежащим образом. Также в php-конкатенации для строки есть. Вместо +

0

Этот код:

for($i=0;$i<500;$i++) 
    { 
     $outb = ' 
      <td>df</td> 
      <td>df</td>>'; 
    } 

просто устанавливает $outb на ту же величину в 500 раз более (и это недопустимый HTML!). Вы используете . для конкатенации строк, а не + (. Я ненавижу Поэтому я код веб-материал с Python):

<?php 

    $outa = '<table border="0"> 
      <tr> 
       <th>Month</th> 
       <th>Savings</th> 
      </tr> 

      <tr>'; 


    for ($i = 0; $i < 500; $i++) 
    { 
    $outb .= '<td>df</td><td>df</td>'; 
    } 

    $out = $outa + $outb + '</tr></table>'; 

?> 
<html> 
<head></head><body> 
<?php echo $out; ?> 
</body></html> 
0

В PHP конкатенация двух строки с + будет рассматриваться как дополнение двух целочисленных значения. Указанные строковые значения будут автоматически преобразованы как целочисленные. echo ‘st1’ + ‘st2’; будут преобразованы echo 0 + 0;

также держать <tr> тег внутри цикла:

<?php 

    $outa='<table border="0"><tr> 
      <th>Month</th> 
      <th>Savings</th> 
      </tr> 
     '; 


for($i=0;$i<500;$i++) 
{ 
    $outb = '<tr> 
     <td>df</td> 
     <td>df</td></tr>'; 
} 

$out= $outa . $outb . '</table>'; 


?> 


<html> 
<head></head><body> 
<?php echo $out; ?> 
</body></html> 
Смежные вопросы