5

我正在尝试在我的 SQL 查询报告中添加一个文本区域,以 PHP 输出。该数据库包含饮料公司的工作申请,这些申请通过主页上的表格提交。我想添加一个注释列,以便经理们可以在他们被召回的情况下,如果他们得到工作等等,为了使用该系统的其他经理的利益(所以人们不会被叫两次, 例如)。

这是我目前正在使用的报告代码,但我想我可能忽略了一些东西。(请原谅任何不正确的缩进,我不太习惯将代码粘贴到其中)

    <body>
    <?require_once $_SERVER['DOCUMENT_ROOT']."/includes/incFunctions.php";

    opendb();
    function getTeamData() {
        $sql = "SELECT * from team WHERE t_preferredCity='Liverpool' order by t_id desc";
        $result=mysql_query($sql);

        while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
            $teamData[] = $row;
        }
        return $teamData;
    }


    $teamApps = getTeamData();
    echo "<!--";
    //print_r($teamApps);
    echo "-->";
    ?>

    <table id="rounded-corner" width="100%">
      <tr style="font-weight:bold;">
        <th>Photo</th>
        <th>Name</th>
        <th>D.O.B.</th>
        <th>Contact No.</th>
        <th>E-mail</th>
        <th>Preferred City</th>
        <th>Availabilty</th>
        <th style="width:70px;">Own Car?</th>
        <th>Previous Work</th>
  </tr>
<?
$i=0;
foreach($teamApps as  $teamApp) {
$i++;
?>
  <tr>
    <td>
    <?
    if (substr($teamApp["t_picture"],0,3)=="htt"){?>
    <a onclick="window.open(this.href);return false"href="<?=$teamApp["t_picture"]?>"><img style="width:100px;"src="<?=$teamApp["t_picture"]?>" alt="<?=$teamApp["t_name"]?>"/></a>
    <?}else{?>
    NO PHOTO
    <?}?>

    </td>
    <td><?=$teamApp["t_name"]?></td>
    <td><?=$teamApp["t_dob"]?></td>
    <td><a href="tel:<?=$teamApp["t_contact"]?>"><?=$teamApp["t_contact"]?></a></td>
    <td><a href="mailto:<?=$teamApp["t_email"]?>"><?=$teamApp["t_email"]?></a></td>
    <td><?=$teamApp["t_preferredCity"]?> </td>
    <td>
    <?=($teamApp["t_nightsMo"] ? "Mon," : "")?>
    <?=($teamApp["t_nightsTu"] ? "Tue," : "")?>
    <?=($teamApp["t_nightsWe"] ? "Wed," : "")?>
    <?=($teamApp["t_nightsTh"] ? "Thur," : "")?>
    <?=($teamApp["t_nightsFr"] ? "Fri," : "")?>
    <?=($teamApp["t_nightsSa"] ? "Sat," : "")?>
    <?=($teamApp["t_nightsSu"] ? "Sun" : "")?>


    </td>
    <td><?=($teamApp["t_ownCar"]==-1 ? "<span class=\"yes\">Yes</span>" : "<span class=\"no\">No</span>")?></td>
    <td><?=$teamApp["t_previousWork"]?></td>
    <td><form><textarea rows="5" cols="20"><?=$teamApp["t_notes"]?></textarea><input type="submit" value="Submit"></form></td>
  </tr>

<?
}?>

</table>
<?
closedb();

?>
</body>

您会注意到,我已经开始向 Notes 列添加一个表单,但我几乎可以肯定这不会起作用,因为我不知道如何将文本添加到 Notes 列。

任何帮助将不胜感激,如果我需要扩展任何内容,请告诉我。

谢谢 :)

4

2 回答 2

4

我希望,我说对了。以下是一些可能对您有所帮助的片段:

文本输入与文本区域

文本输入和文本区域的基本语法:

# Text-Input 
<input type="text" name="t_notes" value="<?php echo $data_array["t_notes"]?>"/>

# Textarea
<textarea name="t_notes"><?php echo $data_array["t_notes"]?></textarea>

HTML 表单 (form.php)

用于保存数据(添加和编辑)的表单。“@”抑制错误。因此,如果 $data_array 为空,则不会出现错误。

<form method="POST" action="save.php">
    <input type="hidden" name="t_id" value="<?php echo @$data_array["id"]?>"/>
    ... some inputs/textareas ...
    <textarea name="t_notes"><?php echo @$data_array["t_notes"]?></textarea>
    <input type="submit" value="save"/>
<form>

保存.php

一个基本的保存脚本:INSERT(没有 ID 集)或 UPDATE(ID 集)。我真的建议使用 Database-Class 来处理这样的事情。谷歌搜索“PDO 类”、“MySQL 类”、“数据库类”——你会发现很多!

<?php
if (empty($_POST)) {
    die("no data sent.");
}

$id = $_POST["t_id"];
if (is_numeric($id)) {
    // update, because the ID is numeric
    $sql = "UPDATE team SET t_notes = " . mysql_real_escape($_POST["t_notes"]) . " WHERE t_id = ". $id;
} else {
    // insert, because no ID was set
    $sql = "INSERT INTO team (t_notes) VALUES ('". mysql_real_escape($_POST["t_notes"]) ."')";
}

// die, if there was a mysql error
if (!mysql_query($sql))
    die ("MySQL Error: " . mysql_error());
?>

避免回声快捷方式

您正在使用 echo-shortcut,这是每个默认配置都不允许的。如果您要更换主机,您可能会遇到麻烦。既然遇到了麻烦,我就避而远之。打字有点多,但它可以得到回报!

Works everytime:
<?php echo $text?>

Shortcut, needs to be activated/allowed by your host:
<?=$text?> 
于 2013-05-10T12:01:03.490 回答
1
  1. ) 您需要一个包含记录 id 的字段,或者您可以通过表单操作 uri 中的 GET-Parameter 传递 id
  2. ) 您需要一个 php 脚本来对团队表 wrt 执行更新。传递的 id。

    <body>
    <?require_once $_SERVER['DOCUMENT_ROOT']."/includes/incFunctions.php";
    
    opendb();
    function getTeamData() {
    $sql = "SELECT * from team WHERE t_preferredCity='Liverpool' order by t_id desc";
    $result=mysql_query($sql);
    
    while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
        $teamData[] = $row;
    }
    return $teamData;
    }
    
    if ($_SERVER['REQUEST_METHOD'] == 'POST'){
     $sql = "UPDATE team SET t_notes = '".mysql_real_escape_string($_POST['t_note'])."' WHERE  t_id = ".mysql_real_escape_string($_POST['t_id']);
     $result=mysql_query($sql);
     echo "Note updated!";
    }
    
    
    
    //...
    
    <td>
       <form method='POST'>
       <input type="hidden" name="t_id" value="<?=$teamApp["t_id"]?>" />
       <textarea name="t_note" rows="5" cols="20"><?=$teamApp["t_notes"]?></textarea>                     
       <input type="submit" value="Submit"></form>
    

于 2013-05-10T11:36:57.230 回答