PHP-код получает, просто не получает идентификатор, как это было, поэтому он не обновляется правильно - PullRequest
1 голос
/ 20 февраля 2012

Я переписал код, чтобы разбить как можно больше PHP и html. Честно говоря, я думаю, что это выглядит ужасно, но люди здесь считают, что это хорошая практика.

В любом случае, выпадающие меню по-прежнему присутствуют во всем PHP, потому что я не мог понять, как написать это в html.

В любом случае, если кто-то может сделать это для меня, отличноНо вот моя настоящая проблема сейчас.Все показывает ... Я просто не могу опубликовать, и я не могу понять, почему.Вот код и ошибки:

<?php
require_once('tb/connectvars.php');
echo '<div id="postwrap">';
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>PDI NCMR - Edit</title>
  <link rel="stylesheet" type="text/css" href="tb/postie.css" />
</head>
<body>
   <div id="logo">
    <img src="../images/PDI_Logo_2.1.gif" alt="PDI Logo" />
</div>

<?php
  if (isset($_POST['submit'])) {
// Connect to the database
    $dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
;   
// Enter data into the database
    $id = mysqli_real_escape_string($dbc, trim($_GET['id']));
    $ab = mysqli_real_escape_string($dbc, trim($_POST['ab']));
    $date = mysqli_real_escape_string($dbc, trim(date('Y-m-d',strtotime ($_POST['date']))));
    $part = mysqli_real_escape_string($dbc, trim($_POST['part']));
    $rev = mysqli_real_escape_string($dbc, trim($_POST['rev']));
    $partdesc = mysqli_real_escape_string($dbc, trim($_POST['partdesc']));
    $ncmrqty = mysqli_real_escape_string($dbc, trim($_POST['ncmrqty']));
    $comp = mysqli_real_escape_string($dbc, trim($_POST['comp']));
    $ncmrid = mysqli_real_escape_string($dbc, trim($_POST['ncmrid']));
    $rma = mysqli_real_escape_string($dbc, trim($_POST['rma']));
    $jno = mysqli_real_escape_string($dbc, trim($_POST['jno']));
    $fdt = mysqli_real_escape_string($dbc, trim($_POST['fdt']));
    $cof = mysqli_real_escape_string($dbc, trim($_POST['cof']));
    $fab1= mysqli_real_escape_string($dbc, trim($_POST['fab1']));
    $fab2= mysqli_real_escape_string($dbc, trim($_POST['fab2']));
    $fab3= mysqli_real_escape_string($dbc, trim($_POST['fab3']));
    $non= mysqli_real_escape_string($dbc, trim($_POST['non']));
    $dis= mysqli_real_escape_string($dbc, trim($_POST['dis']));
    $comm= mysqli_real_escape_string($dbc, trim($_POST['comm']));
    $caad= mysqli_real_escape_string($dbc, trim($_POST['caad']));
    $po= mysqli_real_escape_string($dbc, trim($_POST['po']));
    $pod = mysqli_real_escape_string($dbc, trim(date('Y-m-d',strtotime($_POST['pod']))));
    $dri = mysqli_real_escape_string($dbc, trim(date('Y-m-d',strtotime($_POST['dri']))));

    $query = "UPDATE ncmr SET ab = '$ab', date = '$date', part = '$part', rev = '$rev' , partdesc = '$partdesc' , ncmrqty = '$ncmrqty' , comp = '$comp' , ncmrid = '$ncmrid' , rma = '$rma' , jno = '$jno' , fdt = '$fdt' , cof = '$cof' , fab1 = '$fab1' , fab2 = '$fab2' , fab3 = fab3' , non = '$non' , dis = '$dis' , comm = '$comm' , caad = '$caad' , po = '$po' , pod = '$pod' , dri = '$dri'  WHERE id = '$id'";

// echo your raw query and look for obvious errors
     echo "Query is : " . $query . "<br />";

// and at least use a basic mechanism to trap possibles errors
       mysqli_query($dbc, $query)  or die('Query Error : ' . mysqli_error($dbc));

// Clear the data to clear the form
    $id = "";
    $ab = "";
    $date = "";
    $part = "";
    $rev = "";
    $partdesc = "";
    $ncmrqty = "";
    $comp = "";
    $ncmrid = "";
    $rma = "";
    $jno = "";
    $fdt = "";
    $cof = "";
    $fab1= "";
    $fab2= "";
    $fab3= "";
    $non= "";
    $dis= "";
    $comm= "";
    $caad= "";
    $po= "";
    $pod = "";
    $dri = "";

// Confirm success with the user
        echo '<p>If you wish to edit more NCMRs, please <a href="list.php">go to the admin page!</a></p>';

            mysqli_close($dbc);
            }

  else {    

// Connect to the database
  $dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
// Grab the profile data from the database
 if (!isset($_GET['id'])) {
    $query = "SELECT * FROM ncmr WHERE id = '$id'";
  }
  else {
    $query = "SELECT * FROM ncmr WHERE id = '" . $_GET['id'] . "'";
  }
  $data = mysqli_query($dbc, $query);

  if (mysqli_num_rows($data) == 1) { 
// The user row was found so display the user data
    $row = mysqli_fetch_array($data);
    echo'<div id="title"><h3 id="NCMR2">Non-Conforming Materials Report (NCMR:&nbsp;&nbsp;' . $row['rma'] . ')</h3></div>';

    if (empty($row['ab'])) $row['ab'] == "Empty";
    if (empty($row['date'])) $row['date'] == "Empty";
    if (empty($row['part'])) $row['part'] == "Empty";
    if (empty($row['rev'])) $row['rev'] == "Empty";
    if (empty($row['partdesc'])) $row['partdesc'] = "Empty";
    if (empty($row['ncmrqty'])) $row['ncmrqty'] = "Empty";
    if (empty($row['comp'])) $row['comp'] == "Empty";
    if (empty($row['ncmrid'])) $row['ncmrid'] == "Empty";
    if (empty($row['rma'])) $row['rma'] == "Empty";
    if (empty($row['jno'])) $row['jno'] == "Empty";
    if (empty($row['non'])) $row['non'] == "Empty";
    if (empty($row['dis'])) $row['dis'] == "Empty";
    if (empty($row['comm'])) $row['comm'] == "Empty";
    if (empty($row['caad'])) $row['caad'] == "Empty";
    if (empty($row['po'])) $row['po'] =="Empty";
    if (empty($row['pod'])) $row['pod'] =="Empty";
    if (empty($row['dir'])) $row['dri'] =="Empty";

?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    <fieldset>
        <div id="box1">
            <div id="ab"><span class="b">Added By:&nbsp;&nbsp;</span><input type="text" name="ab" value="<?php echo $row['ab']?>" /></div>
            <div id="date"><span class="b">Date Filed:&nbsp;&nbsp;</span><input type="text" name="date" value="<?php echo $row['date']?>" /></div>
            <div id="part"><span class="b">Part Number:&nbsp;&nbsp;</span><input type="text" name="part" value="<?php echo $row['part']?>" /></div>
            <div id="rev"><span class="b">Part Revision:&nbsp;&nbsp;</span><input type="text" name="rev" value="<?php echo $row['rev']?>" /></div>
            <div id="partdesc"><span class="b">Part Description:&nbsp;&nbsp;</span><textarea rows="4" cols="22" value=><?php echo $row['partdesc']?></textarea></div>
            <div id="ncmrqty"><span class="b">NCMR Qty:&nbsp;&nbsp;</span><input type="text" name="ncmrqty" value="<?php echo $row['ncmrqty']?>"/></div>    
        </div>

        <div id="box2">
            <div id="comp"><span class="b">Company:&nbsp;&nbsp;</span><input type="text" name="comp" value="<?php echo $row['comp']?>" /></div>
            <div id="ncmrid"><span class="b">Customer NCMR ID:&nbsp;&nbsp;</span><input type="text" name="ncmrid" value="<?php echo $row['ncmrid']?>" /></div>
            <div id="rma"><span class="b">Internal RMA #:&nbsp;&nbsp;</span><input type="text" name="rma" value="<?php echo $row['rma']?>" /></div>
            <div id="jno"><span class="b">Job #:&nbsp;&nbsp;</span><input type="text" name="jno" value="<?php echo $row['jno']?>" /></div>
        </div>

        <div id="box3">
            <h2>Failure</h2>
                <div id="cof"><span class="b">Class of Failure:&nbsp;&nbsp;</span><input type="text" name="cof" size="15" value="<?php echo $row['cof']?>" /></div>
                <div id="fdt"><span class="b">Failure Due To:&nbsp;&nbsp;</span><input type="text" name="fdt" size="15" value="<?php echo $row['fdt']?>" /></div>
        </div>
<?php
        echo '<div id="box4">';
            echo '<h2>Fabricators</h2>';
if ($row['fab1']=="--None--")
{
    echo'<div id="fab1">';
    $mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); 
    $mysqli->select_db('user');
    $result = $mysqli->query("SELECT * FROM user"); 
    echo "<SELECT name='fab1'>\n";
    while($row = $result->fetch_assoc())
    {
        echo "<option value='{$row['userid']}'>{$row['user']}</option>\n";
    }
    echo "</select>\n";
    echo '</div>';
}
else
{
    echo '<div id="fab1"><span class="b"></span><input type="text" name="fab1"  size="20" value="' . $row['fab1'] . '" /></div>';
}

if ($row['fab2']=="--None--")
{
    echo'<div id="fab1">';
    $mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); 
    $mysqli->select_db('user');
    $result = $mysqli->query("SELECT * FROM user"); 
    echo "<SELECT name='fab2'>\n";
    while($row = $result->fetch_assoc())
    {
        echo "<option value='{$row['userid']}'>{$row['user']}</option>\n";
    }
    echo "</select>\n";
    echo '</div>';
}
else
{
    echo '<div id="fab2"><span class="b"></span><input type="text" name="fab2"  size="20" value="' . $row['fab2'] . '" /></div>';
}
if ($row['fab3']=="--None--")
{
    echo'<div id="fab3">';
    $mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); 
    $mysqli->select_db('user');
    $result = $mysqli->query("SELECT * FROM user"); 
    echo "<SELECT name='fab3'>\n";
    while($row = $result->fetch_assoc())
    {
        echo "<option value='{$row['userid']}'>{$row['user']}</option>\n";
    }
    echo "</select>\n";
    echo '</div>';
}
else
{
    echo '<div id="fab3"><span class="b"></span><input type="text" name="fab3"  size="20" value="' . $row['fab3'] . '" /></div>';
}
echo '</div>';
?>
        <div id="box5">
            <div id="non"><span class="b">Nonconformity:&nbsp;&nbsp;</span><textarea rows="4" cols="105" value=><?php echo $row['non']?></textarea></div>
            <div id="dis"><span class="b">Disposition:&nbsp;&nbsp;</span><textarea rows="4" cols="105" value=><?php echo $row['dis']?></textarea></div>
            <div id="comm"><span class="b">Comments:&nbsp;&nbsp;</span><textarea rows="4" cols="105" value=><?php echo $row['comm']?></textarea></div>
            <div id="caad"><span class="b">Comments and/or Additional Details:&nbsp;&nbsp;</span><textarea rows="4" cols="105" value=><?php echo $row['caad']?></textarea></div>
        </div>

        <div id="podr">
        <div id="po"><span class="b">PO:&nbsp;&nbsp;</span><input type="text" name="po"  size="7" value="<?php echo $row['po']?>" /></div>
        <div id="pod"><span class="b">PO Date:&nbsp;&nbsp;</span><input type="text" name="pod"  size="7" value="<?php echo $row['pod']?>" /></div>
        <div id="dri"><span class="b">Date Received:&nbsp;&nbsp;</span><input type="text" name="dri"  size="7" value="<?php echo $row['dri']?>" /></div>
        </div>
            <div id="button2"><input type="submit" value="Submit Edits" name="submit" /></div>
        </div>
    </fieldset>
