Kopowanie danych z jednej tabeli do drugiej

0

Chcialbym skopiowac sobie niekture dane jednej tabel w bazy danych MYSQL do 2 tabeli jednoczesnie wpisujac jakies zulepnie inne dane do tej tabel. Dodatkow niktore pola obu tabel roznia sie

Wiem zagmatwane ale nie wiem jak to opisac .
Ale postaram sie wytlumaczyc na przykladzie

Tabela nr 1
Posiada pola: id, username , e-mail ,adres, gg , wiek , data, rok

Tabele nr 2
Posiada pola: id, user, email , widok, gg , status , ryzyko

I teraz chce skopiowac jedynie id=>id , username=>user, e-mail=>email , gg=>gg

Pola z tableli 1 " adres, wiek , data, rok " nie kopije bo sa nie potrzebne mi

Ale chce aby pola w tabeli nr 2 " widok, status , ryzyko" wygladaly odpowiednio np:

widok = 1
status = '' - czyli puste
tyzyko = NULL

Czy mozna to jaklos zrobić ???
W jednym czy tam kilku etapach ???
Jakie zaptanie nalezy wykonac ???

Aha czy jesli typy sa inne to moze cos sie nie udac... W rzypadku np gdy w jednej tabeli jest varchar(15) a drugiej varchar(35) lub w jednej TEXT a drugiej varchar(15)

0

Witam,

zaczne od tyłu... jeśli masz dwa różne typy np w tabeli pierwszej varchar(10) a w drugiej varchar(5) to jesli kopiujesz w peirwszej do drugiej to ci bedzie obcinało wartość do 5 znaków ;P
Co do domyślnych wartości pozostałych pól przykopiowaniu... po prostu ustaw we właściwościach pola Default_value na odpowiadajcą ci;>
A co do kopiowania, oto jeden ze sposobów:

$query = "SELECT * FROM tabela_pierwsza WHERE id='id_recordu_ktory_chcesz skopiować'"; // zakładam ze chcesz tylko ejden record przekopiować ale jeśli całą tabele to w pętli jedziesz i bez WHERE rzecz jasna
$result = mysql_query($query);
$row = mysql_fetch_array($result);
$query = "INSERT INTO druga_tabela SET id='".$row['id']."', name='".$row['username']."', email='".$row['e*mail']."', gg='".$row['gg']."'";
mysql_query($query);

Pozdr.
GM

0

hmmm powiem szczerze to nie mam pojecia jak to <ort>w ogóle</ort> wykorzystac bo to trzeba jaos rozbudowac ... chodzi mi o cos co wpisalbym w phpmyadmin i po sprawie - no chyba ze to co napisales tez tam zadziala ;P

a co do tego co chce skopiowac ... to chodzi mi o kopiowanie całej tabeli ktora zawiera ponad 100 rekordow.

To co napisales chyba takze nie zalatwo sprawy z tym ze chce skopiowac jedynie id username, e-mail, gg z tabeli 1
Ale domyslam sie jak to bedzie wygladalo :

SELECT id,username, e-mail, gg FROM tabela_pierwsza

dobrze mysle ????

Do tego jeszcze ta petle .. jak to zapetlic ???

aha i na koniec sprawa stalych wartosci ktore chce dodac do tej 2 tabeli gdzie bede to kopiowal

INSERT INTO druga_tabela SET id='".$row['id']."', name='".$row['username']."', email='".$row['e*mail']."', gg='".$row['gg']."'" ;

czy tutaj jesli chce dodac w kazdym rekordzie widok ktore ma wynosic np 1 to to bedzie wygladac tak :

INSERT INTO druga_tabela SET id='".$row['id']."', name='".$row['username']."', email='".$row['e*mail']."', gg='".$row['gg']."', widok='1';

</b>
0

Ja podalem fragment kodu w PHP napisanego... a tu widać ty chyab nie w tych klimatach się obracasz ;P

<?php
mysql_connect("host", "username", "password");
mysql_select_db("twoja_baza";
$query = "SELECT * FROM tabela_pierwsza";
$result = mysql_query($query);
while($row = mysql_fetch_array($result))
{
  $query = "INSERT INTO druga_tabela SET id='".$row['id']."', name='".$row['username']."', email='".$row['e-mail']."', gg='".$row['gg']."'";
  mysql_query($query);
}
?>

Takspreparowany skrypt wrrzucić na twój serverek i odpalić, skopiuje on cała tabele "tabela_pierwsza" do tabeli "tabela_druga" które pbie są w bazie "twoja_baza" oczywiście odpowiednie pola do odpowiednich.

Pozdr.
GM

0

To po INSERT moze być SET (cos mi to pachnie UPDATE) ?


To po INSERT moze być SET (cos mi to pachnie UPDATE) ?

A jest znalazłem w manualu :-)

1 użytkowników online, w tym zalogowanych: 0, gości: 1