繁体   English   中英

php形式:无法更新数据库,多次连接查询

[英]php form: cannot update the database, query with multiple join

编辑#2: SQLfiddle

编辑#1:我现在看到字段中的所有内容,但无法更新。 所有查询本身都会起作用。

我有一个页面,该页面必须显示数据库中的信息以进行更新。 该查询具有多个联接。 查询本身有效。

我没有收到错误消息(为了获得隐藏或禁用的错误消息,通常的方法不起作用),所以我不知道出了什么问题,但是表格为空并且不编辑任何内容(有时为空白表格)将信息编辑为空字段)。

我曾多次遇到过类似的问题(并且不断在Google上搜索所有内容),并且错误有所不同,但是我以前必须处理的所有事情似乎都不是原因。

这是代码:

<?php 
header('Content-type: text/html; charset=utf-8');

include "../config.php";

isset($_GET['idorg']) ? $idorg=$_GET['idorg'] : $idorg='';
isset($_GET['nameorg']) ? $nameorg=$_GET['nameorg'] : $nameorg='';
isset($_GET['typeorg']) ? $typeorg=$_GET['typeorg'] : $typeorg='';
isset($_GET['emailorg']) ? $emailorg=$_GET['emailorg'] : $emailorg='';
isset($_GET['cperorg']) ? $cperorg=$_GET['cperorg'] : $cperorg='';
isset($_GET['conorg']) ? $conorg=$_GET['conorg'] : $conorg='';
isset($_GET['comorg']) ? $comorg=$_GET['comorg'] : $comorg='';
isset($_GET['idci']) ? $idci=$_GET['idci'] : $idci='';
isset($_GET['nameci']) ? $nameci=$_GET['nameci'] : $nameci='';
isset($_GET['nameco']) ? $nameco=$_GET['nameco'] : $nameco='';
isset($_GET['idco']) ? $idco=$_GET['idco'] : $idco='';
isset($_GET['submit']) ? $submit=true : $submit=false;


if(!$submit)
{

$query = "select dISTINCT   org.idorg, org.nameorg, org.typeorg, org.emailorg,  org.cperorg, org.conorg, org.comorg, idci, country.nameco, city.nameci, idco
from org 
join city on city.idci=org.city_idci 
JOIN country on country.idco=org.city_country_idco
where idorg=?
group by idorg

";

if($stmt = $mysqli->prepare($query))
{

$stmt-> bind_param("i", $idorg);
$stmt->execute();
$stmt->bind_result($idorg, $nameorg, $typeorg, $emailorg, $cperorg, $conorg, $comorg, $idci,$nameci,  $nameco, $idco);
$stmt->fetch();

$stmt->close();
$mysqli->close();

    echo'
    <!DOCTYPE html>
<html>
<head>
<style>h1{color:red;}label{color:darkred;}</style>
<title>Edit user</title>
<meta charset=”UTF-8”>
</head>
<body>
<h1>Edit organisation:</h1>
<form action="" method="GET">
<label>ID </label><input readonly name="idorg" value="'.$idorg.'"><br>
<label>Name org </label><input type="text" name="nameorg" value="'.$nameorg.'"><br>
<label>Type </label><input type="text" name="typeorg" value="'.$typeorg.'"><br>
<label>e-mail </label><input type="text" name="emailorg" value="'.$emailorg.'"><br>
<label>contact person </label><input type="text" name="cperorg" value="'.$cperorg.'"><br>
<label>contact</label><input type="text" name="conorg" value="'.$conorg.'"><br>
<label>comment </label><input type="text" name="comorg" value="'.$comorg.'"><br>
<label>cityID </label><input readonly name="idci" value="'.$idci.'"><br>
<label>city </label><input type="text" name="nameci" value="'.$nameci.'"><br>
<label>country </label><input type="text" name="nameco" value="'.$nameco.'"><br>
<label>countryID </label><input readonly name="idci" value="'.$idco.'"><br>
<input type="reset" value="clear">
<input type="submit" value="add" name="submit"><br>
</form>
</body>

</html>
';
}
}else{
$query1 = "UPDATE org
join city on city.idci=org.city_idci 
JOIN country on country.idco=org.city_country_idco
SET nameorg=?, typeorg=?, nameco=?, nameci=? emailorg=?, cperorg=?, conorg=?, comorg=?, idci=?, idco=?  WHERE idorg=?";

if($stmt = $mysqli->prepare($query1))
{

$stmt->bind_param('ssssssssiii', $nameorg, $typeorg,$nameco, $nameci,  $emailorg, $cperorg, $conorg, $comorg, $idci, $idco, $idorg);

$stmt->execute();
$stmt->close();
}
$mysqli->close();
header('Location: view.php');
//echo "<a href='view.php'>back</a>";
}

?>

这是数据库的EER图

先感谢您 :)

为什么使用
if(!$ submit)???

可能是
如果($提交)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM