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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: вывод данных из двух таблиц

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
yellow79
Отправлено: 14 Декабря, 2009 - 15:21:05
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Дек. 2009  


Помог: 0 раз(а)




есть две таблицы, SC_orders и SC_customer_reg_fields_values, в первой такблице 'order number', 'users ID', 'name', 'last name','e-mail'. Во второй таблице 'users ID' и 'users telephone'
есть файлец, который берёт данные из первой таблице и сохраняет всё это в файл .csv необходимо как то дописать код чтоб скрипт брал данные из второй таблицы конекретно 'users telephone', ну и соответственно чтоб записал его в файл, хотя с этим я уже справлюсь наверное, мне главное как так сделать, чтоб из второй таблицы взять данные и вставить по 'users ID'


вроде понятно описал Улыбка
на всякий случай код прицепляю
CODE (text):
скопировать код в буфер обмена
  1.  
  2. <?php
  3. $hostname = "localhost";
  4. $username = "root";
  5. $password = "";
  6. $dbName = "test-shop";
  7. $userstable = "SC_orders";
  8. $userstable2 = "SC_customer_reg_fields_values";
  9.  
  10. MYSQL_CONNECT($hostname,$username,$password) OR DIE("Не могу создать соединение ");
  11. @mysql_select_db("$dbName") or die("Не могу выбрать базу данных ");
  12. $kar = mysql_query("SELECT * FROM ".$userstable.";") or die("Нету ничо!");
  13. if(!$kar) exit("Ошибка ".mysql_error());
  14. if(mysql_num_rows($kar))
  15.         {
  16.                 $fd = fopen("file.csv", "w");
  17.                 $textt ='order number'.";".
  18.                                 'users ID'.";".
  19.                                 'name'.";".                            
  20.                                 'last name'.";".
  21.                                 'e-mail'.";".
  22.                                 'order time'.";".
  23.                                 'price oreder'.";".
  24.                                 'ID partner'.";".
  25.                                 'region'.";".
  26.                                 'adress'.";".                                                  
  27.                                 'postal code'."\r\n";                          
  28.                         fwrite($fd, $textt);
  29.     while($kart = mysql_fetch_array($kar))
  30.     {    
  31.       $order = $kart['orderID'].";".
  32.                $kart['customerID'].";".
  33.                $kart['shipping_firstname'].";".
  34.                $kart['shipping_lastname'].";".
  35.                $kart['customer_email'].";".
  36.                $kart['order_time'].";".
  37.                $kart['order_amount'].";".
  38.                $kart['affiliateID'].";".
  39.                $kart['billing_state'].";".
  40.                $kart['billing_address'].";".
  41.                $kart['billing_zip']."\r\n";                        
  42.     fwrite($fd, $order);    
  43.     }    
  44.    fclose($fd);        
  45.   }
  46.  
  47. $file = ("file.csv");
  48. header ("Content-Type: application/octet-stream");
  49. header ("Accept-Ranges: bytes");
  50. header ("Content-Length: ".filesize($file));
  51. header ("Content-Disposition: attachment; filename=".$file);  
  52. readfile($file);
  53. ?>
  54.  
  55.  

(Отредактировано автором: 14 Декабря, 2009 - 15:33:08)

 
 Top
Phantik
Отправлено: 14 Декабря, 2009 - 15:38:54
Post Id


Посетитель


Покинул форум
Сообщений всего: 305
Дата рег-ции: Июнь 2009  


Помог: 0 раз(а)




SELECT order number, usersID, name, lastname,e-mail, userstelephone
FROM SC_orders
INNER JOIN SC_customer_reg_fields_values
ON SC_orders.usersID = SC_customer_reg_fields_values.usersID

(Отредактировано автором: 14 Декабря, 2009 - 15:39:25)

 
 Top
yellow79
Отправлено: 14 Декабря, 2009 - 15:54:43
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Дек. 2009  


Помог: 0 раз(а)




Phantik
меняю строку
CODE (text):
скопировать код в буфер обмена
  1. $kar = mysql_query("SELECT * FROM ".$userstable.";") or die("Нету ничо!");

на
CODE (text):
скопировать код в буфер обмена
  1. $kar = mysql_query("SELECT order number, usersID, name, lastname,e-mail, reg_field_value
  2. FROM SC_orders
  3. INNER JOIN SC_customer_reg_fields_values
  4. ON SC_orders.usersID = SC_customer_reg_fields_values.usersID") or die("Нету ничо!");


в результате мне браузер говорит что "Нету ничо!" Не понял и опечален
 
 Top
Viper
Отправлено: 14 Декабря, 2009 - 16:08:24
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




странно что такой запрос с JOIN вообще должен работать.
yellow79 у вас в двух таблицах поле с одинаковым именем, что не правильно. при выборе таких полей через JOIN mysql выдаст ошибку о дублирующемся имени поля. поэтому оно вам и не выдает ничего.


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
Phantik
Отправлено: 14 Декабря, 2009 - 16:08:25
Post Id


Посетитель


Покинул форум
Сообщений всего: 305
Дата рег-ции: Июнь 2009  


Помог: 0 раз(а)




А в названии полей могут быть пробелы? order к тому же ключевое слово.
Посмотрите что говорит mysql_error()

Попробуйте для начала взять имена полей в апострофы `order name` А вот насчет пробелов не помню. Посмотрите точно как называются поля.

(Отредактировано автором: 14 Декабря, 2009 - 16:11:53)

 
 Top
yellow79
Отправлено: 14 Декабря, 2009 - 16:14:07
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Дек. 2009  


Помог: 0 раз(а)




Phantik там поля оказывается Я не правильно написал, но это исправил у себя, теперь выдаёт ошибку: Ошибка Column 'customerID' in field list is ambiguous

для упрщения, немного выкинул лишние поля, осталось:
CODE (text):
скопировать код в буфер обмена
  1. $kar = mysql_query("SELECT 'orderID', 'customerID', 'reg_field_value'
  2. FROM SC_orders
  3. INNER JOIN SC_customer_reg_fields_values
  4. ON SC_orders.customerID = SC_customer_reg_fields_values.customerID") or die("Нету ничо!");


Phantik, отредактировал, всмысле названия полей в апострофы поставил и заработало, спасибо вам огромное, но вот только 'customerID' выводить не желает, но по сути чёрт с ним, мне нужен был номер телефона

(Отредактировано автором: 14 Декабря, 2009 - 16:27:07)

 
 Top
Phantik
Отправлено: 14 Декабря, 2009 - 16:28:28
Post Id


Посетитель


Покинул форум
Сообщений всего: 305
Дата рег-ции: Июнь 2009  


Помог: 0 раз(а)




Апострофы имелось ввиду те что находятся на клавише Ё, а не двойные кавычки.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB