Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> не простая ф-ция... Фактически копирование Тэйбла 
:(
    Опции темы
HappyMan
Дата 2.8.2005, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 347
Регистрация: 29.7.2004

Репутация: нет
Всего: 2



в ДБ mysql есть 2 тэйбла:

1) имя, фамилия, возраст
2) ид, имя, фамилия, адрес

массив $a: добыт - mysql_fetch_assoc из 1-го тейбла
$a['name'] //ivan
$a['surname'] //ivanov
$a['age'] //25

нужно добыть название полей теэбла номер 2, и занести в них соответствующие значения массива $a, если же в массиве нет такого элемента - принять его за ""

Обьясню на примере:

myFunc("table2", $a);

результат работы процедуры:
в Теэбл 2 появляется такая запись:
ид=1 //поле ид уникальное, возрастающие... ну вобщем как обычно - поидеи если перед вызовом про-ры написать $a['id']="" то ид присвоится автоматом
имя=иван поле ИМЯ совпадают (name) - т.е они есть и в массиве $a и в названии поля табла 2
фамилия=иванов аналогично как с именем
адрес="" как видим в массиве $a нету элемента с названием 'adress' поэтому в ОДНОИМЕННОЕ поле табла 2 заносим ""(пустая строка)

ну вобщем вот такая вот задача. буду рад любой помощи smile

Это сообщение отредактировал(а) HappyMan - 2.8.2005, 19:30


--------------------
Цитата
Желательно на 100%.
© Mal Hack
PM MAIL   Вверх
Mal Hack
Дата 2.8.2005, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 11
Всего: 261



Цитата(HappyMan @ 2.8.2005, 20:24)
нужно добыть название полей

Названия полей у тебя - name, surname, age.
А слабо сделать запрос типа:
Код

SELECT t1.`*` , t2 . `*` FROM `table1` , `table2` GROUP BY `name` , `surname`

PM ICQ   Вверх
HappyMan
Дата 2.8.2005, 20:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 347
Регистрация: 29.7.2004

Репутация: нет
Всего: 2



Mal Hack
я немного не правильно выразился: предположим значения полей заранее не извесны... smile
т.е получится перебор.. добытых полей.. проверка - если такой в $a.. если есть..
Добавлено @ 20:36
$a = mysql_fetch_assoc


--------------------
Цитата
Желательно на 100%.
© Mal Hack
PM MAIL   Вверх
Mal Hack
Дата 2.8.2005, 20:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 11
Всего: 261



НИКТО НИКОГДА НЕ ЗАВЯЗЫВАЕТ ТАКИЕ ВЕЩИ КАК ИМЕНА ПОЛЕЙ !!!!
mysqlq_field_*();
PM ICQ   Вверх
HappyMan
Дата 2.8.2005, 22:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 347
Регистрация: 29.7.2004

Репутация: нет
Всего: 2



Mal Hack
никто? почему? что в этом такого? мне вот для дела надо smile

Ведь должна быть ф-ция которая возвращает значение полей, например в массиве?
$b = getFieldsName(...);

$b[0] //id
$b[1] //name...
...
Добавлено @ 22:43
кое что в документации нашел:
Код

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');

$fields = mysql_list_fields("database1", "table1", $link);
$columns = mysql_num_fields($fields);

for ($i = 0; $i < $columns; $i++) {
    echo mysql_field_name($fields, $i) . "\n";
} 
?>


Замечание: Функция mysql_list_fields() устарела. Предпочтительным является исползьзование SQL-запроса SHOW COLUMNS FROM table [LIKE 'name'].

Добавлено @ 22:44
ну вот уже совсем немного осталось smile


--------------------
Цитата
Желательно на 100%.
© Mal Hack
PM MAIL   Вверх
HappyMan
Дата 3.8.2005, 18:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 347
Регистрация: 29.7.2004

Репутация: нет
Всего: 2



напишите как сделать перебор такого массива:
$a['name'] //ivan
$a['surname'] //ivanov
$a['age'] //25

?


--------------------
Цитата
Желательно на 100%.
© Mal Hack
PM MAIL   Вверх
Mal Hack
Дата 3.8.2005, 18:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 11
Всего: 261



