Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Оператор PHP Mysql - несколько операторов

Автор вопроса: SmudgerОтветов: 2

У меня есть страница PHP, которая отображает результаты запроса mysql. каждой возвращенной записи назначается флажок со значением, равным столбцу идентификатора строки.

оператор mysql вставляет выбранные строки в новую таблицу.

Я хотел бы добавить второй запрос mysql, который обновляет статус другой таблицы, в которой совпадают выбранные идентификаторы. запрос ниже:

ОБНОВЛЕНИЕ despgoods_alldetails,loaddetails SET despgoods_alldetails.locstatus = 'LoadCreated' ГДЕ despgoods_alldetails.despgoodsid = $val

PHP-код страницы, который работает в настоящее время (мне известен неправильный код):

> <?php
>     mysql_connect("localhost", "hulamin_hulamin", "Hulamin2011")or die("cannot connect");
>     mysql_select_db("hulamin_loc")or die("cannot select DB");
>     $sql="SELECT `despgoodsid`,`crtd dept`,`customer`,`loc cust rel`,`case no`,`gross mass`,`case width`,`case length` from
> despgoods_alldetails where transporttypename= 'localpmb' and
> locstatus='unplanned' and customer <> 'customer'";
>     $result=mysql_query($sql);
>     $count=mysql_num_rows($result);   putenv("TZ=Africa/Johannesburg");   ?> <table border=0>
>     <tr>
>         <td>
>             <form name="form1" method="post">
>                 <table border=0
>                     <tr>
>                         <th>&nbsp;</th>
>                         <th width=150>Dispatch Area</th>
>                         <th width=150>Customer</th>
>                       <th width=150><center>Release Number</th>
>                       <th width=130><center>Case Number</th>
>                       <th width=80><center>Weight</th>
>                       <th width=80><center>Width</th>
>                       <th width=80><center>Length</th>
>                   </tr> <?php
>     while($rows=mysql_fetch_array($result)){ ?>
>                     <tr>
>                         <td><input type="checkbox" name=check[]  value="<?php echo $rows['despgoodsid']; ?>"></td>
>                         <td><?php echo $rows['crtd dept']; ?></td>
>                         <td><?php echo $rows['customer']; ?></td>
>                       <td><center><?php echo $rows['loc cust rel']; ?></td>
>                         <td><center><?php echo $rows['case no']; ?></td>
>                         <td><center><?php echo $rows['gross mass']; ?></td>
>                       <td><center><?php echo $rows['case width']; ?></td>
>                       <td><center><?php echo $rows['case length']; ?></td>
>
>                     </tr>
>
> <?php
>     } ?>
>                     <tr>
>                         <td colspan=3><input name="Next" type="submit" id="Next" value="Next"></td>
>                     </tr>
>                     <?php
>
>
>
>                             $check=$_POST['check'];
>
>                         if($_REQUEST['Next']=='Next'){  {
>                             $sql="INSERT INTO loaddetails (despgoodsid,dispatcharea,Customer, casenumber, weight, loadstatus)
>                           SELECT `despgoodsid`,`crtd dept`,Customer,`case no`,`gross mass`,'loadplanned'
>                           FROM despgoods_alldetails WHERE `despgoodsid` = '$val'";
>
>                             foreach($check as $key=>$value)
>                             {
>                             $sql="INSERT INTO loaddetails (despgoodsid,dispatcharea,Customer, casenumber, weight, loadstatus)
>                           SELECT `despgoodsid`,`crtd dept`,Customer,`case no`,`gross mass`,'loadplanned'
>                           FROM despgoods_alldetails WHERE `despgoodsid` = '$value'";
>                             $final=mysql_query($sql);
>                             if($final)
>                             {
>                             echo "<meta http-equiv=\"refresh\" content=\"0;URL=http://www.hulaminloc.co.za/planningplatform/planlocalpmbstep2.php\">";
>                             }                                            }
>                                 }
>                                 }
>                    mysql_close(); ?> </table> </form> </td> </tr> </table>

Как я могу добавить свой оператор обновления для запуска в дополнение к оператору выбора для каждой выбранной строки?

Любая помощь приветствуется.

Спасибо и С уважением, Райан Смит

phpinsert

Ответы

Ответ 1 · рейтинг 1 · mishu

вы можете создать триггер, который будет срабатывать при сохранении данных во вторичной таблице; проверьте руководство mysql для триггеров, если вы думаете, что это может быть то, что вам нужно

