【发布时间】:2015-10-06 23:50:48
【问题描述】:
我正在向我的数据库中插入一些数据,这些数据位于两个表中。插入工作正常,但是当我再次尝试插入时,如果单元格有值,新值将插入到它旁边。如果单元格中已经有一个值,我尝试了一个 if/else 条件来防止新的插入,但未能使其工作。也许这不是解决方案,或者我做错了。请问有什么帮助吗?
if(isset($_POST['submit'])) {
$degree = $_POST['Degree'];
$major = $_POST['Major'];
$univ = $_POST['Univ'];
$brevet = $_POST['Brevet'];
$baccbt = $_POST['Baccbt'];
$selectaf = $_POST['SelectAF'];
$sql1="SELECT certificatesgrading.brevet,
certificatesgrading.baccbt,
university.degree,
university.major,
university.univ
FROM university,
certificatesgrading
WHERE afnumber = '$selectaf'";
if ($result=mysqli_query($con,$sql1)) {
// Return the number of rows in result set
$rowcount=mysqli_num_rows($result);
}
$sql="INSERT INTO university
(afnumber,
university.degree,
university.major,
university.univ)
VALUES ('$selectaf',
'$degree',
'$major',
'$univ')";
$sql1="INSERT INTO certificatesgrading
(afnumber,
certificatesgrading.brevet,
certificatesgrading.baccbt)
VALUES ('$selectaf',
'$brevet',
'$baccbt') ";
$result = mysql_query($sql);
$result = mysql_query($sql1);
}
echo $menu;
【问题讨论】:
-
这样做有用吗?如果是这样,为什么不直接使用它!我想不出一个“更好”的方法来做到这一点。
-
第一个查询中
university、certificatesgrading、where或join ... on之间应该有一个join condition就可以了。 -
@RyanVincent 抱歉,我没听懂你.. 在哪里申请加入?
-
@RyanVincent 还是一样
-
请使用新代码更新您的问题。您仍然需要使用使用
$rowcount结果来决定是否插入新行的测试来包装插入。正如答案中已经提到的那样,这不会防止重复 - 请参阅@GordonM cmets。您可以使用transaction来帮助解决该问题。
标签: php mysql phpmyadmin