Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dodanie rekordu do dwoch tabel
Forum PHP.pl > Forum > Bazy danych
PimP517
Witam mam taki skrypcik ktory dodaje rekord do amx_amxadmins i dziala ale nie moge zrobic aby skrypt dodawal takie samo "id" do drogiej tabeli
  1. <?
  2. $id=$_POST['id'];
  3. $username=$_POST['username'];
  4. $password=$_POST['password'];
  5. $access=$_POST['access'];
  6. $flags=$_POST['flags'];
  7. $nickname=$_POST['nickname'];
  8. $steamid=$_POST['steamid'];
  9. $ashow=$_POST['ashow'];
  10. $created=$_POST['created'];
  11. $expired=$_POST['expired'];
  12. $days=$_POST['days'];
  13.  
  14.  
  15. $query = "INSERT INTO `amx_amxadmins` (id, username, password, access, flags, nickname, steamid, ashow, created, expired, days) VALUES ( '$id','$username','$password','z','a','$nickname','$steamid','0','0','0','0')";
  16. $result = @mysql_query($query);
  17. $query = "INSERT INTO `amx_serwer_admins` (id, server_id, acces, stat) VALUES ( '$id','4','a','no')";
  18. $result = @mysql_query($query);
  19.  
  20. if ($result){ //jezeli nie wyst?pi?y ?adne bl?dy
  21. $message .= 'Twoje dane zosta?y dodane do bazy';
  22. }else{
  23. $message .= 'Wyst?pi? b??d. Przepraszamy za utrudnienia<br />';
  24. }
  25. if(isset($message)){
  26. echo $message;
  27. }
  28. ?>
thek
A chociaż gdziekolwiek pobierasz sobie jakie id dostał tenże nowy rekord w pierwszej tabeli? Bo ja nie widzę...
PimP517
Podpowiesz mi jak to zrobic bo ja zielony w tym temacie jestem sad.gif,



doczytalem ze przez mysql_insert_id(). Ale kompletnie nie wiem jak tego uzyc.

Mecze sie z tym 3 godzini juz albo i wiecej, sad.gif, macie jakis kurs maly o tym?
ces
ale poco masz pobierac id z poprzedniego insertu skoro id insertujesz takie samo ze zmiennej $id, tak ? o to id Ci chodzi czy o cos innego, bo jezeli o to to musi byc takie same.

ps. po co robisz kropke po $message skoro wczesniej jej nigdzie nie ma ?
PimP517
Ale do bazy "amx_serwer_admins" dodaje mi ID=0 za kazdym razem.


Zroblilem cos takiego

  1. $LastID = mysql_result(mysql_query('SELECT LAST_INSERT_ID(id) FROM amx_amxadmins;'));
  2.  
  3.  
  4. $querya =
  5. "INSERT INTO `amx_admins_servers` (admin_id, server_id, custom_flags, use_static_bantime) VALUES ( '$LastID','4','a','no')";
  6. $result = @mysql_query($querya);



Teraz mi dodaje ID=1
gambler
Widocznie w strukturze bazy danych pole z tabeli amx_amxadmins nie ma zaznaczonego Autoincrement

i wtedy nie podajesz w zapytaniu tego $LastID

Cytat
$querya =
"INSERT INTO `amx_admins_servers` (admin_id, server_id, custom_flags, use_static_bantime) VALUES ( '$LastID','4','a','no')";


tylko

Kod
$querya =
"INSERT INTO `amx_admins_servers` (admin_id, server_id, custom_flags, use_static_bantime) VALUES ( '','4','a','no')";

a dopiero później jeżeli chcesz dodać to ostatnie id do jakiejś innej tabeli używasz
Kod
$id = mysqli_insert_id($con);

gdzie $id to bedzie własnie to lastid;
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.