[英]Search MySQL database if entry found and display it, if not, add it
我是PHP和MySQL的新手。 我知道有很多类似的主题,但我似乎无法在其中找到一个主题。
目前,我的数据库中有一个名为“电影”的表。 我有一个搜索表来搜索该表中的电影。 我正在使用下面的代码从数据库中获取信息并显示它。
$query = "SELECT * FROM movies WHERE titleid='$urlid'";
$result = $con->query($query);
if( !$result ) {
die('Query failed!<br>'.$con->error);
}
if( $result->num_rows == 0 ) {
}
while( $row = $result->fetch_assoc() ) {
echo $row['id'];
echo $row['title']; //this is not all of the columns just an example
}
我想做的是:如果$ urlid与'titleid'不匹配,那么我想将其添加到数据库中。 目前,我正在使用下面的代码添加一个条目:
$query = "INSERT IGNORE INTO movies (id, aka, ratio, budget, cast, fullcast, linkcast, castcharacter, linkcastcharacter, company, linkcompany, description, directors, linkdirectors, genre, mpaa, synopsis, poster, rating, releasedate, runtime, sound, officialsites, tagline, title, trailerlink, titleid, year)
VALUES (NULL, '$aka', '$ratio', '$budget', '$cast', '$fullcast', '$linkcast', '$castcharacter', '$linkcastcharacter', '$company', '$linkcompany', '$description', '$directors', '$linkdirectors', '$genre', '$mpaa', '$synopsis', '$poster', '$rating', '$releasedate', '$runtime', '$sound', '$officialsites', '$tagline', '$title', '$trailerlink', '$urlid')";
mysqli_query($con, $query);
如何合并它们,以便在记录不存在的情况下将其添加,然后显示已添加的信息?
谢谢李
$query = "SELECT * FROM movies WHERE titleid='$urlid'";
$result = $con->query($query);
if( !$result ) {
die('Query failed!<br>'.$con->error);
}
if( $result->num_rows == 0 ) {
$addQuery = "*your query here*";
$con->query($query);
echo "Movie added."
} else {
while( $row = $result->fetch_assoc() ) {
echo $row['id'];
echo $row['title']; //this is not all of the columns just an example
}
}
如果没有行,它将添加它,否则显示结果。
只是一个补充:如果您的值与“电影”表中的顺序相同,则可以使用最短的方法:
$query = "INSERT IGNORE INTO movies VALUES (
NULL, '$aka', '$ratio', '$budget', '$cast', '$fullcast', '$linkcast', '$castcharacter', '$linkcastcharacter', '$company',
'$linkcompany', '$description', '$directors', '$linkdirectors', '$genre', '$mpaa', '$synopsis', '$poster', '$rating',
'$releasedate', '$runtime', '$sound', '$officialsites', '$tagline', '$title', '$trailerlink', '$urlid')";
mysqli_query($con, $query);
您可以插入,然后再次选择,例如以下代码:
$query = "SELECT * FROM movies WHERE titleid='$urlid'";
$result = $con->query($query);
if( !$result ) {
die('Query failed!<br>'.$con->error);
}
if( $result->num_rows == 0 ) {
$insert_query = "INSERT IGNORE INTO movies (id, aka, ratio, budget, cast, fullcast, linkcast, castcharacter, linkcastcharacter, company, linkcompany, description, directors, linkdirectors, genre, mpaa, synopsis, poster, rating, releasedate, runtime, sound, officialsites, tagline, title, trailerlink, titleid, year)
VALUES (NULL, '$aka', '$ratio', '$budget', '$cast', '$fullcast', '$linkcast', '$castcharacter', '$linkcastcharacter', '$company', '$linkcompany', '$description', '$directors', '$linkdirectors', '$genre', '$mpaa', '$synopsis', '$poster', '$rating', '$releasedate', '$runtime', '$sound', '$officialsites', '$tagline', '$title', '$trailerlink', '$urlid')";
mysqli_query($con, $insert_query);
$result = $con->query($query);
if( !$result ) {
die('Query failed!<br>'.$con->error);
}
}
while( $row = $result->fetch_assoc() ) {
echo $row['id'];
echo $row['title']; //this is not all of the columns just an example
}
另外,我注意到您的INSERT语句可能不正确。 价值部分缺少$ year。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.