佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1011|回复: 62

php LIKE 和 EQUAL 不能共用?

[复制链接]
发表于 18-7-2019 10:30 AM | 显示全部楼层 |阅读模式
本帖最后由 悍马 于 2-8-2019 06:30 PM 编辑

各位好,我没有程序基础, 目前用MS管理数据好多年了(也是自己建立的), 计划建立线上简单数据库供自己团队用。我已经把MS数据上载到Mysql,我的数据有包括图片, 但是不知用什么方式或Form呈现数据出来。我看到网上有推荐Form Tools, 我试用了可是无法importMS数据(csv), 可能我不会import 。或许我可以在phpmyadmin整合旧的MS数据(csv), 但是各位有什么更好建议吗或其他相关软件介绍吗?
回复

使用道具 举报


ADVERTISEMENT

发表于 18-7-2019 02:02 PM | 显示全部楼层
可以把图片转换成base64然后丢到数据库(强力不建议,会使得数据库肥大)。

长远来看,应该写个后台来查看和管理。
回复

使用道具 举报

 楼主| 发表于 19-7-2019 11:18 AM | 显示全部楼层
已經成功整合MS数据到Form Tools, 但是功能真的有限, 还是要改制。你说的对,长远来看,应该写个后台来查看和管理。但是我不是programmer,想找个WYSIWYG来弄。
回复

使用道具 举报

 楼主| 发表于 19-7-2019 11:20 AM | 显示全部楼层
有什么WYSIWYG可以来制Mysql程序 ?
回复

使用道具 举报

 楼主| 发表于 19-7-2019 11:57 AM | 显示全部楼层
WYSIWYG还是要改制,决定自己写php程序。
回复

使用道具 举报

发表于 24-7-2019 05:59 PM | 显示全部楼层
用PHP来写后台不会很难的,用框架如:Laravel
回复

使用道具 举报

Follow Us
发表于 24-7-2019 06:04 PM | 显示全部楼层
Laravel 不错的后台库:

Laravel-admin
网址:http://laravel-admin.org/

我已经用这个写后台一年了
回复

使用道具 举报

 楼主| 发表于 25-7-2019 09:48 AM | 显示全部楼层
谢谢你哦
回复

使用道具 举报


ADVERTISEMENT

发表于 26-7-2019 01:13 PM | 显示全部楼层

不客气。
回复

使用道具 举报

 楼主| 发表于 2-8-2019 06:44 PM | 显示全部楼层
我需要寻找和显示符合几个条件的资料,以下是我的代码

$query = "SELECT * FROM `tbl_name` WHERE contact_person = '$contact_person' OR status = '$status' OR area = '$area' OR address LIKE '%".$address."%'";

可是只能正常显示 LIKE 出来的质料, =无法操作

如果我把 LIKE 换去= 或者把 address LIKE '%".$address."% 除掉, 那么前面的 =就能够操作

1) 是不是LIKE 和 =不能共存 ?


2) 还有,请问以下代码有什么分别?

address LIKE '%$address%'    vs      address LIKE '%".$address."%'

回复

使用道具 举报

 楼主| 发表于 13-8-2019 09:39 PM | 显示全部楼层
slaythia 发表于 24-7-2019 06:04 PM
Laravel 不错的后台库:

Laravel-admin
网址:http://laravel-admin.org/

我已经用这个写后台一年了

请问这个Lavarel是不是可以简化写程序?我花了很多时间去学php,可是还无法上手,不能再花时间搞下去了,要用到了。
回复

使用道具 举报

 楼主| 发表于 14-8-2019 12:03 AM | 显示全部楼层
Codeigniter 比 Lavarel容易处理吗
回复

使用道具 举报

发表于 14-8-2019 10:51 AM | 显示全部楼层
本帖最后由 slaythia 于 14-8-2019 02:44 PM 编辑

Laravel 和 CI 都是属于php framework,各有各的好处。
这两款Framework的架构都是MVC(Model, View, Controller)。

你上面的SQL语句是要实现怎样的效果?
在tbl_name表查找contact_person, status, area, 包含address吗?
$query = "SELECT * FROM `tbl_name` WHERE address LIKE '%$address%' AND contact_person='$contact_person' OR status='$status' OR area='$area' ";


%是MySQL的通配符,
%$address : 以$address为结尾
$address% : 以$address为开头
%$address%: 包含$address

你说的:address LIKE '%$address%'    vs      address LIKE '%".$address."%'
这个是PHP拼接字段(variable)的写法。

$address = "11 JALAN IPOH 1";
$query = "SELECT * FROM `table_name` WHERE address LIKE '%".$address."%' ";$query2 = "SELECT * FROM `table_name` WHERE address LIKE '%$address%' ";