Ответ 2 · Smudger

Я бы разместил полный рабочий код здесь. Спасибо @mishu за помощь и терпение.

<?php
    mysql_connect("localhost", "user", "password")or die("cannot connect");
    mysql_select_db("database")or die("cannot select DB");
    $sql="SELECT `despgoodsid`,`crtd dept`,`customer`,`loc cust rel`,`case no`,`gross mass`,`case width`,`case length` from despgoods_alldetails where transporttypename= 'localpmb' and locstatus='unplanned' and customer <> 'customer'";
    $result=mysql_query($sql);
    $count=mysql_num_rows($result);
    putenv("TZ=Africa/Johannesburg");

?>
<table border=0>
    <tr>
        <td>
            <form name="form1" method="post">
                <table border=0
                    <tr>
                        <th>&nbsp;</th>
                        <th width=150>Dispatch Area</th>
                        <th width=150>Customer</th>
                        <th width=150><center>Release Number</th>
                        <th width=130><center>Case Number</th>
                        <th width=80><center>Weight</th>
                        <th width=80><center>Width</th>
                        <th width=80><center>Length</th>
                    </tr>
<?php
    while($rows=mysql_fetch_array($result)){
?>
                    <tr>
                        <td><input type="checkbox" name=check[]  value="<?php echo $rows['despgoodsid']; ?>"></td>
                        <td><?php echo $rows['crtd dept']; ?></td>
                        <td><?php echo $rows['customer']; ?></td>
                        <td><center><?php echo $rows['loc cust rel']; ?></td>
                        <td><center><?php echo $rows['case no']; ?></td>
                        <td><center><?php echo $rows['gross mass']; ?></td>
                        <td><center><?php echo $rows['case width']; ?></td>
                        <td><center><?php echo $rows['case length']; ?></td>

                    </tr>

<?php
    }
?>
                    <tr>
                        <td colspan=3><input name="Next" type="submit" id="Next" value="Next"></td>
                    </tr>
                    <?php


                            $check=$_POST['check'];

                        if($_REQUEST['Next']=='Next'){
 {


$maxloadid = '
select
max(loadid) +1
from
loaddetails
';
$resultmaxloadid = mysql_query($maxloadid); // run the query

// there was an error - output the message
if (!$resultmaxloadid)
{
echo 'there was an error in your query';
echo mysql_error();
die;
}

$loadid = mysql_result($resultmaxloadid, 0);

foreach($check as $key=>$value) //
{
// get the details for one of the selected values
$query = '
SELECT
`despgoodsid`,
`crtd dept`,
`Customer`,
`case no`,
`gross mass`
FROM
despgoods_alldetails
WHERE
`despgoodsid` = "'. mysql_real_escape_string($value) . '"
';

$result = mysql_query($query); // run the query

// there was an error - output the message
if (!$result)
{
echo 'there was an error in your query';
echo mysql_error();
die;
}

// we got here, everything is fine

if (!mysql_num_rows($result)) // the above query did not fetch any records, so there's a problem
{
continue; // skip this record.. "continue" will ignore the rest of the foreach loop and go to the next step
}

$details = mysql_fetch_assoc($result);

// inset the values
$query = '
INSERT INTO
loaddetails
SET
despgoodsid = "'.$details['despgoodsid'].'",
dispatcharea= "'.$details['crtd dept'].'",
Customer = "'.$details['Customer'].'",
casenumber = "'.$details['case no'].'",
weight = "'.$details['gross mass'].'",
loadstatus= "loadplanned",
loadid = "'.$loadid.'"
';

$result = mysql_query($query); // run the query

// there was an error - output the message
if (!$result)
{
echo 'there was an error in your query';
echo mysql_error();
die;
}

// update the status
$query = '
UPDATE
despgoods_alldetails
SET
locstatus ="LoadCreated"
WHERE
despgoodsid = "'.mysql_real_escape_string($value) . '"
';
$result = mysql_query($query); // run the query

// there was an error - output the message
if (!$result)
{
echo 'there was an error in your query';
echo mysql_error();
die;
}


} // end of foreach statement
if($final)
{
echo "<meta http-equiv=\"refresh\" content=\"0;URL=http://www.hulaminloc.co.za/planningplatform/index.phpx`\">";
}


                                }
                                }

mysql_close();
?>
</table>
</form>
</td>
</tr>
</table>

Еще раз спасибо @Mishu и всем остальным участникам сайта.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы