朋友们,我是php和数据库编程世界的新手。如果我使用正确的术语无法很好地沟通,我会向前道歉。
表1
Id | name | lastName | age =============================== 1 | Jane | Kot | 20 2 | Ann | Ama | 17
表2
Id | lastName | bonus | sex ============================== 1 | kot | 50% | male 2 | Jack | 20% | male
我想加入table1.lastName = table2.lastName
的两个表格。在上图中,我期待着“1 Jane 20(全部来自table1)1 50%男性(全部来自table2)返回。
但我会选择显示任何数据,超链接它以使用公共字段(lastName)显示另一页面中的整个记录
示例:单击时显示在page1.php
中的Jane将在page2.php
中显示合并记录。
简(现在在page1.php
中超链接)---------点击了---------> 1简20 1 50%男性(显示在page2.php
)
请帮我。我为我表达问题的糟糕方式道歉。感谢
PAGE1.PHP
的代码
$sql = "SELECT * FROM table1, table2 WHERE table1.lastname = table_2.lastname";
$result = mysql_query ($sql);
while ($row = mysql_fetch_array($result)) {
echo '<table border="1">';
echo '<tr>';
echo '<td>'. $row['name'].'<br>'.'</td>';
echo '<td><a href="page2.php? lastName=' . $row['lastName'] . '">VIEW DETAILS</a></td>';
echo'</tr>';
echo'</table>';
}
?>
PAGE2.PHP
的代码
$lastName = mysql_real_escape_string($_GET['lastName']);
$sql =mysql_query ('SELECT name, age, bonus, sex FROM table_1 c join table_2 f on c.lastname = f.lastname where c.lastname = $lastname ' )
or die(mysql_error());
$result = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_array($result);
while ($row) {
// Echo page content
echo $row['name'].'<br>';
echo $row['age'];
echo $row['sex'];
echo $row['bonus'];
}
?>
当我点击page1.php
中的“查看详细信息”时,出现此错误Unknown column '$lastname' in 'where clause'
答案 0 :(得分:1)
您必须将$ lastname放在'
中,因为数据库中此字段的类型是varchar或text。
在z2.php
<?php
$lastName = mysql_real_escape_string($_GET['lastName']);
$sql = "SELECT name, age, bonus, sex FROM table_1 c join table_2 f on c.lastname = f.lastname where c.lastname = '" . $lastname . "'" ;
$result = mysql_query($sql);
while ($row = mysql_fetch_array($result)) {
// Echo page content
echo $row['name'].'<br>';
echo $row['age'];
echo $row['sex'];
echo $row['bonus'];
}
?>