echo $query;//结果:"SELECT * FROM `table_name` WHERE address LIKE '%11 JALAN IPOH 1%' "
echo $query2;//结果:"SELECT * FROM `table_name` WHERE address LIKE '%11 JALAN IPOH 1%' "
$query和$query2 的结果都是一样的。







回复

使用道具 举报

发表于 14-8-2019 03:09 PM | 显示全部楼层
本帖最后由 slaythia 于 14-8-2019 03:18 PM 编辑

<?php

//表单POST数据
$input = $_POST;

//表名
$table_name = 'tbl_name';

//表字段
$column = '*';

//查询语句
$query = "SELECT $column FROM `$table_name` WHERE address LIKE '%{$input['address']}%'
";

// 如果$input['contact_person']非空,$query串接查询语句。
if (!empty($input['contact_person']))
{
    $query .= " AND contact_person='{$input['contact_person']}'";
}

// 如果$input['status']非空,$query串接查询语句。
if (!empty($input['status']))
{
    $query .= " AND status='{$input['status']}'";
}

// 如果$input['area']非空,$query串接查询语句。
if (!empty($input['area']))
{
    $query .= " AND area='{$input['area']}'";
}


假设提交的数据为:
$_POST['address'] = "JALAN IPOH";
$_POST['contact_person'] = "Najib";
$_POST['status'] = "";
$_POST['area'] = "KL";


那么查询语句最终将是:
SELECT * FROM `tbl_name` WHERE address LIKE '%JALAN IPOH%' AND contact_person='Najib' AND area='KL'

由于status为空所以就不会添加到查询语句中,同理其他的字段也是(address也是,因为加了通配符就算是为空也是会查得出数据)。
回复

使用道具 举报

 楼主| 发表于 15-8-2019 07:50 AM | 显示全部楼层
你好,其实我只需要简单的search而已,比如我有三个criteria供user query。如果三个criteria都有input,return符合这三个条件的result。如果只有2个criteria有input,那就return符合2个条件的result,如果只有1个就return 符合1个。这么简单可是我就办不到

以下是我的码
if (isset($_POST['submit'])){

$status = $_POST['status'];
$area = $_POST['area'];
$address = $_POST['address'];

if($status != "" OR $area != "" OR $address != ""{
$query = "SELECT * FROM `tbl_name` WHERE address LIKE '%".$address."%'
AND status LIKE '%".$status."%' AND area = '$area' ";
}
回复

使用道具 举报

 楼主| 发表于 15-8-2019 07:51 AM | 显示全部楼层

我会详细研究一下。
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 15-8-2019 07:53 AM | 显示全部楼层
其实我可以给programmer弄,可是我希望可以掌握自己的programme,方便以后要customise,再加上有些兴趣,因此才自己糟蹋自己
回复

使用道具 举报

 楼主| 发表于 15-8-2019 09:34 AM | 显示全部楼层

if (isset($_POST['submit'])){
                       
                                $status = $_POST['status'];
                                $area = $_POST['area'];
                                $address = $_POST['address'];

那么以上这段要写在你的码哪个位置?

回复

使用道具 举报

 楼主| 发表于 15-8-2019 09:37 AM | 显示全部楼层
MAMP非常有问题,每次重开启都无法和联结,必须删除mysql-bin.index才可以用
回复

使用道具 举报

 楼主| 发表于 15-8-2019 09:51 AM | 显示全部楼层
本帖最后由 悍马 于 15-8-2019 02:22 PM 编辑

     我整理后这样尝试,结果:

1) 如果单单query status, return "Records Not Found"      
2) 如果单单query area,正常操作
3) 如果单单query address, return "Records Not Found"      
4) 如果单单query status 和 area, 正常操作
5) 如果单单query status 和 address, return "Records Not Found"  
6) 如果单单query area 和 address, 正常操作
7) 如果三个一起query, 正常操作

问题处在status 和 address

以下是我的代码

     if (isset($_POST['submit'])){
                        
     $status = $_POST['status'];
     $area = $_POST['area'];
     $address = $_POST['address'];
                                                               
     $input = $_POST;

     //表名
     $table_name = 'tbl_name';

     //表字段
    $column = '*';

    //查询语句
    $query = "SELECT $column FROM `$table_name` WHERE address LIKE '%{$input['address']}%' ";

   // 如果$input['contact_person']非空,$query串接查询语句。
   if (!empty($input['contact_person'])){$query .= " AND contact_person='{$input['contact_person']}'";
           }

   // 如果$input['status']非空,$query串接查询语句。
   if (!empty($input['status']))
   {$query .= " AND status='{$input['status']}'";}

  // 如果$input['area']非空,$query串接查询语句。
  if (!empty($input['area']))
          {
          $query .= " AND area='{$input['area']}'";
          }
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 28-3-2024 04:24 PM , Processed in 0.080908 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表