- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我希望我的标题不会完全令人困惑。首先我想说我现在是一名程序员,并且是 PHP 和 MySQL 的业余爱好者,我用它们来玩在线游戏。我已经为此不懈努力了几天,但没有成功。我一直在考虑在这里寻求帮助,希望人们对我宽容一点,不要完全破坏我的代码!就像我说的,我是业余爱好者。
基本上,我想做的是将 $_POST
数组中的 $horsename
数据与我的表中的 name
进行匹配马
。如果它们不匹配,则会将具有该名称
的马添加到horses
表中。如果它们匹配,它将继续并将 $_POST
数组中的数据添加到每行的 results
表中。
我遇到的问题(我已经多次尝试过这个问题,每次都会出现不同的问题)即使 $horsename
与 name
匹配> 在horses
表中,它尝试将一匹新马添加到horses
表中。它也不会移动到下一行数据,并且会尝试一遍又一遍地添加同一匹马。 (希望这是有道理的!)
我将从下面的页面粘贴大部分代码,以防万一它是我代码中较早的内容导致此问题的情况。请注意,此代码的一部分不是我自己的,我正在为其他人编写它,所以如果事情在几个地方不完全统一,这就是原因。我正在研究的部分就是我上面提到的。
function stripslashes_deep($value) {
$value = is_array($value) ?
array_map('stripslashes_deep', $value) :
stripslashes($value);
return $value;
}
$results = str_replace("\r", '', trim($_POST['news']));
$data = array();
$lines = explode("\n", $results);
foreach ($lines as $place) {
if (!empty($place)) {
$data = array();
$detail = explode(",", $place);
if (!empty($detail)) {
$id = '';
$show = $_POST['show'];
$year = $_POST['year'];
$association = $_POST['association'];
$chpoints = $_POST['chpoints'];
$rchpoints = $_POST['rchpoints'];
$ttpoints = $_POST['ttpoints'];
$chearnings = $_POST['chearnings'];
$rchearnings = $_POST['rchearnings'];
$ttearnings = $_POST['ttearnings'];
$horsename = stripslashes(trim($detail[0]));
$placement = stripslashes(trim($detail[1]));
$class = stripslashes(trim($detail[2]));
if($placement === 'CH'){
$points = $chpoints;
}
else if ($placement === 'RCH') {
$points = $rchpoints;
}
else {
$points = $ttpoints;
}
if ($placement === 'CH') {
$earnings = $chearnings;
}
else if ($placement === 'RCH') {
$earnings = $rchearnings;
}
else {
$earnings = $ttearnings;
}
$horses = mysql_query("SELECT name FROM horses") or die ('Error accessing database: ' . mysql_error());;
while($row = mysql_fetch_array($horses)) {
$storedname = addslashes(trim($row['name']));
if ($storedname == $horsename) {
echo "The names do match for $horsename";
}
else {
echo "The names do not match for $horsename";
$addhorse="INSERT INTO horses (id, owned_by, name, yob, color, breed, discipline, sire, dam, damsire, bred_by, gender)
VALUES ('','25','$horsename','','','','','','','','','')";
mysql_query($addhorse) or die ('Error updating database: ' . mysql_error());
echo 'Added '. $horsename .' to Archive.';
}
}
if (isset($_POST['news'])) {
$query="INSERT INTO `results` (`id`, `show`, `year`, `place`, `name`, `class`, `points`)
VALUES ('$id','$show','$year','$placement','$horsename','$class','$points')";
mysql_query($query) or die ('Error updating database: ' . mysql_error());
echo "Result successfully added!" ;
}
};
};
};
从上面截取一下,这就是我遇到问题的地方:
$horses = mysql_query("SELECT name FROM horses") or die ('Error accessing database: ' . mysql_error());;
while($row = mysql_fetch_array($horses)) {
$storedname = addslashes(trim($row['name']));
if ($storedname == $horsename) {
echo "The names do match for $horsename";
}
else {
echo "The names do not match for $horsename";
$addhorse="INSERT INTO horses (id, owned_by, name, yob, color, breed, discipline, sire, dam, damsire, bred_by, gender)
VALUES ('','25','$horsename','','','','','','','','','')";
mysql_query($addhorse) or die ('Error updating database: ' . mysql_error());
echo 'Added '. $horsename .' to Archive.';
}
}
如果需要新闻
来源页面中的任何内容,请告诉我。提前致谢!
最佳答案
问题是您正在查询数据库以获取每匹马名称的列表。您将遍历该列表,每次名称不匹配时,您都会插入新名称。您需要做的是查询具体名称。
SELECT * FROM horses WHERE name = '$horsename'
如果返回一行,那么您就知道这匹马已经在数据库中。如果它没有返回任何行,那么您可以安全地插入一次。顺便说一句,您需要正确转义输入以防止 SQL 注入(inject),因此不要逐字使用我的代码。
关于PHP:如果 $_POST 中的数据与表中的数据匹配,则运行 mysql_query,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21694260/
define('DB_NAME','swiftx'); define('DB_USER','root'); define('DB_PASSWORD','123456'); define('DB_HOS
我有 2 个不同的服务器:一台正在运行的 Plesk Panel(PHP 5.2.13 和 MySQL 5.0.45-community-nt),另一个运行 Zend Server 5.5(PHP 5
我有问题,我想在哈希值相同时进行更新。 哈希在表中是唯一的。我找不到正确的方法来做到这一点。 mysql_query("INSERT INTO shop_product_search3_muokatt
这只是我在 SQL 查询中遇到的一个小问题。它返回一个语法错误,搜索了很长一段时间后,我找不到问题所在。你们谁能找到它吗? 查询: INSERT INTO `blogposts` (id,'autho
我想插入一个表,其中用户 id = 某物并将 o 更改为 1,表示用户在线 试过了 mysql_query("INSERT INTO `20s` VALUES('','','','','','',''
mysql_query php 中的函数返回 TRUE关于成功和FALSE失败时。 我的问题是什么才算是成功? 换句话说,当 SELECT 中没有任何内容时返回什么语句,或者如果有 UPDATE没有匹
我有以下mysql查询 $query = "SELECT id FROM users WHERE... 我想要的是这样的 $query = "SELECT id FROM users WHERE id
Name of company: 包含与数据库的连接,此处不再赘述。连接工作正常,这不是问题。 问题是:php 代码不起作用。 php 代码不会将数据插入我的数据库。怎么了? 最佳答案 在 '
这个问题在这里已经有了答案: Syntax error due to using a reserved word as a table or column name in MySQL (1 个回答)
我有这个 SQL: INSERT INTO v3_peers (torrent, peer_id, ip, ipv6, port, smoke_ip, uplo
我在使用 utf8 编码对数据库运行查询时遇到了一些问题。一切正常,直到我尝试使用带有特殊字符的字符串。我无法对数据库进行大量更改,因为我正在向现有的 prestashop 模板添加一些单独的页面。
我要将一行更新到 mysql 数据库中。 senarius 是:从表单中获取值并重定向到另一个文件,并使用更新语句将表单值设置为数据库。问题是 mysql_query 返回值 1 并且不返回任何错误但
$sql = "UPDATE 'load' SET 'graphe'=".$graphe."','intersection'='".$intersection."','ville'='".$ville
我正在使用动态生成的查询字符串来显示某些报告的搜索表单的结果 - 有 5 个搜索字段,$query2 可以不包含任何内容或包含 5 个额外的搜索值。 $query="SELECT * from emp
我正在使用 PHP 创建类似 twitter 的帖子流。如果用户只想查看他创建的帖子,我应该如何编写 mysql 查询? 这是我现在所拥有的:mysql_query("SELECT * FROMtim
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 9 年前。 Improv
这是我的代码 for ($i=0;$i<1000;$i++) { if ($testArray[$i] != 0) { $sql = "insert into `dbT
我已经在 AWS 上使用 Apache、PHP、MYSQL 设置了一个 EC2 Web 服务器,到目前为止,除此之外的所有代码(PHP 和 HTML5)都已在其中运行。我是 PHP 和 mySQL 新
我知道我不应该使用 mysql_query 进行数据库查询,但我需要修改现有代码。我需要做的是将 php 变量作为 sql 查询的字段名称传递。我尝试过这样的方式: $my_field = "fiel
如果我没记错的话,mysql_query()函数使用TCP协议(protocol)发送数据。是否可以重新组装查询 tcp 数据包(例如通过网络发送)并在其他地方重建查询? 我希望下图能更多地解释我的问
我是一名优秀的程序员,十分优秀!