我想打印一个名为'res_properties'的表的内容,以获得关于我的投资组合的概述,但不知道语法(PHP知道我,但我不知道PHP ...):
我有一个名为'res_properties'的表和一个名为'location_id'的列 我有另一个名为'res_location'的表和2个名为'id'和'slug'的列 列'slug'包含位置的人类可读内容
样品 'id'是“3”等于“California”('slug'的内容) 'id'是“4”等于“Virginia”('slug'的内容) 等
打印时我需要查找表'res_location'并且当'location_id'等于'id'时 然后将'id'替换为'slug'的内容(或将'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>
答案 0 :(得分:0)
很难阅读你问题的正文,但如果标题是准确的,那么这可能是你想要的。
SELECT IF(table.fieldA = table.fieldB, table.fieldC, NULL) FROM table;
格式为IF(条件,如果为true则输出,如果为false则输出)
现在,如果我的答案是在正确的轨道上,但不是很正确,你告诉我,我会更新它。
答案 1 :(得分:0)
在mysql中使用联接,那么你不必担心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");
答案 2 :(得分:0)
据我所知,您要打印表res_properties和res_locations的内容。表res_properties包含位于特定状态的属性。在输出中,您需要打印属性以及属性所在的状态。最好的方法是使用res_properties的column_id列和res_locations的列id,在单个sql语句中join表res_properties和res_locations:
$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 ))
{
还要注意在print语句中使用正确的php语法,以避免语法错误!例如,要打印纯字符串值,必须使用parantheses:
print "hello world";
我希望我的代码没有语法错误,我回答了你的问题。