查询不起作用

时间:2013-10-02 14:12:55

标签: php html mysql sql foreach

我制作了这段代码:

  Acum, bifeaza materiile pe care le studiaza clasa aleasa:<br />
     <form name="servForm" action="<?php $PHP_SELF; ?>" method="post" >
    <table border="0">
  <?php  
$a = 0;
        $rezultat = "SELECT id, materie
        FROM  materii
        ORDER BY id";

        $rezultat1 = mysql_query($rezultat);
        while($plm = mysql_fetch_array($rezultat1))
            {
            if($a++ %5 == 0) echo "<tr>";
            ?>
 <td align="center"><input type="checkbox" name="checkbox2[]" value="<?php echo $plm['id']; ?>" /></td>
            <td style="text-align:left"><?php echo $plm["materie"]; ?>&nbsp;</td>
        <?php
        if($a %5 == 0) echo "</tr>";
            }
        ?>
    </table>
</div>
<br/>

    <input type="reset" value="Sterge" /> <input type="submit" value="Salveaza" name="savebtn" />
    </form>


    <?php
    if(isset($_POST['savebtn']))
    {
     foreach($_POST["checkbox2"] as $loc_id)
{
  $query = "INSERT INTO materii_pe_clase(id_scoala,id_clasa,id_materie) VALUES('$scoalalui','$clasalui','$loc_id')"; //aici cauta ! :)) 
  $result5 = mysql_query($query)
  or die('eroare');

}//sfarsit foreact
     }//sfarsit if isset

为什么最后一个查询不起作用?附:它是一个学校项目,所以mysql没问题,不需要mysqli。 p.p.s我定义了$ scoalalui和$ clasalui somwhere在页面上的一点点。但他们不是问题,我试着用价值取代它们。查询根本不起作用。谢谢!

谢谢大家!

编辑

$ clasalui和$ scoalalui的VARDUMP :

string '1' (length=1)
string '1' (length=1)

1 个答案:

答案 0 :(得分:1)

你的问题在于,你关闭了错误工具,因为PHP应该说,就像这样。 Notice: Undefined variable $PHP_SELF"

既然你没有看到它,我会认为它是你“问题”的根源。

PHP_SELF不是变量,这是一个常数。它甚至不需要,因为默认情况下PHP将数据发送到其目标URL。

我提高了代码的可读性,因此现在应该适合你,

<?php

// You want to see all errors? Fine:
error_reporting(E_ALL);

$a = 0;
$rezultat = "SELECT id, materie FROM  materii ORDER BY id";
$rezultat1 = mysql_query($rezultat);


// If the form is submitted, this will be executed
if (isset($_POST['savebtn'])) {
    foreach($_POST["checkbox2"] as $loc_id) {

        $query = "INSERT INTO `materii_pe_clase` (`id_scoala`, `id_clasa`, `id_materie`) VALUES('$scoalalui', '$clasalui', '$loc_id')"; 

        $result = mysql_unbuffered_query($query);

        if (!$result){
            die(mysql_error());
        }
    }

    // And finally
    die('Saved. Thanks');
}
?>

 Acum, bifeaza materiile pe care le studiaza clasa aleasa: <br />

 <form name="servForm" method="POST">
    <table border="0">
        <?php while($plm = mysql_fetch_array($rezultat1)) : ?>

        <?php if ($a++ %5 == 0) :?>
        <tr>
        <?php endif; ?>

            <td align="center">
                <input type="checkbox" name="checkbox2[]" value="<?php echo $plm['id']; ?>" />
            </td>
            <td style="text-align:left"><?php echo $plm["materie"]; ?>&nbsp;</td>

        <?php if($a %5 == 0) : ?>
        </tr>
        <?php endif; ?>

        <?php endwhile; ?>

    </table>

    <br/>

    <input type="reset" value="Sterge" />
    <input type="submit" value="Salveaza" name="savebtn" />
 </form>