我选择id从mySQL数据库中插入的最新内容.我也想选择name最新的id.
$pdo = $db->query('SELECT *,MAX(id) AS latest FROM data');
while ($row = $pdo->fetch(PDO::FETCH_ASSOC)) {
$id = $row["latest"];
$name = $row["name"];
}
Run Code Online (Sandbox Code Playgroud)
选择id是运作良好.但不是最新name的选择,而是总是name选择我的表的第一行.它不适合id
我想从我的SQL数据库通过php获取一些数据:
GROUP_CONCAT(DISTINCT cat.name SEPARATOR ",") AS cats
Run Code Online (Sandbox Code Playgroud)
这给了我一个清单:
sam, john, joe
Run Code Online (Sandbox Code Playgroud)
我得到一些像这样的其他数据:
GROUP_CONCAT(DISTINCT cat.id SEPARATOR ",") AS cat_ids
Run Code Online (Sandbox Code Playgroud)
在这里我得到了结果
1,2,3
Run Code Online (Sandbox Code Playgroud)
现在这是我的问题.我想结合这些值来得到这样的结果:
<a href="1">sam</a><a href="2">john</a><a href="3">joe</a>
Run Code Online (Sandbox Code Playgroud)
我的方法:
GROUP_CONCAT(CONCAT("<a href=\'",cat.id,"\'>",cat.name,"</a>")) AS cats
Run Code Online (Sandbox Code Playgroud)
但在这里我只得到一个空白的白页.
我正在使用 select2。所以它不是一个实数输入字段我尝试创建一个仅允许带小数的数字的输入字段:
<input type="text" name="numeric" class='select2 allownumericwithdecimal'>
$(".allownumericwithdecimal").on("keypress keyup blur",function (event) {
$(this).val($(this).val().replace(/[^0-9\.]/g,''));
if ((event.which != 46 || $(this).val().indexOf('.') != -1) && (event.which < 48 || event.which > 57)) {
event.preventDefault();
}
});
Run Code Online (Sandbox Code Playgroud)
我现在需要的是,它不仅允许点,还应该允许逗号。这是我的方法:
$(".allownumericwithdecimal").on("keypress keyup blur",function (event) {
$(this).val($(this).val().replace(/[^0-9\.]/g,''));
if ((event.which != 46 || $(this).val().indexOf('.') != -1 || $(this).val().indexOf(',') != -1) && (event.which < 48 || event.which > 57)) {
event.preventDefault();
}
Run Code Online (Sandbox Code Playgroud)
仍然不允许使用逗号.. });
我想让我的输入框始终显示最后一个复选框的值.
这是我的尝试,但它不起作用:
<input type="text" name="status" value="blue" class="status"/>
<div class="checkbox"><input type='checkbox' value='blue' checked/> blue</div>
<div class="checkbox"><input type='checkbox' value='green' checked/> green</div>
<div class="checkbox"><input type='checkbox' value='yellow' checked/> yellow</div>
$("input").change(function(){
$('.status').val($('input:checkbox:last'));
});
Run Code Online (Sandbox Code Playgroud)
https://jsfiddle.net/4csbmtad/
也许你有我的建议!
我正在进行更新,我忘了:如果没有选中任何内容,那么我需要在输入字段中显示"没有选中"这个词
$pdo = $db->prepare('SELECT * FROM animals WHERE id = :id ');
$pdo->execute(array('id' => $id));
while ($row = $pdo->fetch(PDO::FETCH_ASSOC)) {
$name = $row["name"];
echo $name."<br>";
}
Run Code Online (Sandbox Code Playgroud)
我的循环结果现在是 -
cat
cat
cat
cat
dog
bird
Run Code Online (Sandbox Code Playgroud)
我希望将结果分组,如果它们相似,那么我得到的结果是这样的 -
cat
dog
bird
Run Code Online (Sandbox Code Playgroud) 这是我的功能:
public function findByIdJoinedToCategory($id)
{
$query = $this->getEntityManager()
->createQuery(
'SELECT a, b
FROM App\Entity\Products a
JOIN a.productgroup b
WHERE a.id = 2');
}
Run Code Online (Sandbox Code Playgroud)
我只是尝试2用变量替换$id.但我没有成功:
public function findByIdJoinedToCategory($id)
{
$query = $this->getEntityManager()
->createQuery(
'SELECT a, b
FROM App\Entity\Products a
JOIN a.productgroup b
WHERE a.id = $id');
}
Run Code Online (Sandbox Code Playgroud)
我收到错误消息:
[语法错误]第0行,第125栏:错误:预期文字,得到'$'
我试图找到一种简短的方法来编写此条件:
if($template == "documents"){
$slug = $template;
$parent = "products";
} else {
$slug = $slug;
$parent = $parent;
}
Run Code Online (Sandbox Code Playgroud)
这是我的方法:
$slug = ($template == "documents") ? $template : $slug;
$parent = ($template == "documents") ? "products" : $parent;
Run Code Online (Sandbox Code Playgroud)
我觉得这段代码可以减少更多。但是我不知道怎么做。
我在 Symfony 中创建了我自己的第一个服务:
// src/Service/PagesGenerator.php
Run Code Online (Sandbox Code Playgroud)
namespace App\Service;
class PagesGenerator
{
public function getPages()
{
$page = $this->getDoctrine()->getRepository(Pages::class)->findOneBy(['slug'=>$slug]);
$messages = [
'You did it! You updated the system! Amazing!',
'That was one of the coolest updates I\'ve seen all day!',
'Great work! Keep going!',
];
$index = array_rand($messages);
return $messages[$index];
}
}
Run Code Online (Sandbox Code Playgroud)
但我收到错误消息:
试图调用类“App\Service\PagesGenerator”的名为“getDoctrine”的未定义方法。
然后我尝试添加到我的 services.yaml 中:
PagesGenerator:
class: %PagesGenerator.class%
arguments:
- "@doctrine.orm.entity_manager"
Run Code Online (Sandbox Code Playgroud)
但后来我收到错误消息:
文件“/Users/work/project/config/services.yaml”在/Users/work/project/config/services.yaml(加载在资源“/Users/work/project/config/服务.yaml”)。
我在Symfony中使用查询生成器时遇到困难。像这样,我的选择框列出了存储在我的实体“选项”中的所有数据:
$options['class'] = Options::class;
$options['choice_label'] = function ($value) {
return $value->getName();
};
$formBuilder->add($name, $class, $options);
Run Code Online (Sandbox Code Playgroud)
但是我想过滤数据,以便选项仅显示连接到我的实体“字段”的特定ID的数据。
这是我使用查询生成器的方法:
$options['class'] = Options::class;
$options['choice_label'] = 'id';
$options['query_builder'] = function (EntityRepository $id) {
return $this->createQueryBuilder('f')
->leftJoin('f.fields', 'fi')
->where(":id MEMBER OF f.fields")
->setParameter(':id', $id)
->getQuery()
->execute();
};
Run Code Online (Sandbox Code Playgroud)
我收到的错误消息是:
传递给App \ Controller \ PagesController :: App \ Controller {closure}()的参数1必须是App \ Controller \ EntityRepository的实例,App \ Repository \ OptionsRepository的实例,在/ Users / work / project / vendor /中调用第32行上的symfony / doctrine-bridge / Form / Type / EntityType.php
{% set totalPrice = 0 %}
{% for category, product in table %}
{% for key, value in product|last %}
{{ value }}
{% endfor %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
输出是:
60
2
Run Code Online (Sandbox Code Playgroud)
我现在尝试将这些值一起计算:
{% set totalPrice = 0 %}
{% for category, product in table %}
{% for key, value in product|last %}
{{ value }}
{% set totalPrice = value %}
{% endfor %}
{% endfor %}
Total: {{ totalPrice }}
Run Code Online (Sandbox Code Playgroud)
我期望的结果是:
60
2
Total: 62
Run Code Online (Sandbox Code Playgroud)
但我得到的结果是:
60
2 …Run Code Online (Sandbox Code Playgroud)