Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Помогите с lastInsertID()
nidevil  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 2
Пользователь №: 42854
На форуме: 7 месяцев, 17 дней
Карма:




Перепробовал все, не могу решить такую задачу: У меня сохраняются данные в две таблице, ну соответственно мне нужно сохранеyный id первой таблицы закинуть во вторую:

таблицы стандарты поэтому приводить их не буду, вот собственно сам код:
Это add.php

<?php
require_once "../lib/invoice_class.php";

$db=new DataBase;
$data=date("Y-m-d H:i:s");
require_once "../lib/parts_class.php";
$class=new Invoice;


$select_parts_db=$db->select("parts", "count>0");
for($i=0;$i<count($select_parts_db);$i++){
$select_parts.="<option valie=".$select_parts_db[$i][id].">".$select_parts_db[$i][name]."</option>" ;
}

if ($_POST[submit]=="save_sale"){
$fio = $_POST['fio'];
$telefon = $_POST['telefon'];
$subtotal = $_POST['subtotal'];
$error_mag=$db->insert("magazin","data, fio, telefon, id_master, oplacheno","'".$data."', '".$fio."', '".$telefon."' , '".$_SESSION[user_id]."', '".$subtotal."'");



for($k=0;$k<count($_POST['name_parts']);$k++)
{
$error_parts=$db->insert("magazin_parts","id_magazin, name_parts, price, kolvo, sum_parts","'".$id."', '".$_POST['name_parts'][$k]."', '".$_POST['price'][$k]."' , '".$_POST['kolvo'][$k]."', '".$_POST['sum_parts'][$k]."'");
}

}

?>

Ну и есть еще в папке lib db_class.php:

<?php
require_once "config_class.php";
class DataBase
{
private $db_host = "db_host";
private $db_name = "db_name";
private $db_user = "db_user";
private $db_pass = "db_pass";

public function __construct()
{
$this->connectDb($this->db_name, $this->db_user, $this->db_pass, $this->db_host);
$this->config = new Config();
}

public function __destruct()
{
$this->db = null;
}

//СОЕДИНЕНИЕ

public function connectdb($db_name, $db_user, $db_pass, $db_host = "localhost")
{
try {$this->db = new \pdo("mysql:host=$db_host;dbname=$db_name", $db_user, $db_pass);}
catch (\pdoexception $e) {echo "database error: " . $e->getmessage();die();}
$this->db->query('set names utf8');
return $this;
}

//КОЛИЧЕСТВО

public function selectCount($table,$where){
if (strlen($where)>1) $query = "select count(*) from $table where $where";
else $query = "select count(*) from $table";
$sth = $this->db->prepare($query);
$sth->execute();
$row = $sth->fetch();
return $row[0];

}

//УДАЛИТЬ

public function delete($table,$where){
if (strlen($where)>1) $query = "delete from $table where $where";
else return false;
$sth = $this->db->prepare($query);
$sth->execute();
return true;

}

//ВЫВОД

public function select($table_name, $where = "") {
if($where) $query = "select * from $table_name where $where";
else $query = "select * from $table_name";
$sth = $this->db->prepare($query);
$sth->execute();
$i = 0;
while($row = $sth->fetch())
{
$data[$i] = $row;
$i++;
}
return $data;
}

//ОБНОВИТЬ

public function update($table_name, $where = "") {
$query = "UPDATE $table_name SET ";
if($where)
{
$query .= "$where";
$sth = $this->db->prepare($query);
$sth->execute();
return true;
}
else false;
}

//ДОБАВИТЬ

public function insert($table, $columns, $value) {
$query = "insert into $table($columns) values ($value)";
$sth = $this->db->prepare($query);
try {
$this->db->beginTransaction();
$result = $sth->execute();


$this->db->commit();


} catch (\PDOException $e) {
$this->db->rollback();
echo "Database error: " . $e->getMessage();
die();
}
if (!$result) {
$info = $sth->errorInfo();
printf("Database error %d %s", $info[1], $info[2]);
die();
}
return $result;

}

}



?>

Куда сунуть этот lastinsertid() просто сил нет, echo из classa могу вывести, а чтоб в бд записать просто трандец. рисует ноль и все...
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
nidevil  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 2
Пользователь №: 42854
На форуме: 7 месяцев, 17 дней
Карма:




Для работы использую собственно DBO так удобней и проще. Незнаю почему не стал делать на фреймворке, просто здесь все приятно и вручную написано))
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 25980
Пользователь №: 21350
На форуме: 6 лет, 8 месяцев, 18 дней
Карма: 725

Не курю:
1 год, 2 месяца, 5 дней


Цитата
DBO
sad.gif

PDO...

тебя кто научил запросы в цикле слать?

мультизапрос то никак?

http://php.net/manual/ru/pdo.lastinsertid.php

в чём трудности?


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса