小编Joh*_*ith的帖子

Php,"线程安全"的SQL操作

让我们谈谈评级系统:用户可以评价其他用户.有一个user表:USER_ID,USER_NAME和rates:RATER_ID,RATED_ID,RATE(串),用户可以一次评定一个人,但可以随时改变主意,我知道它有点古怪,它永远不会发生,但让我们看看如何它去:

check if A ever rated B
if no: INSERT INTO
if yes: UPDATE
Run Code Online (Sandbox Code Playgroud)

所以,在伪代码中:

$rec = SELECT COUNT(*) FROM users WHERE RATER_ID = a AND RATED_ID = b
if ($rec == 0)
{
    INSERT INTO rates (a, b, rateText);
}
else
{
    UPDATE rates SET RATE = rateText WHERE RATER_ID = a AND RATER_ID = b
}
Run Code Online (Sandbox Code Playgroud)

但这是一个问题.让我们假设两个价格同时到达(我知道它很奇怪).

- rate request A: count(*) is 0, so lets insert
- rate request B: count(*) is 0, …
Run Code Online (Sandbox Code Playgroud)

php mysql sql thread-safety

3
推荐指数
1
解决办法
141
查看次数

访问从对象转换的数组中的私有值

我有这个小代码:

class A
{
    private $val  = 5;
}

$a = new A();
$obj = (array)$a;
echo '<pre>'; var_dump ($obj); echo '</pre>';
echo $obj['Aval']; // error!
Run Code Online (Sandbox Code Playgroud)

转储$ obj后,结果是:

array(1) {
  ["Aval"]=>
  int(5)
}
Run Code Online (Sandbox Code Playgroud)

但是用$ obj ['Aval']访问这个值; 触发错误 - 这是不可能的!

php

3
推荐指数
1
解决办法
65
查看次数

如何检测数据库结构是否发生了变化?(不满足!)

在我的php脚本中,我想检查数据库表的结构是否已更改.该DESCRIBE TABLE不会提供足够的信息,因为它忽略了外键.在SHOW CREATE TABLE是太多了,因为自动增量值也出现在这里.

php mysql

2
推荐指数
1
解决办法
94
查看次数

由于边界,浮动的div不能说彼此相邻

<div id="container">
    <div id="col1">menu1</div>
    <div id="col2">menu2</div>
    <div style="clear: both;"></div>
<div>

#container
{
    width: 400px;
    background-color: green;
}

#col1
{
    float: left;
    background-color: red;
    width: 48%;
    border: 1px dotted blue;
}

#col2
{
    float: left;
    background-color: yellow;
    width: 52%;
    border: 1px dotted blue;
}
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/4ZQpv/1/

这可能很简单,但我无法弄明白.当我没有时border,它可以正常工作.但是,只要我添加一个border,两个div就不能彼此相邻.但我不能说"52% - 1px - 1px"之类的东西可以消除边界.

html css

2
推荐指数
1
解决办法
48
查看次数

Php,如何确定字符串是否是时间?

我想检测字符串是否是时间(00:18:31).我知道,strtotime()但它也检测到"好now",等等.我需要一个真正的解决方案

php

2
推荐指数
1
解决办法
64
查看次数

Php,如何交换两个关联数组KEY?

我有这个输入:

array(
    'a' => 1,
    'b' => 2,
    'c' => 3,
    'd' => 4
);
Run Code Online (Sandbox Code Playgroud)

我想得到这个:

array(
    'a' => 1,    
    'c' => 3,
    'b' => 2,
    'd' => 4
);
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,键改变了,而不是它们的值。我知道关联数组中没有偶数顺序 - 就我而言,这很重要。那么,有什么解决办法吗?

php arrays

2
推荐指数
1
解决办法
2934
查看次数

MySQL,删除重复的行(必须是2列唯一)

我有这个:

1899, 184, 531 *
1900, 184, 531 *
1901, 113, 531
1902, 184, 436
Run Code Online (Sandbox Code Playgroud)

我想得到

1899, 184, 531
1901, 113, 531
1902, 184, 436
Run Code Online (Sandbox Code Playgroud)

没有临时表等如何?

php mysql

2
推荐指数
1
解决办法
60
查看次数

MySQL,REPLACE INTO没有删除?

我有这个表结构:

ID RATE1 RATE2 RATE3
Run Code Online (Sandbox Code Playgroud)

它是空的.让我们给出一个新的速度:

REPLACE INTO rates (ID, RATE2) VALUES (99, 4);
Run Code Online (Sandbox Code Playgroud)

表格将是:

99, 0, 4, 0
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好.另一个评级发生:

REPLACE INTO rates (ID, RATE3) VALUES (99, 2);
Run Code Online (Sandbox Code Playgroud)

这就是错误发生的地方.我明白了

99, 0, 0, 2
Run Code Online (Sandbox Code Playgroud)

代替:

99, 0, 4, 2
Run Code Online (Sandbox Code Playgroud)

我也想保留RATE2.这有解决方法吗?

mysql

2
推荐指数
1
解决办法
1509
查看次数

1
推荐指数
1
解决办法
4684
查看次数

jQuery重叠div不会使div的隐藏onclick无效

jQuery('#warning').click(function() {
  console.log('clicked at warning');
});

jQuery('#content').click(function() {
  console.log('clicked at content');
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="warning">
  <div id="content">This is the content</div>
  dsfdfsdsfdsfdsfdsfdsfdsf
</div>
Run Code Online (Sandbox Code Playgroud)

小提琴:https://jsfiddle.net/73jykhj0/

不幸点击content也会触发点击warning.如何消除点击warning

html javascript css jquery

1
推荐指数
1
解决办法
39
查看次数

标签 统计

php ×7

mysql ×4

css ×2

html ×2

arrays ×1

javascript ×1

jquery ×1

sql ×1

thread-safety ×1