query('SELECT infotags,id FROM hd_ecms_shop_data_1 WHERE hd_ecms_shop_data_1.infotags LIKE "%我爱你%"')
想把上面这句query出来的id 组成一个字符串,不知怎么弄呢
比如 输出了五个id值,分别是 1,2,3,4,5
现在我想把这五个值通过变换,搞成这样的字符串
(1,2,3,4,5)
不知怎么弄呢
我想用下面的方法试图做一下,但是不行呢
$result=query('SELECT infotags,id FROM hd_ecms_shop_data_1 WHERE hd_ecms_shop_data_1.infotags LIKE "%我爱你%"');
$foodsPic=array();
while($row=mysql_fetch_array($result)){
$foodsPic[]=$row;
}
print_r($foodsPic);
上面这个方法不仅把id都弄进去了,把别的没用的也一鼓脑弄进去了,我只想要id的集合,并且通过处理,把这几个id搞成字符串的形式,即(1,2,3,4,5)
不知如何改进呢,
回复讨论(解决方案)
$SQ="SELECT infotags,id FROM hd_ecms_shop_data_1 WHERE hd_ecms_shop_data_1.infotags LIKE '%我爱你%'";$result=mysqli_query($link,$SQ);$idStr='';if(mysqli_num_rows($result)){ $data=mysqli_fetch_all($result,MYSQL_ASSOC); foreach($data as $value){ if(isset($value['id'])) $idStr.=$value['id']; } $idStr=rtrim($idStr,','); echo $idStr;}
$SQ="SELECT infotags,id FROM hd_ecms_shop_data_1 WHERE hd_ecms_shop_data_1.infotags LIKE '%我爱你%'";$result=mysqli_query($link,$SQ);$idStr='';if(mysqli_num_rows($result)){ $data=mysqli_fetch_all($result,MYSQL_ASSOC); foreach($data as $value){ if(isset($value['id'])) $idStr.=$value['id']; } $idStr=rtrim($idStr,','); echo $idStr;}
写了一下还是不行,但我感觉你这个思路是正确的,只是我不会利我其中的一个数据库操作类
比如你在其中用的一个函数是 mysqli_fetch_all
我查了一下资料好象这个函数被取缔了.
另外我的系统中有一个数据库函数操作类,帖上来
<?phpdefine('InEmpireCMSDbSql',TRUE);class mysqlquery{ var $dblink; var $sql;//sql语句执行结果 var $query;//sql语句 var $num;//返回记录数 var $r;//返回数组 var $id;//返回数据库id号 //执行mysql_query()语句 function query($query){ global $ecms_config; $this->sql=mysql_query($query,return_dblink($query)) or die($ecms_config['db']['showerror']==1?mysql_error().'<br>'.str_replace($GLOBALS['dbtbpre'],'***_',$query):'DbError'); return $this->sql; } //执行mysql_query()语句2 function query1($query){ $this->sql=mysql_query($query,return_dblink($query)); return $this->sql; } //执行mysql_query()语句(选择数据库USE) function usequery($query){ global $ecms_config; $this->sql=mysql_query($query,$GLOBALS['link']) or die($ecms_config['db']['showerror']==1?mysql_error().'<br>'.str_replace($GLOBALS['dbtbpre'],'***_',$query):'DbError'); if($GLOBALS['linkrd']) { mysql_query($query,$GLOBALS['linkrd']); } return $this->sql; } //执行mysql_query()语句(操作数据库) function updatesql($query){ global $ecms_config; $this->sql=mysql_query($query,return_dblink($query)) or die($ecms_config['db']['showerror']==1?mysql_error().'<br>'.str_replace($GLOBALS['dbtbpre'],'***_',$query):'DbError'); return $this->sql; } //执行mysql_fetch_array() function fetch($sql)//此方法的参数是$sql就是sql语句执行结果 { $this->r=mysql_fetch_array($sql); return $this->r; } //执行fetchone(mysql_fetch_array()) //此方法与fetch()的区别是:1、此方法的参数是$query就是sql语句 //2、此方法用于while(),for()数据库指针不会自动下移,而fetch()可以自动下移。 function fetch1($query) { $this->sql=$this->query($query); $this->r=mysql_fetch_array($this->sql); return $this->r; } //执行mysql_num_rows() function num($query)//此类的参数是$query就是sql语句 { $this->sql=$this->query($query); $this->num=mysql_num_rows($this->sql); return $this->num; } //执行numone(mysql_num_rows()) //此方法与num()的区别是:1、此方法的参数是$sql就是sql语句的执行结果。 function num1($sql) { $this->num=mysql_num_rows($sql); return $this->num; } //执行numone(mysql_num_rows()) //统计记录数 function gettotal($query) { $this->r=$this->fetch1($query); return $this->r['total']; } //执行free(mysql_result_free()) //此方法的参数是$sql就是sql语句的执行结果。只有在用到mysql_fetch_array的情况下用 function free($sql) { mysql_free_result($sql); } //执行seek(mysql_data_seek()) //此方法的参数是$sql就是sql语句的执行结果,$pit为执行指针的偏移数 function seek($sql,$pit) { mysql_data_seek($sql,$pit); } //执行id(mysql_insert_id()) function lastid()//取得最后一次执行mysql数据库id号 { $this->id=mysql_insert_id($GLOBALS['link']); if($this->id<0) { $this->id=$this->gettotal('SELECT last_insert_id() as total'); } return $this->id; } //返回影响数量(mysql_affected_rows()) function affectnum()//取得操作数据表后受影响的记录数 { return mysql_affected_rows($GLOBALS['link']); }}?>
能不能改用这里的方法呢,比如假如
先实例化这个类
$empire=news mysqlquery();
然后用$empire->的方法怎么改写上面的呢,
$SQ="SELECT infotags,id FROM hd_ecms_shop_data_1 WHERE hd_ecms_shop_data_1.infotags LIKE '%我爱你%'";$result=mysqli_query($link,$SQ);$idStr='';if(mysqli_num_rows($result)){ $data=mysqli_fetch_all($result,MYSQL_ASSOC); foreach($data as $value){ if(isset($value['id'])) $idStr.=$value['id']; } $idStr=rtrim($idStr,','); echo $idStr;}
<?php$sqld=$empire->query('SELECT infotags,id FROM hd_ecms_shop_data_1 WHERE hd_ecms_shop_data_1.infotags LIKE "%现货促销产品%"');//查询副表下的infotags字段$idStr='';if($empire->num($sqld)){ $data=$empire->fetch($sqld); foreach($data as $key=>$value){ if(isset($value['id'])) $idStr.=$value['id']; } $idStr=rtrim($idStr,','); echo $idStr;}?>
我改了一下,但是没有成功,不知哪错了
$SQ="SELECT infotags,id FROM hd_ecms_shop_data_1 WHERE hd_ecms_shop_data_1.infotags LIKE '%我爱你%'";$result=mysqli_query($link,$SQ);$idStr='';if(mysqli_num_rows($result)){ $data=mysqli_fetch_all($result,MYSQL_ASSOC); foreach($data as $value){ if(isset($value['id'])) $idStr.=$value['id']; } $idStr=rtrim($idStr,','); echo $idStr;}
我这么写,出来结果了,但是全是乱七八糟的一些数字连在一起了
$sqld=$empire->query('SELECT infotags,id FROM hd_ecms_shop_data_1 WHERE hd_ecms_shop_data_1.infotags LIKE "%我爱你%"');//查询副表下的infotags字段
$idjh=array();
while($bqrd=$empire->fetch($sqld)){
if($bqrd[id])
$idStr.=$bqrd[id];
//$idStr=rtrim($idStr,',');
echo $idStr;
//代码误导你了 修改一下 $idStr.=$bqrd[id].',';}$idStr=rtrim($idStr,',')
另外 mysqli_fetch_all 是 PHP 的mysql数据库驱动 并没有给淘汰,只是服务器需要打开这个支持而已.有的服务器环境可能没有支持比如 sea...一般自己编译的服务器都可以轻松得到这个支持
另外 mysqli_fetch_all 是 PHP 的mysql数据库驱动 并没有给淘汰,只是服务器需要打开这个支持而已.有的服务器环境可能没有支持比如 sea...一般自己编译的服务器都可以轻松得到这个支持
这段代码改成while不用foreach的形式可以吗,并且如何改呢
$SQ="SELECT infotags,id FROM hd_ecms_shop_data_1 WHERE hd_ecms_shop_data_1.infotags LIKE '%我爱你%'";
$result=mysqli_query($link,$SQ);
$idStr='';
if(mysqli_num_rows($result)){
$data=mysqli_fetch_all($result,MYSQL_ASSOC);
foreach($data as $value){
if(isset($value['id']))
$idStr.=$value['id'];
}
$idStr=rtrim($idStr,',');
echo $idStr;
}
$SQ="SELECT infotags,id FROM hd_ecms_shop_data_1 WHERE hd_ecms_shop_data_1.infotags LIKE '%我爱你%'";$result=mysqli_query($link,$SQ);$idStr='';if(mysqli_num_rows($result)){ $data=mysqli_fetch_all($result,MYSQL_ASSOC); foreach($data as $value){ if(isset($value['id'])) $idStr.=$value['id']; } $idStr=rtrim($idStr,','); echo $idStr;}
你这个能改成while形式吗,改完后就可以加分了
//hava a try SELECT GROUP_CONCAT(infotags SEPARATOR ",") as infotags,id FROM hd_ecms_shop_data_1 WHERE hd_ecms_shop_data_1.infotags LIKE '%我爱你%' GROUP BY infotags
可以查询出来id的数组再用implode来处理啊,为啥非要用sql查询来处理?
可以查询出来id的数组再用implode来处理啊,为啥非要用sql查询来处理?
怎么写,无码无真相
//骚年,这是基本功的问题啊while($row=mysql_fetch_array($result)){ $id[]=$row['id'];}echo join(",",$id);
//骚年,这是基本功的问题啊while($row=mysql_fetch_array($result)){ $id[]=$row['id'];}echo join(",",$id);
上仙,再请教一下
为啥
echo $row[id];//打印不出值,也不报错
//echo join(",",$id);//能打印出值来
//骚年,这是基本功的问题啊while($row=mysql_fetch_array($result)){ $id[]=$row['id'];}echo join(",",$id);
上仙我搞错了,思维完全混乱造成的,
Array ( [0] => 9 [1] => 38 [2] => 39 [3] => 40 [4] => 36 [5] => 37 )
//骚年,这是基本功的问题啊while($row=mysql_fetch_array($result)){ $id[]=$row['id'];}echo join(",",$id);
上仙的方法不错,加分,希望今后再接再历,不要辜负我们对你的期望!钦此!
//骚年,这是基本功的问题啊while($row=mysql_fetch_array($result)){ $id[]=$row['id'];}echo join(",",$id);
嗯,上仙的方法不错,加分了,上仙!

PHP는 현대적인 프로그래밍, 특히 웹 개발 분야에서 강력하고 널리 사용되는 도구로 남아 있습니다. 1) PHP는 사용하기 쉽고 데이터베이스와 완벽하게 통합되며 많은 개발자에게 가장 먼저 선택됩니다. 2) 동적 컨텐츠 생성 및 객체 지향 프로그래밍을 지원하여 웹 사이트를 신속하게 작성하고 유지 관리하는 데 적합합니다. 3) 데이터베이스 쿼리를 캐싱하고 최적화함으로써 PHP의 성능을 향상시킬 수 있으며, 광범위한 커뮤니티와 풍부한 생태계는 오늘날의 기술 스택에 여전히 중요합니다.

