if语句无法正常工作

时间:2014-02-11 17:49:18

标签: php

大家好,我的代码非常简洁:

mysql_select_db("tierra") or die(mysql_error());

$query= "SELECT DISTINCT `fecha` FROM inventarioStat WHERE `fecha` = '$timestamp'"; 
$result = mysql_query($query) or die ("Error in query: $query " . mysql_error()); 
$row = mysql_fetch_array($result); 
$num_results = mysql_num_rows($result); 
echo $row['fecha'];

if ($row['fecha'] == $timestamp) { break;}
else

{ 
mysql_select_db("tierra") or die(mysql_error());
if(isset($_POST["hiddenProducto"]) && count($_POST['hiddenProducto'])>0) {

    foreach($_POST["hiddenProducto"] as $key => $value) {
         "TOTAL:". $total = $value;
         "<br>";
         "Value:".$value = $_POST["total"][$key];
         "<br>";
         "idItem:".$idItem = $_POST['hiddenidItem'][$key];
         "<br>";
         "Nombre:".$nombre = $_POST['nombre'];
         "<br>";
         "Producto:".$producto = $_POST['hiddenProducto'][$key];
         "<br>";
         "Provedor:".$proveedor = $_POST['proveedor'][$key];
         "<br>";
         "undCaja:".$undCaja = $_POST['udCaja'][$key];
         "<br>";
         "sueltas:".$undCaja = $_POST['sueltas'][$key];
         "<br>";
         "formato:".$formato=$_POST['formato'][$key];
         "<br>";
         "cajas:".$cajas = $_POST['cajas'][$key];
         "<br>";
         "diferencia:".$diferencia = ($_POST['lastValue'][$key]) - $value;
         "<br>";
        $query = "INSERT INTO `inventarioStat` (fecha, localizacion, nombre, idItem, producto, proveedor, udCaja, formato, cajas, sueltas, total, diferencia) VALUES
                     ('$timestamp', '$localizacion','$nombre', '$idItem', '$producto', '$proveedor', '$undCaja', '$formato','$cajas', '$sueltas', '$value', '$diferencia')";

         mysql_query($query);
    }     

echo "Hecho!";
  }

} 


?>

困扰我的是以下部分:

if ($row['fecha'] == $timestamp) { break;}

它根本不起作用,我试图避免在数据库中插入重复的日期 但显然我做错了。

2 个答案:

答案 0 :(得分:4)

替换

if ($row['fecha'] = $timestamp)

if ($row['fecha'] === $timestamp)  //<----- That is a strict-comparison

您正在进行分配操作而不是比较操作。您可以使用=====

答案 1 :(得分:1)

编辑:不推荐使用mysql_query,你应该考虑使用ADOdb或PDO

首先用

替换初始查询
$query= "SELECT COUNT(*) as fecha FROM inventarioStat WHERE `fecha` = '$timestamp'"; 

然后用

替换条件
if (intval($row['fecha']) === 0)
{ 
mysql_select_db("tierra") or die(mysql_error());
if(isset($_POST["hiddenProducto"]) && count($_POST['hiddenProducto'])>0) {

    foreach($_POST["hiddenProducto"] as $key => $value) {
         "TOTAL:". $total = $value;
         "<br>";
         "Value:".$value = $_POST["total"][$key];
         "<br>";
         "idItem:".$idItem = $_POST['hiddenidItem'][$key];
         "<br>";
         "Nombre:".$nombre = $_POST['nombre'];
         "<br>";
         "Producto:".$producto = $_POST['hiddenProducto'][$key];
         "<br>";
         "Provedor:".$proveedor = $_POST['proveedor'][$key];
         "<br>";
         "undCaja:".$undCaja = $_POST['udCaja'][$key];
         "<br>";
         "sueltas:".$undCaja = $_POST['sueltas'][$key];
         "<br>";
         "formato:".$formato=$_POST['formato'][$key];
         "<br>";
         "cajas:".$cajas = $_POST['cajas'][$key];
         "<br>";
         "diferencia:".$diferencia = ($_POST['lastValue'][$key]) - $value;
         "<br>";
        $query = "INSERT INTO `inventarioStat` (fecha, localizacion, nombre, idItem, producto, proveedor, udCaja, formato, cajas, sueltas, total, diferencia) VALUES
                     ('$timestamp', '$localizacion','$nombre', '$idItem', '$producto', '$proveedor', '$undCaja', '$formato','$cajas', '$sueltas', '$value', '$diferencia')";

         mysql_query($query);
}     


echo "Hecho!";
}