1

以下にリストされている3つの別々のMySQLクエリがありますが、同じ出力を取得できるようにそれらを組み合わせる方法はありますが、データベースへの呼び出しは1つだけです(3つではありません)

前もって感謝します

    <?php  
$host   = ''; 
$dbUser = '';   
$dbPass = ''; 
$db = ''; 
mysql_connect("$host", "$dbUser", "$dbPass") or die(mysql_error());
mysql_select_db("$db") or die(mysql_error());

$result = mysql_query("SELECT id,cat,extra1,bigimage FROM pp_photos WHERE extra1 = '120' ORDER BY rand() LIMIT 1" ) or die(mysql_error());   
while($row = mysql_fetch_array( $result )) {    
print "<a href=\"http://www.\" target=\"_new\"> <img src=\"ng\"  border=\"0\" ></a>";
}
?> 
<?php  
$host   = ''; 
$dbUser = '';   
$dbPass = ''; 
$db = ''; 
mysql_connect("$host", "$dbUser", "$dbPass") or die(mysql_error());
mysql_select_db("$db") or die(mysql_error());

$result = mysql_query("SELECT id,cat,extra1,bigimage FROM pp_photos WHERE extra1 = 'W599_PTO' ORDER BY rand() LIMIT 1" ) or die(mysql_error());   
while($row = mysql_fetch_array( $result )) {    
print "<a href=\"php">[?]</FONT></a>";
}
?>
<?php  
$host   = ''; 
$dbUser = '';   
$dbPass = ''; 
$db = ''; 
mysql_connect("$host", "$dbUser", "$dbPass") or die(mysql_error());
mysql_select_db("$db") or die(mysql_error());

$result = mysql_query("SELECT id,cat,extra1,extra5,bigimage FROM pp_photos WHERE extra5 = '120rear' ORDER BY rand() LIMIT 1" ) or die(mysql_error());   
while($row = mysql_fetch_array( $result )) {    
print "<a href=\"09\" target=\"_new\"> <img src=\"http://pg\"  border=\"0\" ert\"></a>";
}
?> 

以下のヘルプに基づいてコードを編集しました...MySQLの初心者であり、「extra1」フィールドの値に基づいて3つの画像のいずれかまたはすべてが表示されるようにフィルターを設定する方法がわかりません。 ..。。

    <?php  
$host   = ''; 
$dbUser = '';   
$dbPass = ''; 
$db = ''; 
mysql_connect("$host", "$dbUser", "$dbPass") or die(mysql_error());
mysql_select_db("$db") or die(mysql_error());

$result = mysql_query("
SELECT extra1 
FROM pp_photos 
WHERE extra1 IN('1','10','12') 
GROUP BY extra1" ) 
or die(mysql_error());   
while($row = mysql_fetch_array( $result )) {    
print "<a href=\"h3\" target=\"_new\"> images</a>";
}
?> 
4

2 に答える 2

1
SELECT id,cat,extra1,bigimage 
FROM pp_photos 
WHERE extra1 IN('W599_PTO','120','120rear') 
GROUP BY extra1

これにより、3行になります。3行から目的の行を取得するには、いくつかの条件に従ってフィルタリングする必要があります。順序付けは必要ありません。

于 2012-04-19T12:15:04.940 に答える
1

UNIONを使ってみませんか

$query = "
SELECT id,cat,extra1,bigimage FROM pp_photos WHERE extra1 = '120' ORDER BY rand() LIMIT 1
UNION
SELECT id,cat,extra1,bigimage FROM pp_photos WHERE extra1 = 'W599_PTO' ORDER BY rand() LIMIT 1
UNION
SELECT id,cat,extra1,bigimage FROM pp_photos WHERE extra1 = '120rear' ORDER BY rand() LIMIT 1
";
$cats = array(
    '120'      => '503',
    'W599_PTO' => '508',
    '120rear'  => '509'
);
$result = mysql_query($query) or die(mysql_error());   
while($row = mysql_fetch_array( $result )) {    
    print '<a href="http://www.nctfleetlist.co.uk/photos/search.php?keywords='.
          $row['extra1'] .
          '&cat=' .
          $cats[$row['extra1']] .
          '" target="_new"><img src="http://www.nctfleetlist.co.uk/images/camera.png"  border="0" title="photos available"></a>';
}
于 2012-04-19T13:10:40.727 に答える