</form>
<?php
        }
    }


echo '</div>';
?>

Ошибка заключается в следующем:

Запрос: UPDATE ncmr SET ab = 'Matt Ridge', date = '2012-01-09 ', part =' K17212191 ', rev =' 01 ', partdesc =' ', ncmrqty =' 2 ', comp =' Charles River Labs ', ncmrid =' 1243 ', rma =' Empty ', jno =«Пусто», fdt = «Третье лицо», cof = «Материалы», fab1 = «Энди Каль», fab2 = «Энтони Аюб», fab3 = fab3 ', non =' ', dis =' ', comm =' ', caad = '', po = '1', pod = '2011-01-01', dri = '2011-01-03' WHERE id = ''

Ошибка запроса: у вас есть ошибка вваш синтаксис SQL;проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы узнать правильный синтаксис для использования рядом с '', non = '', dis = '', comm = '', caad = '', po = '1', pod = '2011-01-01 '' в строке 1

Это не повторное получение идентификатора, я думал, что исправил это с помощью кода раньше, но, похоже, нет.Если кто-нибудь сможет мне помочь, это будет с благодарностью.

1 Ответ

2 голосов
/ 20 февраля 2012

Есть некоторые проблемы с вашим кодом, которые вы должны сначала исправить.

Например, не используйте = для сравнения в операторах if, таких как

