0

我想打印一个名为“res_properties”的表格的内容,以大致了解我的投资组合,但不知道语法(PHP 了解我,但我不了解 PHP...):

我有一个名为“res_properties”的表和一个名为“location_id”的列,还有一个名为“res_location”的表和两个名为“id”和“slug”的列,其中“slug”列包含该位置的人类可读内容

样本“id”是“3”,等于“California”(“slug”的内容)“id”是“4”,等于“Virginia”(“slug”的内容)等等。

打印时我需要查找表'res_location'并且当'location_id'等于'id'然后用'slug'的内容替换'id'(或将'slug'的内容移动到一个新字段中,例如'location_name '(25 个字符)并打印该字段。

到目前为止,我的代码是这样的,我感谢任何帮助。非常感谢:

<html>
<head>
<title>Portfolio</title>
</head>
<link rel="stylesheet" type="text/css" href="../scripts/css/formate.css" />
<body>

<?php 
 // Connects to Database 
 mysql_connect("localhost","user","passw") or die(mysql_error()); 
 mysql_select_db("db_name") or die(mysql_error()); 
 $data = mysql_query("SELECT * FROM res_properties"); 
 $location = mysql_query("SELECT * FROM res_locations")

 or die(mysql_error()); 

 Print "<table border cellpadding=3>"; 
 Print "<br><h3>Portfolio</h3><p><br>"; 
   Print "<table border cellpadding=3>"; 
   Print "<tr align='left'><th width=130>Villa Name</th><th width=40>Beds</th><th width=40>Baths</th><th width=60>Sleeps</th><th width=40>Location</th><th width=40>Loc-ID</th><th width=300 >Site URL</th></tr>"; 

   while($info2 = mysql_fetch_array( $location )) 
   while($info = mysql_fetch_array( $data )) 

 { 

 Print "<tr>"; 
 Print "<td>".$info['ref_id'] . "</td> "; 
 Print "<td>".$info['bedrooms'] . " </td>"; 
 Print "<td>".$info['bathrooms'] . " </td>"; 
 Print "<td>".$info['max_occupants'] . " </td>"; 
 Print "<td>".$info2['slug'] . " </td>"; 
 Print "<td>".$info2['id'] . " </td>"; 

// here I want to print a clickable URL but some syntax error:
// Print "<td>" http://www.domain_name.com/'.$info['slug'] .'.html;

// when using the echo command it works fine like this, but doesn't output a clickable URL:
// echo 'http://www.domain_name.com/'.$info['slug'] .'.html' . "<br />"; 


 } 
 Print "</table>"; 
 ?> 

</body>
</html>
4

3 回答 3

0

很难阅读您问题的正文,但如果标题准确,那么这可能就是您想要的。

SELECT IF(table.fieldA = table.fieldB, table.fieldC, NULL) FROM table;

格式为IF(条件,真输出,假输出)

现在,如果我的答案在正确的轨道上但不完全正确,你告诉我,我会更新它。

于 2012-11-17T08:46:55.410 回答
0

在mysql中使用joins,那么你就不用担心php脚本了,使用下面的sql查询来获取数据

$data = mysql_query("select
rl.id,
rl.slug
from res_location as rl
join res_properties as rp on rp.location_id=rl.id");

在 w3easystep.info 关注我的博客

于 2012-11-17T08:50:42.770 回答
0

我了解到您想打印 res_properties 和 res_locations 表的内容。表 res_properties 包含位于某些状态的属性。在您的输出中,您要打印属性和属性所在的状态。最好的方法是使用res_properties的 location_id 列和 res_locations 的列 id 将表 res_properties 和 res_locations 连接到单个 sql 语句中:

$data = mysql_query("SELECT * FROM res_properties t1 INNER JOIN res_locations t2 ON t1.location_id = t2.id");

使用 join 语句,mysql 返回一个包含与单个属性对应的全部信息的单个连接表。现在迭代 $data 并打印值:

print "<table>";
while($info = mysql_fetch_array( $data )) {
   print "<tr>"; 
   print "<td>" . $info['ref_id'] . "</td> "; 
   print "<td>" . $info['bedrooms'] . "</td>"; 
   print "<td>" . $info['bathrooms'] . "</td>"; 
   print "<td>" . $info['max_occupants'] . "</td>"; 
   print "<td>" . $info['slug'] . "</td>"; 
   print "<td>" . $info['id'] . "</td>";
   print "<td>http://www.domain_name.com/" . $info['slug'] . ".html</td>";
}
print "</table>";

要更好地理解 php,请尝试考虑两个连续 while 循环的语义:

while($info2 = mysql_fetch_array( $location )) 
while($info = mysql_fetch_array( $data )) 
{ 

还要注意在打印语句中使用正确的 php 语法以避免语法错误!例如,要打印纯字符串值,需要使用括号:

print "hello world";

我希望我的代码没有语法错误并且我回答了你的问题。

于 2012-11-17T09:10:10.897 回答