PHP에서는 약한 참조가 약한 회의 클래스를 통해 구현되며 쓰레기 수집가가 물체를 되 찾는 것을 방해하지 않습니다. 약한 참조는 캐싱 시스템 및 이벤트 리스너와 같은 시나리오에 적합합니다. 물체의 생존을 보장 할 수 없으며 쓰레기 수집이 지연 될 수 있음에 주목해야합니다.

\ _ \ _ 호출 메소드를 사용하면 객체를 함수처럼 호출 할 수 있습니다. 1. 객체를 호출 할 수 있도록 메소드를 호출하는 \ _ \ _ 정의하십시오. 2. $ obj (...) 구문을 사용할 때 PHP는 \ _ \ _ invoke 메소드를 실행합니다. 3. 로깅 및 계산기, 코드 유연성 및 가독성 향상과 같은 시나리오에 적합합니다.

섬유는 PHP8.1에 도입되어 동시 처리 기능을 향상시켰다. 1) 섬유는 코 루틴과 유사한 가벼운 동시성 모델입니다. 2) 개발자는 작업의 실행 흐름을 수동으로 제어 할 수 있으며 I/O 집약적 작업을 처리하는 데 적합합니다. 3) 섬유를 사용하면보다 효율적이고 반응이 좋은 코드를 작성할 수 있습니다.