if ($row['fab3']="--None--")

Условие всегда будет оцениватьсяна истину, потому что вы делаете задание вместо сравнения.правильный путь:

if ($row['fab3'] == "--None--")

В том же блоке вы снова использовали переменную $ row для другой цели:

if ($row['fab3']="--None--")
{
    // [...]
    // assigning $row with something different
    // use a different variable like $row2 here
    while($row = $result->fetch_assoc())
    {
        echo "<option value='{$row['user']}'>{$row['user']}</option>\n";
    }
    // [...]
}
// $row from now on contains the last tuple you fetched inside the above while-loop

Дайте нам знать, если это решит вашу проблему.

Несвязанное предложение: не смешивайте php и html в одном файле.используйте шаблонизатор, такой как Smarty .

Edit1

. Я предлагаю посмотреть на переменную $ query из этого блока.

  if (!isset($_GET['id'])) {
    $query = "SELECT * FROM ncmr WHERE id = '$id'";
  }
  else {
    $query = "SELECT * FROM ncmr WHERE id = '" . $_GET['id'] . "'";
  }
  $data = mysqli_query($dbc, $query);

  if (mysqli_num_rows($data) == 1) { 
// The user row was found so display the user data
    $row = mysqli_fetch_array($data);

var_dump ($ query);и выполнить этот запрос в phpmyadmin.если запрос приводит к желаемым строкам, var_dump переменной $ row сразу после mysqli_fetch_array.если он также содержит нужные строки, просто следуйте коду и var_dump, пока не найдете строку, после которой он был поврежден.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...