Проблема с обновлением sql db из формы отправки обрабатывает данные в цикле - PullRequest
0 голосов
/ 10 марта 2011

У меня проблема с формой, созданной со значениями из БД, и при отправке ничего не происходит.

У меня это работало, но потом оно прекратилось ... Не знаю, что я сделал ... просто изучаю php, поэтому, пожалуйста, помогите:

    <?php ob_start(); 

$x_station = $_REQUEST['station'];


?>
<?php include('incl/session.php3'); ?>
<?php if($session->logged_in){ } else { header("Location: index.php"); }?>
<?php include('incl/vars.php3'); ?>

<?php include('incl/header.php3'); ?>

<?php include('incl/menu.php3'); ?>

<?php
// Connect to server and select databse.

    $x_db_host1="xxxxx"; // Host name
    $x_db_username1="xxxxx"; // Mysql username
    $x_db_password1="xxxxxx"; // Mysql password
    $x_db_name1="xxxxx"; // Database name
// Connect to server and select databse.
    mysql_connect("$x_db_host1", "$x_db_username1", "$x_db_password1")or die("cannot connect to database");
    mysql_select_db("$x_db_name1") or die("cannot select DB");

$sql="SELECT * FROM delegates WHERE CheckedIn = 0 AND DStation = $x_station";
$result=mysql_query($sql) or die ('Error: '.mysql_error ());

// Count table rows
$count=mysql_num_rows($result);
?>


    <div class="content">


                <div class="in author">
                    <h2>Conference Check-in</h2>
                    <p>Please see Brad for assistance.<em></em></p>
</div>

                <div class="line"></div>


            <div class="check_main"></div>

                <div class="in forms">
                <form name="form1" method="post" action="">
<table width="600" border="0" cellspacing="1" cellpadding="0">
<tr style="background-color:#d9d8d8; font-size:14px;">
<td align="center"><strong>ID</strong></td>
<td align="center"><strong>Name</strong></td>
<td align="center"><strong>Saturday</strong></td>
<td align="center"><strong>Dinner</strong></td>
<td align="center"><strong>Sunday</strong></td>
<td align="center"><strong>Special Req</strong></td>
<td align="center"><strong>Check In?</strong></td>
</tr>
<?php
while($rows=mysql_fetch_array($result)){
?>
<tr>
<td align="center"><? 
$DID[]=$rows['DID']; 
echo $rows['DID']; ?>
  </td> 
<td align="center"><? echo $rows['DFName']; ?> <? echo $rows['DLName']; ?></td>
<td align="center">   
<?php 

if($rows['DConfSat']==0){echo "<select name=\"Sat[]\" id=\"Sat\"><option selected=\"selected\" value=\"0\">YES</option><option value=\"1\">NO</option></select>";}
else{echo "<select name=\"Sat[]\" id=\"Sat[]\"><option selected=\"selected\" value=\"1\">NO</option><option value=\"0\">YES</option></select>";}
?>
</td>
<td align="center"> <?php 
$DiSat[]=$rows['DConfdinner'];
if($rows['DConfdinner']==0){echo "<select name=\"DiSat[]\" id=\"DiSat\"><option selected=\"selected\" value=\"0\">YES</option><option value=\"1\">NO</option></select>";}
else{echo "<select name=\"DiSat[]\" id=\"DiSat\"><option selected=\"selected\" value=\"1\">NO</option><option value=\"0\">YES</option></select>";}
?></td>
<td align="center">  <?php 
$Sun[]=$rows['DConfSun'];
if($rows['DConfSun']==0){echo "<select name=\"Sun[]\" id=\"Sun\"><option selected=\"selected\" value=\"0\">YES</option><option value=\"1\">NO</option></select>";}
else{
    echo "<select name=\"Sun[]\" id=\"Sun\"><option selected=\"selected\" value=\"1\">NO</option><option value=\"0\">YES</option></select>";}
?></td>
<td align="center"> 
<?php 
if($rows['DSpecRe']==0){echo "NO"; }
    else { echo "YES"; }
 ?> 
    </td>
<td align="center"> 
     <input name="checkin[]" type="checkbox" id="checkin" value="1" /></td>
</tr>
<?php
}
?>
<tr>
<td colspan="4" align="center"><input type="submit" name="Submit" value="Submit"></td>
</tr>
</table>

</form>
      </div>





    <div class="in"></div>

        </div>
<?php
// BEGIN FORM PROCESSING!


// Check if button name "Submit" is active, do this


if($Submit){

for($i=0;$i<$count;$i++){
// SQl Query
$sql1="UPDATE delegates SET Dconfdinner='$DiSat[$i]', DConfSat='$Sat[$i]' DConfSun='$Sun[$i]' CheckedIn='checkin[$i]' WHERE DID='$DID[$i]'";


$result1=mysql_query($sql1)or die ('Error: '.mysql_error ());
}
}
if($result1){
header("location: checkin.php&msg=1");
}
mysql_close();
?>          
<?php include('incl/footer.php3'); ?>


<?php ob_flush(); ?>

Понятия не имею, почему при отправке не вносит изменений.

Он также не перенаправляет на нужную страницу, просто возвращает на текущую страницу.

Помощь оценена:)

Ответы [ 4 ]

0 голосов
/ 10 марта 2011

что вы можете сделать, это отредактировать ваш httpd.conf и найти ErrorLog и прямо рядом с ним указать путь к файлу tet.Каждый SQL-запрос, который выполняется на любом веб-сайте, который вы размещаете, будет отображаться на этой странице.чтобы вы могли отследить, какие запросы mysql видны на самом компьютере.

0 голосов
/ 10 марта 2011

Ваша форма не имеет атрибута action. Используете ли вы JavaScript для отправки формы? Если нет, ваша форма нуждается в действии!

<form name="form1" method="post" action="">

Должно быть что-то вроде этого

<form name="form1" method="post" action="your_script.php">

0 голосов
/ 10 марта 2011
$sql = 'UPDATE delegates SET Dconfdinner = "%s", DConfSat = "%s", DConfSun = "%s", CheckedIn = "%s" WHERE  DID = "%s"'; // ,
$sql = sprintf($sq, $DiSat[$i], $Sat[$i], $Sun[$i], $checkin[$i], $DID[$i]);

Также ... Переменная $ Sat не существует.

0 голосов
/ 10 марта 2011

изменить

if($Submit)

на

if(isset($_POST['submit']))

isset проверяет, имеет ли значение $ _POST ['submit'].когда вы нажимаете на кнопку, значение создается автоматически, предполагая, что 1. у вас просто есть значение, как будто ($ submit), и эта переменная не связана ни с чем.лучше написать, как я.

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