Php 对其中一个表应用where条件后,从整个数据库中进行选择
我有一个数据库,由$tables中列出的10个表组成 其中一个名为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
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文件获得的数据吗