Php 全局$wpdb显示垃圾数据以及我的select查询结果
我在MySQL数据库中有一个自定义表,我正在尝试使用Php 全局$wpdb显示垃圾数据以及我的select查询结果,php,mysql,wordpress,serialization,Php,Mysql,Wordpress,Serialization,我在MySQL数据库中有一个自定义表,我正在尝试使用global$wpdb查询该表。我使用以下两个来源提供的信息定义了我的查询: 这是数据在phpMyAdmin中的方式: 当查询从我的自定义表中选择数据时,它似乎工作得很好,但是输出除了表中可用的信息之外,似乎还包含垃圾/不必要的信息 我希望它以表格的形式显示/类似于它在phpMyAdmin中的显示方式,我可以将SrNo、component等与表格中的其他列相关联: add_shortcode('wpse_233031_shortcode'
global$wpdb
查询该表。我使用以下两个来源提供的信息定义了我的查询:
这是数据在phpMyAdmin中的方式:
当查询从我的自定义表中选择数据时,它似乎工作得很好,但是输出除了表中可用的信息之外,似乎还包含垃圾/不必要的信息
我希望它以表格的形式显示/类似于它在phpMyAdmin中的显示方式,我可以将SrNo、component等与表格中的其他列相关联:
add_shortcode('wpse_233031_shortcode', function(){
global $wpdb;
$myrows = $wpdb->get_results( "SELECT `SrNo`, `Compound` FROM PNaphtha");
//$results = $wpdb->get_results( "SELECT `SrNo`, `Compound` FROM PNaphtha" );
ob_start();
echo var_dump($myrows );
//return ob_get_clean();
});
我得到以下结果
虽然我查询的所有信息都可以在这里找到,但也有很多不必要的信息
我尝试了以下更改,但似乎没有一个有效
$myrows = $wpdb->get_row( "SELECT `SrNo`, `Compound` FROM PNaphtha"); // get_row
output_type changed to ARRAY_A, ARRAY_N, OBJECT_K
echo var_dump changed to echo array
如果您能建议如何将结果格式化为表格或数组,我将不胜感激。此外,我还将上述代码放在主题的
functions.php
文件中。有更好的方法吗?可能是因为您使用的是var\u dump
var\u dump
函数显示有关变量/表达式的结构化信息,包括其类型和值
我建议使用print\r
print_r()以人类可读的方式显示有关变量的信息。数组值将以显示键和元素的格式显示
如果你改变了,你应该能够看到改变
var_dump($myrows )
到
以下是我如何做到你想要的(没有重复结果):
$sql = "SELECT `Srno`,`compound` FROM `pnaphtha`";
$result = $conn->query($sql);
echo "<table>";
while($row = $result->fetch_assoc()) {
echo "<tr><td>".$row['Srno']."</td><td>".$row['compound']."</td></tr>";
}
echo "</table>";
$sql=“从'pnaphtha`'中选择'Srno`,'component`”;
$result=$conn->query($sql);
回声“;
而($row=$result->fetch_assoc()){
回显“$row['Srno']”。$row['component']”;
}
回声“;
然而,由于您使用的是WordPress,我怀疑它可能与
global $wpdb;
$sql = "SELECT `SrNo`, `Compound` FROM PNaphtha";
//you may need to add ARRAY_A
$myrows = $wpdb->get_results($sql);
echo "<table>";
while($myrows = $result->fetch_assoc()) {
echo "<tr><td>".$myrows['SrNo']."</td><td>".$myrows['Compound']."</td></tr>";
}
echo "</table>";
global$wpdb;
$sql=“从pnaphta中选择'SrNo','component'”;
//您可能需要添加一个数组
$myrows=$wpdb->get_结果($sql);
回声“;
而($myrows=$result->fetch_assoc()){
回显“$myrows['SrNo']”。$myrows['component']”;
}
回声“;
我无法实际测试wordpress版本,因为我懒得设置wordpress安装哈哈这可能是因为您使用的是var_dump
var\u dump
函数显示有关变量/表达式的结构化信息,包括其类型和值
我建议使用print\r
print_r()以人类可读的方式显示有关变量的信息。数组值将以显示键和元素的格式显示
如果你改变了,你应该能够看到改变
var_dump($myrows )
到
以下是我如何做到你想要的(没有重复结果):
$sql = "SELECT `Srno`,`compound` FROM `pnaphtha`";
$result = $conn->query($sql);
echo "<table>";
while($row = $result->fetch_assoc()) {
echo "<tr><td>".$row['Srno']."</td><td>".$row['compound']."</td></tr>";
}
echo "</table>";
$sql=“从'pnaphtha`'中选择'Srno`,'component`”;
$result=$conn->query($sql);
回声“;
而($row=$result->fetch_assoc()){
回显“$row['Srno']”。$row['component']”;
}
回声“;
然而,由于您使用的是WordPress,我怀疑它可能与
global $wpdb;
$sql = "SELECT `SrNo`, `Compound` FROM PNaphtha";
//you may need to add ARRAY_A
$myrows = $wpdb->get_results($sql);
echo "<table>";
while($myrows = $result->fetch_assoc()) {
echo "<tr><td>".$myrows['SrNo']."</td><td>".$myrows['Compound']."</td></tr>";
}
echo "</table>";
global$wpdb;
$sql=“从pnaphta中选择'SrNo','component'”;
//您可能需要添加一个数组
$myrows=$wpdb->get_结果($sql);
回声“;
而($myrows=$result->fetch_assoc()){
回显“$myrows['SrNo']”。$myrows['component']”;
}
回声“;
我无法实际测试wordpress版本,因为我不想费心设置wordpress安装哈哈,所以,您将对象作为输出,这就是为什么您会看到其中的信息。进行以下更改。将“ARRAY_A”(关联数组)添加到函数调用的末尾
$wpdb->get_results( "SELECT `SrNo`, `Compound` FROM PNaphtha", ARRAY_A);
这将防止查询作为对象返回,并且
var\u dump
将以您期望的方式显示。因此,您将对象作为输出,这就是您在其中看到信息的原因。进行以下更改。将“ARRAY_A”(关联数组)添加到函数调用的末尾
$wpdb->get_results( "SELECT `SrNo`, `Compound` FROM PNaphtha", ARRAY_A);
这将使您的查询不会作为对象返回,并且您的
var\u dump
将以您期望的方式显示。您的某个字段中是否有序列化数据?这是什么垃圾?这就是PHP显示嵌套数据和对象的方式。感谢您的回复。不,我没有序列化数据。我添加了一个显示在phpMyAdmin中的数据截图,该代码属于您的functions.php(除非您制作了插件),所以在这里很好。您是否尝试了echo''。打印($myrows,TRUE)。”代码>?谢谢你的帮助。你的建议有点不同,它显示结果时有点“整洁”,就像在新行中一样,给人一种子弹一样的感觉,但是“垃圾”仍然在那里。你的某个字段中有序列化数据吗?这是什么垃圾?这就是PHP显示嵌套数据和对象的方式。感谢您的回复。不,我没有序列化数据。我添加了一个显示在phpMyAdmin中的数据截图,该代码属于您的functions.php(除非您制作了插件),所以在这里很好。您是否尝试了echo''。打印($myrows,TRUE)。”代码>?谢谢你的帮助。你的建议有点不同,它显示结果有点“整齐”,就像在新行中一样,给人一种子弹般的感觉,但“垃圾”仍然在那里。谢谢你的建议。我尝试更改为print_r($myrows),但现在它只显示Array()1。很抱歉,Elliot,在测试您的建议时,我的部分代码被注释了。打印似乎有帮助,但我仍然得到数组([0]=>2[1]=>枞酸)[1]=>数组([0]=>3[1]=>苊)[2]=>数组([0]=>4[1]=>acetal)[3]=>数组([0]=>5[1]=>acetalde)[4]=>