【问题标题】:Mysql query works in Phpmyadmin but not works in PHPMysql 查询在 Phpmyadmin 中有效,但在 PHP 中无效
【发布时间】:2015-02-09 13:21:02
【问题描述】:

我有两张桌子 第一个是cont_details

     -------------- --------------
    | cont_details_id  | cont_no |
     -----------------------------
    |  1                |   A001 |
    |  2                |   A002 |
    |  3                |   A003 |
    ------------------------------

第二个是cont_sold_tmp

     --------------
    | id | cont_no |
     --------------
    |  1 |   1    |
    |  2 |   3    |
    ----------------

现在我需要从 cont_details 表中选择不在 temp_cont 中的表

所以我使用了这个查询

select * from cont_details left join cont_sold_tmp on cont_details.cont_details_id = cont_sold_tmp.cont_no where cont_sold_tmp.cont_no is null

当我在 PhpmyAdmin 中签入时,此查询可以正常工作,但是当我在 HTMl 中使用它时,无法正常工作

<select name="cont_no"  id="cont_no" data-rel="chosen">
    <option value="">Select</option>
    <?php
       $qry = mysql_query("select * from cont_details left join cont_sold_tmp on cont_details.cont_details_id = cont_sold_tmp.cont_no where cont_sold_tmp.cont_no is null");
           while($res = mysql_fetch_array($qry))
              {
         ?>
         <option value="<?php echo $res["cont_details_id"];?>">
           <?php echo $res["cont_no"];?>
      </option>
     <?php } ?>
    </select>

数据库连接工作正常,而不是加入查询,我只是用简单的查询“select * from cont_details”检查它显示了所有记录。但是当我使用这个连接查询时。我在下拉列表中没有任何记录

【问题讨论】:

  • 你遇到了什么错误..?
  • 也许 phpmyadmin 和你的 php 脚本使用了不同权限的不同用户?
  • 不工作是什么意思?
  • 以什么方式“不工作”?您能向我们提供错误消息吗?
  • 可能存在数据库连接错误

标签: php mysql


【解决方案1】:

使用

while ($row = mysql_fetch_array($qry, MYSQL_ASSOC)) {

【讨论】:

  • 用户 print_r($res) in `while($res = mysql_fetch_array($qry)) {print_r($res)` AND 在 Inspect element 中,检查出现的内容。
  • 数组 ( [0] => 1000 [cont_price] => 1000 [1] => 3 [cont_details_id] => 3 [2] => A003 [cont_no] => [3] => 45 [cont_size] => 45 [4] => HC [cont_type] => HC [5] => 30480 Kgs [cont_tonnage] => 30480 Kgs [6] => 2013 [yom] => 2013 [7] =>货物价值 [cont_condition] => 货物价值 [8] => 1 [cont_buying_id] => 1 [9] => 70 [exc_rate] => 70 [10] => [cont_sold_tmp_id] => [11] => [12 ] => [price] => [13] => [cont_ sell_id] => ) yaa 它的价值但是当我在下拉列表中使用查询时什么都不返回
  • 参见` [cont_no] => `你得到 cont_no 的空白值。得到?
  • cont_details.cont_details_id 作为 cont_details_id,cont_details.cont_no 作为 cont_no
  • @Vijay,很好,你可以接受答案并投票,因为我帮助你调试。
【解决方案2】:

终于发现我做错了什么-_-

select cont_details.cont_details_id as cont_details_id, 
cont_details.cont_no as cont_no
from cont_details left join cont_sold_tmp
on cont_details.cont_details_id = cont_sold_tmp.cont_no
where cont_sold_tmp.cont_no is NULL

合并表格后,我没有正确选择带有表格名称(。)的列

所以我使用时的结果 &lt;option value="&lt;?php echo $res["cont_details_id"];?&gt;"&gt; ,它不会在那里退出,所以它的显示是空的

谢谢你的回复:-)

【讨论】:

    【解决方案3】:

    尝试这样,使用“IS NULL”而不是“is null”:

    $qry = mysql_query("select * from cont_details left join cont_sold_tmp on cont_details.cont_details_id = cont_sold_tmp.cont_no where cont_sold_tmp.cont_no IS NULL");
    

    【讨论】:

    • 抱歉跑题了,但我应该在印度加入哪所大学进行网络开发和编程
    • @jQuery.PHP.Magento.com 但是在印度是否有与 PHP 编程相关的范围
    • @Hudixt,请访问我的个人资料并给我发邮件,我可以在那里回答您的问题,因为本部分从 Question.Thanks 转移过来。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-05
    • 1970-01-01
    • 2014-10-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多