2015-02-28 3 views
-2

Друзья, я новичок в мире программирования php и баз данных. Я прошу прощения, если я не смогу хорошо общаться с использованием правильной терминологии.Mysql error Неизвестный столбец, где статья

Таблица 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 Джейн 20 (все из таблицы 1) 1 50% мужчин (все из таблицы2) вернулись. Но я бы выбрал для отображения какого-либо из данных, гипер-связав его, чтобы отобразить все записи в другой странице с помощью общего поля (LastName)

Примера: Джейн, отображаемое в page1.php, при нажатии покажет комбинированную запись в 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']; 
} 
?> 

Когда я нажал на "View Details" в page1.php, я получаю эту ошибку Unknown column '$lastname' in 'where clause'

+0

У вас есть право собственности на эти таблицы (то есть, вы создаете схему базы данных, или это уже существующие базы данных? –

+0

Ник Бейли. Спасибо за ваше беспокойство. Я уже иметь базу данных на моей локальной машине. Мне просто нужно использовать page1.php как masterPage, чтобы отображать содержимое двух таблиц на странице 2 (другая страница, на которую я могу вызвать страницу «Подробно»), используя одну из возвращаемых данных на стр. 1 как ссылка – Leo

+0

Я бы порекомендовал, если вы только начинаете с MySQL/PHP, очень важно изучать MySQLi или PDO с PHP, поскольку стандартный MySQL небезопасен и устарел, а два новых варианта s выше - гораздо более надежный и улучшенный способ программирования. – Martin

ответ

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']; 
} 

?> 
+0

Спасибо Adrian. Я только что изменил запрос, как вы указали, но я еще не был там. i изменил SELECT следующим образом: $ sql = mysql_query ("SELECT name, age, bonus, sex FROM table_1 c join table_2 f на c.lastname = f.lastname где c.lastname = '". $ lastname. "'") или die (mysql_error()); Сообщение об ошибке, которое я получаю: Предупреждение: mysql_query() ожидает, что параметр 1 будет строкой, ресурс указан в C: \ ONE \ htdocs \ exer \ z2.php в строке 30 – Leo

+0

@Leo у вас есть еще одна ошибка? –

+0

Ничего себе.Где ошибка для меня исправить. Я проверил переменную, чтобы обеспечить ключевое имя с именами полей в базе данных – Leo

Смежные вопросы