[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Сравнение
niko42
Есть две таблице, в каждой табллице есть уйма колонок. Вот я пытаюсь сравить в двух таблицах значение определенных колонок и вывести из одной таблицу, что совпадает.

<?php    
$mysql_addres="localhost";
$mysql_login="root";
$mysql_password="123123";
$mysql_database="l2pdb";
mysql_connect($mysql_address,$mysql_login,$mysql_password);
mysql_select_db($mysql_database);
$items= mysql_query("SELECT object_id, name FROM items");
$att= mysql_query("SELECT itemId, name FROM item_attributes");

$db = mysql_query("SELECT name, name FROM items")

if ($items == $att)
{
echo "$db";
}
else
{
echo 0;
}


?>


выводит ошибку: Parse error: syntax error, unexpected T_IF in www/localhost/main.php on line 13



Спустя 10 минут, 42 секунды (28.04.2011 - 23:41) waldicom написал(а):
Так не пойдет. Опишите точно задачу: что нужно сравнивать и что должны получить на выходе.

Спустя 34 минуты, 39 секунд (29.04.2011 - 00:16) niko42 написал(а):
Думаю так понятнее
<?php    
$mysql_addres="localhost";
$mysql_login="root";
$mysql_password="123123";
$mysql_database="l2pdb";
mysql_connect($mysql_address,$mysql_login,$mysql_password);
mysql_select_db($mysql_database);
$items= mysql_query("SELECT object_id FROM items"); //object_id - название столбца в таблице, item сама таблица
$att= mysql_query("SELECT itemId FROM item_attributes"); //itemId - название столбца в таблице, item_attributes сама таблица

$db = mysql_query("SELECT name FROM items") //name - название столбца в таблице, item сама таблица

if ($items == $att) // здесь мы сравниваем два стобца из разных таблиц
{
echo "$db"; // здесь мы выводим результат
}
else
{
echo 0;
}


?>

Спустя 2 минуты, 40 секунд (29.04.2011 - 00:19) waldicom написал(а):
Цитата (niko42 @ 28.04.2011 - 22:16)
Думаю так понятнее

Я так не думаю. Попробую угадать:
Вам необходимо вывести все строки из таблицы items, в которых поле "object_id" из таблицы items имеет такое же значение как и поле itemId в таблице item_attributes. Так?

Спустя 3 минуты, 10 секунд (29.04.2011 - 00:22) niko42 написал(а):
Да! =) Вроде правильно все написал.

Спустя 29 минут, 26 секунд (29.04.2011 - 00:51) Ser18 написал(а):
Если я вас правильно понял
$items= mysql_query("SELECT object_id FROM items");

while($row_items = mysql_fetch_assoc($items)){
$att= mysql_query("SELECT itemId FROM item_attributes WHERE itemId='".$row_items['object_id']."'");
$row_$att = mysql_fetch_assoc($att);
echo $row_$att['itemId'].'<br/>';
}

Спустя 10 минут, 36 секунд (29.04.2011 - 01:02) niko42 написал(а):
<?php    
$mysql_addres="localhost";
$mysql_login="root";
$mysql_password="123123";
$mysql_database="l2pdb";
mysql_connect($mysql_address,$mysql_login,$mysql_password);
mysql_select_db($mysql_database);

$items= mysql_query("SELECT object_id FROM items");

while($row_items = mysql_fetch_assoc($items))

{
$att= mysql_query("SELECT itemId FROM item_attributes WHERE itemId='".$row_items['object_id']."'");

$row_$att = mysql_fetch_assoc($att);

echo $row_$att['itemId'].'<br/>';
}

?>


Parse error: syntax error, unexpected T_VARIABLE in www/localhost/main.php on line on line 16

Спустя 5 минут, 21 секунда (29.04.2011 - 01:07) Zerstoren написал(а):
$row_$att = mysql_fetch_assoc($att);


опечатка

Спустя 14 минут, 2 секунды (29.04.2011 - 01:21) niko42 написал(а):
Почему Вот так вот нельзя сделать? Т.е. у меня вообще ни чего не выдает. Ведь так проще. Чем Веши сказанно. И то что выше, всеровно не выводит.

<?php    
$mysql_addres="localhost";
$mysql_login="root";
$mysql_password="123123";
$mysql_database="l2pdb";
mysql_connect($mysql_address,$mysql_login,$mysql_password);
mysql_select_db($mysql_database);

$att= mysql_query("SELECT * FROM item_attributes");
$items= mysql_query("SELECT * FROM items");
$myrow1 = mysql_fetch_array($att);
$myrow2 = mysql_fetch_array($items);

do
if
($myrow1['itemId'] == $myrow2['object_id']) {
{

echo $myrow2['object_id, name']."<br>";
}
}

while ($myrow = mysql_fetch_array($items));
?>

Спустя 5 минут, 25 секунд (29.04.2011 - 01:27) Ser18 написал(а):
Так вы сравниваете паралельные записи

А в примере выше сравниваются все записи друг с другом

Что у вас не получается с примером который выше?

Спустя 5 минут, 8 секунд (29.04.2011 - 01:32) niko42 написал(а):
ТО что выше у меня выдает ошибку

$items= mysql_query("SELECT object_id FROM items");

while($row_items = mysql_fetch_assoc($items)){
$att= mysql_query("SELECT itemId FROM item_attributes WHERE itemId='".$row_items['object_id']."'");
$row_$att = mysql_fetch_assoc($att);
echo $row_$att['itemId'].'<br/>';
}

Parse error: syntax error, unexpected T_VARIABLE in www/localhost/main.php on line on line 16

Спустя 1 минута, 32 секунды (29.04.2011 - 01:33) Ser18 написал(а):
Вы там даже сравниваете две первые строки таблиц (каждый раз одни и те же) и прогоняете это в цикле

Спустя 1 минута, 31 секунда (29.04.2011 - 01:35) Ser18 написал(а):
Так вам же выше указали на опечатку

Пробуйте так

$items= mysql_query("SELECT object_id FROM items");

while($row_items = mysql_fetch_assoc($items)){
$att= mysql_query("SELECT itemId FROM item_attributes WHERE itemId='".$row_items['object_id']."'");
$row_att = mysql_fetch_assoc($att);
echo $row_att['itemId'].'<br/>';
}

Спустя 2 минуты, 5 секунд (29.04.2011 - 01:37) niko42 написал(а):
Цитата (niko42 @ 28.04.2011 - 22:02)
<?php    
$mysql_addres="localhost";
$mysql_login="root";
$mysql_password="123123";
$mysql_database="l2pdb";
mysql_connect($mysql_address,$mysql_login,$mysql_password);
mysql_select_db($mysql_database);

$items= mysql_query("SELECT object_id FROM items");

while($row_items = mysql_fetch_assoc($items))

{
$att= mysql_query("SELECT itemId FROM item_attributes WHERE itemId='".$row_items['object_id']."'");

$row_$att = mysql_fetch_assoc($att);

echo $row_$att['itemId'].'<br/>';
}

?>


Parse error: syntax error, unexpected T_VARIABLE in www/localhost/main.php on line on line 16

Ошибка при сравнении: Parse error: syntax error, unexpected T_VARIABLE in www/localhost/main.php on line on line 16


Спустя 1 минута, 24 секунды (29.04.2011 - 01:38) niko42 написал(а):
Цитата (Ser18 @ 28.04.2011 - 22:35)
Так вам же выше указали на опечатку

Пробуйте так

$items= mysql_query("SELECT object_id FROM items");

while($row_items = mysql_fetch_assoc($items)){
$att= mysql_query("SELECT itemId FROM item_attributes WHERE itemId='".$row_items['object_id']."'");
$row_att = mysql_fetch_assoc($att);
echo $row_att['itemId'].'<br/>';
}

Спасибо, Вам! Но к сожалению, в итоге ни чего не выводится. пустое окно, но скрипт грузит!

Спустя 3 минуты, 55 секунд (29.04.2011 - 01:42) Ser18 написал(а):
Выдаст только при полном совпадении строк

Спустя 4 минуты, 25 секунд (29.04.2011 - 01:47) niko42 написал(а):
Там должно вывести порядко, более 2 тысяч совпадение. в итоге срипт ни чего не выводит.


Спустя 6 минут, 59 секунд (29.04.2011 - 01:54) Ser18 написал(а):
Сравниваются
Таблица items и вне колонка object_id с таблицей item_attributes и в ней колонка itemId
Так надо было?

Спустя 53 секунды (29.04.2011 - 01:55) niko42 написал(а):
Да

Спустя 5 минут, 8 секунд (29.04.2011 - 02:00) Ser18 написал(а):
Не знаю
Должно выводить если они есть

Спустя 12 минут, 39 секунд (29.04.2011 - 02:12) niko42 написал(а):
Цитата (Ser18 @ 28.04.2011 - 23:00)
Не знаю
Должно выводить если они есть

Они есть 100%, причем совпадений еще раз повтарю более 2 тысяч

Спустя 1 час, 35 минут, 39 секунд (29.04.2011 - 03:48) niko42 написал(а):
Как еще возможно сравнить две таблица, определенные поля в БД MySQL ?=)

Спустя 2 часа, 44 минуты, 50 секунд (29.04.2011 - 06:33) inpost написал(а):
$query = "SELECT b.`itemId`
FROM `items` a
LEFT JOIN `item_attributes` b ON a.`object_id` = b.`itemId`
ORDER BY b.`object_id`"
;
$res = mysql_query($query) or die(mysql_error());
echo mysql_num_rows($res);

Спустя 19 дней, 10 часов, 35 секунд (18.05.2011 - 16:33) niko42 написал(а):
Актуально.

Спустя 51 минута, 56 секунд (18.05.2011 - 17:25) Krevedko написал(а):
почему актуально. код, который дал inpost правильный, сам о таком думал, когда читал верхние некорректные. Запросы в цикле-моветон.

[php]
$query = "SELECT b.`itemId`FROM `items` a
LEFT JOIN `item_attributes` b
ON a.`object_id` = b.`itemId`
ORDER BY b.`object_id`";
$res = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_assoc($res))
echo $row['name'];

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.