foreach уже не модно?
PM ICQ   Вверх
HappyMan
Дата 3.8.2005, 20:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 347
Регистрация: 29.7.2004

Репутация: нет
Всего: 2



готово! smile

Код

function CreateRec2( $utable, $ar ) {
    require "vars.php";
    $b = false;
    $cid = mysql_pconnect( $hostname, $username, $password );
    if ( !mysql_select_db( "db", $cid ) ) return FALSE;
    else {
        $sql = "INSERT INTO `".$utable."` VALUES(";            
        $fields = mysql_list_fields("db", $utable);    
        $columns = mysql_num_fields($fields);    
        for ($i = 0; $i < $columns; $i++) {    
            foreach ($ar as $k => $v) {
                if ( $k == mysql_field_name($fields, $i) ) {
                    if ( $i == 0 ) {
                        $sql = $sql."'".$v."'";
                    } else {
                        $sql = $sql.",'".$v."'";
                    }
                $b = true;
                }
            }
                        
            if ( !($b) ) {
                if ( $i == 0 ) {
                    $sql = $sql."''";                
                } else {
                    $sql = $sql.",''";
                }
            } else $b = false;
        }        
        $sql = $sql.")";

        mysql_query($sql) or die(mysql_error());
    }
}



Будет хорошо если кто-нить кто знает ПХП лучше меня, сообщил бы об ошибках, местах где можно оптимизировать (ускорить выполнение) ну вобщем жду ващих коментов


--------------------
Цитата
Желательно на 100%.
© Mal Hack
PM MAIL   Вверх
Mal Hack
Дата 3.8.2005, 21:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 11
Всего: 261



HappyMan даю подсказку:
$var = (условие) ? значение если TRUE : значение если FALSE ;
PM ICQ   Вверх
HappyMan
Дата 3.8.2005, 21:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 347
Регистрация: 29.7.2004

Репутация: нет
Всего: 2



Mal Hack
чего-то я не вьезжаю smile


--------------------
Цитата
Желательно на 100%.
© Mal Hack
PM MAIL   Вверх
Mal Hack
Дата 3.8.2005, 21:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 11
Всего: 261



Код
                    if ( $i == 0 ) {
                        $sql = $sql."'".$v."'";
                    } else {
                        $sql = $sql.",'".$v."'";
                    }

замени на:
Код

$sql .= ( $i == 0 ) ? "'".$v."'" :",''";

и второе там немножко другие строки
PM ICQ   Вверх
HappyMan
Дата 3.8.2005, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 347
Регистрация: 29.7.2004

Репутация: нет
Всего: 2



Mal Hack
ого! smile я б не догадался...
это типа быстрее работать будет или красивей выглядеть?
больше не каких замечаний нету?


--------------------
Цитата
Желательно на 100%.
© Mal Hack
PM MAIL   Вверх
Mal Hack
Дата 3.8.2005, 21:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 11
Всего: 261



Цитата(HappyMan @ 3.8.2005, 22:42)
это типа быстрее работать будет или красивей выглядеть?

И то и то, хотя это смотря для каких задач.

остальное подпадает под: "Я так не пишу"
PM ICQ   Вверх
HappyMan
Дата 4.8.2005, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 347
Регистрация: 29.7.2004

Репутация: нет
Всего: 2



Mal Hack
хммм.... неужели так плохо, не грамотно написано?
Добавлено @ 18:19
Mal Hack
вроде поставленная задача выпонена, процедура работает... что ж тут такого
Цитата
"Я так не пишу"
?

Это сообщение отредактировал(а) HappyMan - 4.8.2005, 18:20


--------------------
Цитата
Желательно на 100%.
© Mal Hack
PM MAIL   Вверх
Mal Hack
Дата 4.8.2005, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 11
Всего: 261



Цитата(HappyMan @ 4.8.2005, 19:18)
хммм.... неужели так плохо, не грамотно написано?

Да нет smile
А "я так пишу" значит что я так уже давно не пишу и мне не очень нравится когда так оформлен код, я привык с ООП работать smile
PM ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0614 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.