Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 对其中一个表应用where条件后,从整个数据库中进行选择_Php_Mysql - Fatal编程技术网

Php 对其中一个表应用where条件后,从整个数据库中进行选择

Php 对其中一个表应用where条件后,从整个数据库中进行选择,php,mysql,Php,Mysql,我有一个数据库,由$tables中列出的10个表组成 其中一个名为tbl_module的表包含一个名为delete_time的列,以下语句从这些表中选择所有数据: $statement = "SELECT * FROM tbl_".$table; 我需要做的是添加一个条件来选择这些表中的所有数据,其中tbl\u模块中的delete\u time的值为NULL php代码是: <?php // alle relevanten Tabellen abfragen und als json z

我有一个数据库,由$tables中列出的10个表组成

其中一个名为
tbl_module
的表包含一个名为
delete_time
的列,以下语句从这些表中选择所有数据:

$statement = "SELECT * FROM tbl_".$table;
我需要做的是添加一个条件来选择这些表中的所有数据,其中
tbl\u模块
中的delete\u time的值为NULL
php代码是:

<?php
// alle relevanten Tabellen abfragen und als json zurückgeben.


$json["status"] = "running";
$details[] = "started get_tables ";
// Include confi.php
include_once('confi.php');
//var_dump($_POST);
$request_body = file_get_contents('php://input');
// first store the given set of data to keep it for future analysis
$statement = "INSERT INTO tbl_archive (content) VALUES ('$request_body' );";
mysql_query($statement);
$input = json_decode($request_body, true);
// now check if valid user
$user = $input["user"];

$username = $user["username"];
$password = $user["password"];

if($password and $username){


    $mySQLstring = "SELECT username, password, id FROM tbl_user where username = '$username' ;";
    $json["statement"][] = $mySQLstring;
    $qur = mysql_query($mySQLstring);
    //var_dump ( $qur );
    if ($qur){
        $res = mysql_fetch_assoc($qur);
    }
    if ($res){
        $json["res"] = $res;
        if ($res["password"] == $password){
            $json["username"] = $username;
            $json["id"] = $res["id"];
            $json["status"] = "ok";
            $tables = array("class", "class_user", "module", "module_class", "module_user", "rating", "student", "student_class");
            //$tables = array("class");
            foreach($tables as $table){
                $statement = "SELECT * FROM tbl_".$table;

                $qur = mysql_query($statement);
                if ($qur){
                    while($r = mysql_fetch_array($qur, MYSQL_ASSOC)){
                        //var_dump($r);
                        //echo (json_encode($r));
                        $result[$table][] = $r;
                    }
                }
            }
            $json = array("status" => "ok", "data" => $result);
        }
    }
}



@mysql_close($conn);

/* Output header */
header('Content-type: application/json');
echo json_encode($json);
?>

这相当简单,如果
$table=module
如下所示,则只需更改
$statement

        $tables = array("class", "class_user", "module", "module_class", 
                        "module_user", "rating", "student", "student_class");

        foreach($tables as $table){
            $statement = "SELECT * FROM tbl_".$table;

            if ( $table == 'module' ) {
                $statement .= ' WHERE delete_time IS NOT NULL ';

                // and to add not equal to 0000-00-00 00:00:00
                $statement .= " AND delete_time != '0000-00-00 00:00:00' ";
            }


            $qur = mysql_query($statement);
            if ($qur){
                while($r = mysql_fetch_array($qur, MYSQL_ASSOC)){
                    //var_dump($r);
                    //echo (json_encode($r));
                    $result[$table][] = $r;
                }
            }
        }
注1:

请不要使用
mysql\uu
数据库扩展,它已被弃用(在PHP7中永远消失) 特别是如果你只是在学习PHP,那么就花点精力学习
PDO
mysqli_u979;
数据库扩展,

注2:

这段代码中还存在一些其他主要问题,主要是直接使用来自$\u POST数组的数据,而没有对其进行任何验证或健全性检查,并将其直接放入查询中。您应该对此进行修复,但使用PDO和命名或
位置参数将大大缓解此问题


你应该加入表格,而不是单独检索表格。你能展示一个示例,更好地理解Anks Riggs吗?它现在起作用了,谢谢你的提示。正常的做法是接受帮助你的答案,为此,您还可以获得声誉点如果我希望删除时间在哪里不为null或不为0000-00-00 00:00:00:00,可以这样做吗?您知道如何在另一个js文件中使用从同一个php文件获得的数据吗