将mysql查询结果附加到变量

Posted

技术标签:

【中文标题】将mysql查询结果附加到变量【英文标题】:Append mysql query results to a variable 【发布时间】:2017-12-04 15:53:55 【问题描述】:

我正在执行一个查询,结果作为变量 $result 被获取。

$stmt = $conn->prepare($sql);

$stmt->execute();

$result = $stmt->fetchAll();

数组中有 15 个元素。 0-15。

我想为数组中的每个项目回显一个单选按钮。我想将每个项目分配给单选按钮上的“值”字段(以下是我目前正在做的事情。)

    foreach( $result as $row ) 

         echo '<h4><input type="radio" name="inputWalls" id="radioclick" value="'.$row['batch'].'" >'.$row['batch']. '</h4>'; 

     

现在发生的情况是,数组中的所有项目以及它们旁边的所有单选按钮都会打印出来,这正是我想要的。但是,只有第一个单选按钮存储数组中第一个元素的值。

下面是数组的一个var_dump()。

array (size=15)
  0 => 
    array (size=2)
      'batch' => string 'B0002128.RGB' (length=12)
      0 => string 'B0002128.RGB' (length=12)
  1 => 
    array (size=2)
      'batch' => string 'B0002129.RIE' (length=12)
      0 => string 'B0002129.RIE' (length=12)
  2 => 
    array (size=2)
      'batch' => string 'B0002130.RGB' (length=12)
      0 => string 'B0002130.RGB' (length=12)
  3 => 
    array (size=2)
      'batch' => string 'B0002131.RIE' (length=12)
      0 => string 'B0002131.RIE' (length=12)
  4 => 
    array (size=2)
      'batch' => string 'B0002132.RGB' (length=12)
      0 => string 'B0002132.RGB' (length=12)
  5 => 
    array (size=2)
      'batch' => string 'B0002133.RIE' (length=12)
      0 => string 'B0002133.RIE' (length=12)
  6 => 
    array (size=2)
      'batch' => string 'B0002134.RIE' (length=12)
      0 => string 'B0002134.RIE' (length=12)
  7 => 
    array (size=2)
      'batch' => string 'B0002135.RGB' (length=12)
      0 => string 'B0002135.RGB' (length=12)
  8 => 
    array (size=2)
      'batch' => string 'B0002136.RGB' (length=12)
      0 => string 'B0002136.RGB' (length=12)
  9 => 
    array (size=2)
      'batch' => string 'B0002137.RIE' (length=12)
      0 => string 'B0002137.RIE' (length=12)
  10 => 
    array (size=2)
      'batch' => string 'B0002139.RGB' (length=12)
      0 => string 'B0002139.RGB' (length=12)
  11 => 
    array (size=2)
      'batch' => string 'B0002140.RGB' (length=12)
      0 => string 'B0002140.RGB' (length=12)
  12 => 
    array (size=2)
      'batch' => string 'B0002141.RIE' (length=12)
      0 => string 'B0002141.RIE' (length=12)
  13 => 
    array (size=2)
      'batch' => string 'B0002142.RIE' (length=12)
      0 => string 'B0002142.RIE' (length=12)
  14 => 
    array (size=2)
      'batch' => string 'B0002143.RGB' (length=12)
      0 => string 'B0002143.RGB' (length=12)

这是 jquery 代码,它将信息显示为每个单选按钮所包含内容的警报。

$(function()
    $("#radioclick").click(function()      
        alert($("input[name=inputWalls]:checked").val());
    );
); 

当我选择第一个单选按钮时,它显示值 B0002128.RGB,它是数组中的第一个元素。每个其他单选按钮都没有任何价值,因为没有打印任何内容。很长的帖子,但我将不胜感激。

【问题讨论】:

如果batch 值被打印在单选按钮旁边,那么在 value 属性中也是如此,因为您的 php 看起来没问题。我认为您的问题是如何验证这一点。展示你如何做到这一点:我选择第一个单选按钮,它显示值» 见上面的 jquery 在帖子的末尾。当我单击单选按钮时,它会将值打印为警报弹出窗口。只有第一个单选按钮会打印出警报。也许jquery代码不正确? 【参考方案1】:

不能多次使用同一个id

问题是在循环中使用id="radioclick"

所以$("#radioclick").click(function() 将在它找到的第一个匹配的id 上触发...但不是全部。

改用class

【讨论】:

哇。就如此容易!立即工作。干杯:) 您也可以将alert($("input[name=inputWalls]:checked").val()); 缩短为alert($(this).val()); ;)【参考方案2】:

html 元素的 ID 必须是唯一的。您为每个 &lt;input&gt; 元素分配了相同的 id,因此当您绑定 click 函数时,它只会绑定到第一个元素。

在 HTML 中使用 class="radioclick" 代替 id="radioclick",在 JS 中使用 $(".radioclick").click 代替 $("#radioclick").click

【讨论】:

以上是关于将mysql查询结果附加到变量的主要内容,如果未能解决你的问题,请参考以下文章

保存在变量中并乘以双值查询结果 C#/MySql

Mysql将存储过程执行后的值赋值给变量

使用python将mySql查询结果转换为json

如何将MYSQL查询结果赋值给一个变量

如何在执行php脚本后将mysql查询结果返回到html页面?

如何将简单的 SQL 查询存储到用户定义的变量中并在 MySQL 中执行?