Php bir önceki sorgudan sonuçları sorgulamak?

5 Cevap php

Bazı dillerde (ColdFusion akla geliyor), bir önceki sorgudan set sonucu bir sorgu çalıştırabilirsiniz. O (veritabanı olarak MySQL ile) php böyle bir şey yapmak mümkün mü?

Ben tür yapmak istiyorum:

$rs1 = do_query( "SELECT * FROM animals WHERE type = 'fish'" );
$rs2 = do_query( "SELECT * FROM rs1 WHERE name = 'trout'" );

5 Cevap

PHP için bu gibi bir MySQL fonksiyonu ancak substitute için daha gelişmiş orada olduğunu, var.

Edit: sorguları sorgu ne olduğunu bilmiyorum kim o sizin için, tam olarak bu ve bazı insanlar bu gibi bunu bir amaç var. VE operatörünü kullanarak bir *NOT * aynı şey! Daha sonra kullanıcı adı benim komut dosyası bir kısmı için = 'animuson' ve bana bir AND operatörünü kullanarak başka bir sorgu çalıştırmak için durum = '1 ', mantıklı olmadığını sorgunun dışında tüm sonuçlar istiyorsanız sonuçlar istiyorsanız, öyle PHP önceki sonuçlar döngü çok daha mantıklı. Onlar ilk etapta upvoted değildi neden yorumları okumadan şeyler upvoting durdurmak, sadece tembel. Hakkında konuştuk ne bir ipucu yoksa, siz upvoting veya ilk etapta downvoting edilmemelidir.

Peki, db dokunmadan bunu yapmak isteyebilirsiniz:

while($t = mysql_fetch_array($rs1)){
    if($t[name] == 'trout'){ echo 'This is the one we\'re looking for!'; break;}

PHP, bu korkunç verimsiz olurdu. Her satır döngü var ve kontrol edeceğini, onun name {idi [(1)]}. Ancak, yapamazsın herhangi bir neden yoktur

SELECT * FROM `animals` WHERE `type` = 'fish' AND `name` = 'trout'

SQL? Bu çok, çok daha hızlı olacaktır.

VE anahtar kelime kullan?

"SELECT * FROM animals WHERE type = 'fish' and name='trout'"

Ayrıca, php için LINQ kullanabilirsiniz http://phplinq.codeplex.com/

Ayrıca böyle bir şey yapabilirsiniz

select morestuff from (select stuff from table where a = b ) where c = d;