2015-09-09 51 views
0

尝试向表$_POST["arduinotable"]中添加一些值,具体取决于它们是否存在于$arduinotableS中。主要问题是我可以获得值$valor两次。当我第一次回显它正确显示时,但第二次回显相同变量的值时,它是空的。这里是我的代码:

<?php 

error_reporting(E_ALL^E_DEPRECATED); 
if (isset($_POST["arduinotable"]) && isset($_POST["valor"])){ 
    $arduinotable = $_POST["arduinotable"]; 
    $valor = $_POST["valor"]; 
    require("config.php"); 
    $con = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname); 
    echo "1st echo" . $valor; 


    //Lets change the value of valor 
    $arduinotableS=$arduinotable . "S"; 
    $sql ="SELECT valor FROM $arduinotableS WHERE ID='$valor'" ; 
    $result = mysqli_query($con, $sql);  
    $row = mysqli_fetch_assoc($result); 
    if (empty($result)){ 
     echo "2nd echo" . $valor; 
     // Esta es la instrucción para insertar los valores 
     $query = "INSERT INTO $arduinotable (valor) VALUES('".$_SESSION['valor']."')"; 
     // Ejecutamos la instrucción 
     mysqli_query($con, $query); 
     } 
    else { 
     $value=$row['valor']; 
     $query = "INSERT INTO $arduinotable (valor) VALUES('".$value."')"; 
     mysqli_query($con, $query); 
      echo $value;} 
} 

你们知道这是什么问题吗?为了提供进一步的信息,当我输入else时,文件能够正确回显$value ...

谢谢!

+0

你的意思是'echo“2nd echo”。 $勇敢;'带来错误的价值? – Alex

+0

只是一个方面的说法:'E_ALL^E_DEPRECATED'是**不是**合并错误报告级别的正确方法。使用错误报告常量的当前值**它会发生**,即'^'产生正确的值,但这只是一个巧合。作为一般规则,为了表达“所有但不赞成的”,你应该使用'E_ALL&〜E_DEPRECATED'。 – axiac

回答

0

在sql查询中使用它之前,将变量$ valor的值复制到新变量$ valor2中,然后使用该副本($ valor2)作为第二个回显段。

+0

我已经试过了,它不起作用。我也曾与$ _SESSION,但再次,第二个仍然是空的 – Alvaro

0

您在此使用POST方法,但可能通过GET传递值,请检查这两个文件。双方使用相同的http方法。

+0

后方法工作正常,我没有使用GET ... – Alvaro