PHP 커뮤니티는 개발자 성장을 돕기 위해 풍부한 자원과 지원을 제공합니다. 1) 자료에는 공식 문서, 튜토리얼, 블로그 및 Laravel 및 Symfony와 같은 오픈 소스 프로젝트가 포함됩니다. 2) 지원은 StackoverFlow, Reddit 및 Slack 채널을 통해 얻을 수 있습니다. 3) RFC에 따라 개발 동향을 배울 수 있습니다. 4) 적극적인 참여, 코드에 대한 기여 및 학습 공유를 통해 커뮤니티에 통합 될 수 있습니다.

PHP와 Python은 각각 고유 한 장점이 있으며 선택은 프로젝트 요구 사항을 기반으로해야합니다. 1.PHP는 간단한 구문과 높은 실행 효율로 웹 개발에 적합합니다. 2. Python은 간결한 구문 및 풍부한 라이브러리를 갖춘 데이터 과학 및 기계 학습에 적합합니다.

PHP는 죽지 않고 끊임없이 적응하고 진화합니다. 1) PHP는 1994 년부터 새로운 기술 트렌드에 적응하기 위해 여러 버전 반복을 겪었습니다. 2) 현재 전자 상거래, 컨텐츠 관리 시스템 및 기타 분야에서 널리 사용됩니다. 3) PHP8은 성능과 현대화를 개선하기 위해 JIT 컴파일러 및 기타 기능을 소개합니다. 4) Opcache를 사용하고 PSR-12 표준을 따라 성능 및 코드 품질을 최적화하십시오.

PHP의 미래는 새로운 기술 트렌드에 적응하고 혁신적인 기능을 도입함으로써 달성 될 것입니다. 1) 클라우드 컴퓨팅, 컨테이너화 및 마이크로 서비스 아키텍처에 적응, Docker 및 Kubernetes 지원; 2) 성능 및 데이터 처리 효율을 향상시키기 위해 JIT 컴파일러 및 열거 유형을 도입합니다. 3) 지속적으로 성능을 최적화하고 모범 사례를 홍보합니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

Dreamweaver Mac版
시각적 웹 개발 도구

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구
