2012-07-31 54 views
0

MySQL表看起来是这样的: enter image description here高级PHP上传表单

下面是输出的代码:

<li> 
    <a class="thumb" href="library/<?php echo $row2['projectname']; ?>/<?php echo $row2['projectrecordnum']; ?>.<?php echo $row2['projectformat']; ?>" title="<?php echo $row2['projectrecordtitle']; ?>"> 
     <img src="library/<?php echo $row2['projectname']; ?>/thumbs/<?php echo $row2['projectrecordnum']; ?>.<?php echo $row2['projectformat']; ?>" alt="<?php echo $row2['projectrecordtitle']; ?>" /> 
    </a> 
    <div class="caption"> 
     <div class="image-title"><?php echo $row2['projectrecordtitle']; ?></div> 
     <div class="image-desc"><?php echo $row2['projectrecorddesc']; ?></div> 
     <div class="download"> 
      <a href="library/<?php echo $row2['projectname']; ?>/<?php echo $row2['projectrecordnum']; ?>.<?php echo $row2['projectformat']; ?>" target="_blank">Download Original</a> 
     </div> 
    </div> 
</li> 

下面是输出的外观:

<li> 

    <a class="thumb" href="library/ultima/2.jpg" title="Timbo DISPLACED"> 

     <img src="library/ultima/thumbs/2.jpg" alt="Timbo DISPLACED" /> 

    </a> 

    <div class="caption"> 

     <div class="image-title">Timbo DISPLACED</div> 

     <div class="image-desc">Made in 3ds Max, background, color and lens flare from Photoshop</div> 

     <div class="download"> 

      <a href="library/ultima/2.jpg" target="_blank">Download Original</a> 

     </div> 

    </div> 

</li> 

我的问题是,我无法找到一种形式,这将创建一个用户需要的领域,然后将每个文件信息上传并写入一个mysql数据库(请记住文件数量不确定)。

+0

到底是什么你的问题?你的'表格'看起来像什么? – Peon 2012-07-31 14:14:30

+0

目前它只是载有项目名称,项目显示名称,项目格式,项目评论,项目信息 – 2012-07-31 14:26:01

+0

等主要信息所以你想要一个系统,将创建一个未知数量/任意内容的表单字段设置,并处理填充那些谁知道,什么字段到数据库中? – 2012-07-31 14:28:29

回答

1

这不是一个真正具体的问题,但我会尽力为您提供一个起点。

我假设你没有一个形式尚未...

FYI:不介意与htmlentities()或类似的东西来逃避输出!

1)我用假数据,但你可以与你的关联DB结果集替换此:

$rows = array(
    array( 'projectname' => 'ultima', 
      'projectrecordnum' => '1', 
      'projectrecordtitle' => 'The ball of destruction'), 
    array( 'projectname' => 'ultima', 
      'projectrecordnum' => '2', 
      'projectrecordtitle' => 'Timbo DISPLACED'), 
    array( 'projectname' => 'ultima', 
      'projectrecordnum' => '3', 
      'projectrecordtitle' => 'Exposure') 
); 

2)我创建了一个简单的HTML表单通过PHP成果循环:

<form method="post" action="#"> 
<?php foreach($rows as $row) { ?> 
    <div class="caption"> 
     <div class=""> 
      <input type="text" name="projectname[]" value="<?php echo $row['projectname']; ?>"> 
     </div> 
     <div class=""> 
      <input type="text" name="projectrecordnum[]" value="<?php echo $row['projectrecordnum']; ?>"> 
     </div> 
     <div class=""> 
      <input type="text" name="projectrecordtitle[]" value="<?php echo $row['projectrecordtitle']; ?>"> 
     </div> 
     <?php /* and so more fields ... */ ?> 
    </div> 
    <hr /> 
<?php } ?> 
    <input type="submit" name="send" value="send" /> 
</form> 

3)和action你可以重建你$rows阵列:

if(isset($_REQUEST['send'])) { 
    $rows = array(); 
    for($i = 0; $i < count($_POST['projectname']); $i++) { 
     $row = array(
      'projectname' => $_POST['projectname'][$i], 
      'projectrecordnum' => $_POST['projectrecordnum'][$i], 
      'projectrecordtitle' => $_POST['projectrecordtitle'][$i], 
     ); 
     if(! empty($_POST['projectname'][$i])) { 
      array_push($rows, $row); 
     } 
     unset($row); 
    } 

    // Your data array... 
    print '<pre>'. print_r($rows, true) . '</pre>'; 
} 
+0

感谢您的回复!这非常有用。但是你误解了我一点。字段数应由用户定义,而不是由可用行定义。和 – 2012-07-31 16:04:20

+0

嗯...如果用户输入的字段与数据库表中的列不匹配,会发生什么情况? – 2012-07-31 16:08:09

+0

我找到了解决方案 - while循环! – 2012-08-01 11:24:55