| веб-мастеру | блог веб-мастера | Статьи Веб-Мастера | SEO Tools | книги веб-мастеру |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
| annablk |
3.8.2007, 20:47
Сообщение
#1
|
|
Новичок ![]() ![]() Группа: Свои Сообщений: 17 Регистрация: 25.7.2007 Пользователь №: 151 |
Я пишу:
$finfo = dbase_get_header_info($db) print_r($finfo) Выводит результат: Array ( [0] => Array ( [name] => NST [type] => number [length] => 3 [precision] => 0 [format] => %3s [offset] => 1 ) ..... и др записи такого плана. Мне же надо только содержимое полей name сравнить с данными в поле таблицы AAA (в MSSQL) не знаю как написать запрос на MSSQL |
| gid |
3.8.2007, 22:33
Сообщение
#2
|
|
Администратор форума ![]() ![]() ![]() ![]() ![]() Группа: Главные администраторы Сообщений: 623 Регистрация: 27.11.2006 Из: Россия Пользователь №: 1 |
Цитата не знаю как написать запрос на MSSQL На сколько я понимаю, запросы, что в MsSQL, что и в MySQL одиаковые - используется один и тот же SQL синтаксис, с очень незначительными различиями. Запрос будет примерно такой: Код SELECT name FROM `имя_таблицы` где name - имя нужного поля. Если нужно несколько разных полей - перечисляйте через запятую без пробела: name,name_1,name_2... Код $query = "SELECT name FROM `имя_таблицы`"; $result = mssql_query($query) or print mysql_error(); while ($row = mssql_fetch_array($result)) { // здесь что-либо делаем с ассоциированным массивом $row } -------------------- Хочу жить на о.Самуи
Раскрутка Вашего сайта | Пишу php скрипты на заказ | Регистрация Вашего сайта в каталогах |__| RU-домены за 170 рублей |__| SU-домены за 460 рублей |__| | - | - | - | ICQ: 6-426-630 |
| sashkovishe |
4.8.2007, 1:34
Сообщение
#3
|
![]() Администратор форума ![]() ![]() ![]() ![]() Группа: Администраторы Сообщений: 397 Регистрация: 3.12.2006 Из: России Пользователь №: 4 |
Цитата(annablk) Мне же надо только содержимое полей name сравнить с данными в поле таблицы AAA (в MSSQL) не знаю как написать запрос на MSSQL Если поле name находится в одной таблице, а другое поле с которым надо сравнивать находится в другой таблице, т.е. используется две таблицы, то можно составить такой запрос: Код SELECT table1.name FROM table1, AAA WHERE table1.name = AAA.name -------------------- Think differently... |
| annablk |
6.8.2007, 18:31
Сообщение
#4
|
|
Новичок ![]() ![]() Группа: Свои Сообщений: 17 Регистрация: 25.7.2007 Пользователь №: 151 |
Если поле name находится в одной таблице, а другое поле с которым надо сравнивать находится в другой таблице, т.е. используется две таблицы, то можно составить такой запрос: Код SELECT table1.name FROM table1, AAA WHERE table1.name = AAA.name Ты не понял(а) вопрос мне андо из массива взять данные и забить в базу на mssql. А я не знаю синтаксиса. Перечитай еще мое предыдущее сообщение |
| sashkovishe |
6.8.2007, 19:13
Сообщение
#5
|
![]() Администратор форума ![]() ![]() ![]() ![]() Группа: Администраторы Сообщений: 397 Регистрация: 3.12.2006 Из: России Пользователь №: 4 |
Цитата(annablk) Ты не понял(а) вопрос мне андо из массива взять данные и забить в базу на mssql. А я не знаю синтаксиса. Перечитай еще мое предыдущее сообщение Тогда в следующий раз, задавая вопрос, опеши как можно более подробней саму проблему... -------------------- Think differently... |
| annablk |
7.8.2007, 20:27
Сообщение
#6
|
|
Новичок ![]() ![]() Группа: Свои Сообщений: 17 Регистрация: 25.7.2007 Пользователь №: 151 |
Тогда в следующий раз, задавая вопрос, опеши как можно более подробней саму проблему... Хорошо, буду по конкретней. Значит так, есть база DBF-формата(excel'евская) я вычитываю из неё даные в массив $DBFrec[]: $rnum = dbase_numrecords($db); $fnum = dbase_numfields($db); $DBFrec = array(); for ($i = 1; $i <= $rnum; $i++) { $DBFrec[] = dbase_get_record($db, $i); } $src = array(); for( $i=0; $i<count($DBFrec); $i++ ) { $src = $DBFrec[$i]; if( !$src['deleted'] ) { //теперь хочу определенным записям этой таблицы задать id (ниже) $src[12] = 21; $src[13] = 29; $src[14] = 11; $src[15] = 12; $src[16] = 13; $src[17] = 14; } // теперь необходимо(А Я НЕ ЗНАЮ КАК!!!) вывести запись из таблицы A в MSSQL в которой кодовое поле = коду(21,29,11,12,13 или 14) из массива $src[] $SMPrec = array(); $sql = "SELECT g,t,y,u,i,o,,h,k FROM A,B,C WHERE id=$src[$i]"; $res = mssql_query($sql) or die("Can't query \"$sql\"\n"); while( $row=mssql_fetch_array($res) ) { $SMPrec[] = $row; print_r($row); } ОБРАТИТЕ ВНИМАНИЕ НА ЗАПРОС. ОН НЕ РАБОТАЕТ. ПИШЕТ: Warning: mssql_query() [function.mssql-query]: Query failed in my.php on line 240 Can't query "SELECT ... id=" PHP Notice: Undefined offset: 84 in C:\..\my.php on line 239 PHP Warning: mssql_query() [function.mssql-query]: message: Line 2: Incorrect syntax near '='. (severity 15) in C:\..\my.php on line 240 PHP Warning: mssql_query() [function.mssql-query]: Query failed in C:\..\my.php on line 240 |
| sashkovishe |
7.8.2007, 21:11
Сообщение
#7
|
![]() Администратор форума ![]() ![]() ![]() ![]() Группа: Администраторы Сообщений: 397 Регистрация: 3.12.2006 Из: России Пользователь №: 4 |
Вот уже более менее понятно...
Выбор g,t,y,u,i,o,,h,k, тут нужно указать вместе с прификсом таблицы, т.к. используются несколько таблиц... т.е. <имя таблицы> . <имя столбца>... и $src[$i] надо указывать так ”.$src[$i].”... т.е. например должен быть такой запрос (если g,t,y и т.д. из таблице “A”): Код $sql = "SELECT A.g, A.t, A.y, A.u, A.i, A.o, A.h, A.k FROM A,B,C WHERE id=”.$src[$i].”"; Тогда таблицы B,C писать не нужно и прификс таблиц тоже, здесь они все равно не используются... Пробуй... Просто я еще раз говорю с dbf и mssql на php не работал, а по синтаксису, sql запрос вроде верный. -------------------- Think differently... |
| sashkovishe |
7.8.2007, 21:12
Сообщение
#8
|
![]() Администратор форума ![]() ![]() ![]() ![]() Группа: Администраторы Сообщений: 397 Регистрация: 3.12.2006 Из: России Пользователь №: 4 |
Цитата(annablk) // теперь необходимо(А Я НЕ ЗНАЮ КАК!!!) вывести запись из таблицы A в MSSQL в которой кодовое поле = коду(21,29,11,12,13 или 14) из массива $src[]$SMPrec = array(); $sql = "SELECT g,t,y,u,i,o,,h,k FROM A,B,C WHERE id=$src[$i]"; Вот уже более менее понятно... Выбор g,t,y,u,i,o,,h,k, тут нужно указать вместе с прификсом таблицы, т.к. используются несколько таблиц... т.е. <имя таблицы> . <имя столбца>... и $src[$i] надо указывать так ”.$src[$i].”... т.е. например должен быть такой запрос (если g,t,y и т.д. из таблице “A”): Код $sql = "SELECT A.g, A.t, A.y, A.u, A.i, A.o, A.h, A.k FROM A,B,C WHERE id=”.$src[$i].”"; Тогда таблицы B,C писать не нужно и прификс таблиц тоже, здесь они все равно не используются... Пробуй... Просто я еще раз говорю с dbf и mssql на php не работал, а по синтаксису, sql запрос вроде верный. -------------------- Think differently... |
| annablk |
9.8.2007, 16:14
Сообщение
#9
|
|
Новичок ![]() ![]() Группа: Свои Сообщений: 17 Регистрация: 25.7.2007 Пользователь №: 151 |
СПАСИБО. Обязательно попробую.
|
| annablk |
9.8.2007, 18:39
Сообщение
#10
|
|
Новичок ![]() ![]() Группа: Свои Сообщений: 17 Регистрация: 25.7.2007 Пользователь №: 151 |
Подкорректировала запрос. Запустила на выполнение, а в ответ:
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 3422720 bytes) in C:\..\my.php on line 281 PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 3422720 bytes) in C:\..\my.php on line 281 Что мне теперь с этим делать???? |
| sashkovishe |
10.8.2007, 8:08
Сообщение
#11
|
![]() Администратор форума ![]() ![]() ![]() ![]() Группа: Администраторы Сообщений: 397 Регистрация: 3.12.2006 Из: России Пользователь №: 4 |
Цитата Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 3422720 bytes) in C:\..\my.php on line 281PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 3422720 bytes) in C:\..\my.php on line 281 Фатальная ошибка... Что-то не верно в строке 281 и возможно так же в другом участке кода. -------------------- Think differently... |
| gid |
11.8.2007, 17:42
Сообщение
#12
|
|
Администратор форума ![]() ![]() ![]() ![]() ![]() Группа: Главные администраторы Сообщений: 623 Регистрация: 27.11.2006 Из: Россия Пользователь №: 1 |
Подкорректировала запрос. Запустила на выполнение, а в ответ: Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 3422720 bytes) in C:\..\my.php on line 281 PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 3422720 bytes) in C:\..\my.php on line 281 Что мне теперь с этим делать???? Искать утечку памяти! Домой приеду распишу подробнее. -------------------- Хочу жить на о.Самуи
Раскрутка Вашего сайта | Пишу php скрипты на заказ | Регистрация Вашего сайта в каталогах |__| RU-домены за 170 рублей |__| SU-домены за 460 рублей |__| | - | - | - | ICQ: 6-426-630 |
| gid |
12.8.2007, 0:47
Сообщение
#13
|
|
Администратор форума ![]() ![]() ![]() ![]() ![]() Группа: Главные администраторы Сообщений: 623 Регистрация: 27.11.2006 Из: Россия Пользователь №: 1 |
Скорее всего где-либо в скрипте используете массив, в который добавляете все полученные данные, которых очень много... в итоге получается перебор с памятью...
-------------------- Хочу жить на о.Самуи
Раскрутка Вашего сайта | Пишу php скрипты на заказ | Регистрация Вашего сайта в каталогах |__| RU-домены за 170 рублей |__| SU-домены за 460 рублей |__| | - | - | - | ICQ: 6-426-630 |
![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 8.8.2008, 8:26 |