Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Выборка из двух таблиц в xml
Форумы портала PHP.SU » » HTTP и PHP » Выборка из двух таблиц в xml

Страниц (1): [1]
 

1. Ismail - 08 Февраля, 2013 - 17:11:38 - перейти к сообщению
Подскажите, как правильно написать запрос.

Есть 2 таблицы с разными данными(названия столбцов разные). Создал в каждой таблице столбец с именем id_order, значение этого id_order одинаково для обеих столбцов. Нужно сверяя данные 2х таблиц, по id_order выводить результат.

Как то так:

// запрос к базе

// вывод в xml

// если id_order.table1 = id_order.table2 вывести привет! в ином случае вывести пока!

Я вижу это как-то так:

PHP:
скопировать код в буфер обмена
  1. <?
  2.  
  3. $db = mysql_connect("localhost","name_bd","pass");
  4. mysql_select_db("name_bd",$db);
  5. $result1 = mysql_query("SELECT `id`,`click`,`source` FROM ps_pay",$db);
  6. $result2 = mysql_query("SELECT `id_order` FROM ps_order WHERE `id_order`='$date1[id]'",$db);
  7. $date2 = mysql_fetch_array($result2)
  8. // делаем ответ xml
  9.  
  10. header('Content-Type: text/xml');
  11. echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<items>\n";
  12. while ($date1 = mysql_fetch_array($result1))  {
  13. if (empty($date1['id'])) { } else {
  14. echo "<item>\n";
  15. echo "<id>" . $date1['id'] . "</id>\n";
  16. echo "<id>" . $date1['click'] . "</id>\n";
  17. echo "<id>" . $date1['source'] . "</id>\n";
  18. if(empty($date2['id'])) {echo "Пока!\n";} else {echo "Привет!\n";}
  19. echo "</item>\n";
  20. }
  21. }              
  22. echo "</items>";
  23.                
  24. ?>


Но это, конечно, не работает...
(Добавление)
Кажется нашел ответ, запрос получился такой:

PHP:
скопировать код в буфер обмена
  1. "SELECT ps_action_pay.id, ps_action_pay.click, ps_action_pay.source, ps_action_pay.date, ps_action_pay.key, ps_action_pay.price, ps_orders.valid
  2.        FROM `ps_action_pay`, `ps_orders`
  3.        WHERE ps_action_pay.id = ps_orders.id_order"


может кому пригодится Радость
2. esterio - 08 Февраля, 2013 - 19:11:28 - перейти к сообщению
Ismail пишет:
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<items>\n";
while ($date1 = mysql_fetch_array($result1)) {
if (empty($date1['id'])) { } else {
echo "<item>\n";
echo "<id>" . $date1['id'] . "</id>\n";
echo "<id>" . $date1['click'] . "</id>\n";
echo "<id>" . $date1['source'] . "</id>\n";
if(empty($date2['id'])) {echo "Пока!\n";} else {echo "Привет!\n";}
echo "</item>\n";
}
}
echo "</items>";

1. Все ето делаеться просто через simplexml
2. используйте mysqli или PDO

Поздравляю с успешным запросом
Позд

 

Powered by ExBB FM 1.0 RC1