[MySQL] Zwracanie id rekordu, ktory wlasnie zostal dodany do

0

Witam, mam problem, pisze tablice wynikow gier oparta na php i mysql. Ten highscore zorganizowany jest w ten sposob, ze sa dwie tabele jedna zawiera gry i ich tytuly, a druga wyniki, nicki graczy oraz id gry (z tabeli gry), do ktorej nalezy dany wynik.

W panelu administracyjnym, kiedy administrator kliknie na dodawanie nowej gry, wypelni formularz zawierajacy tytul gry, liczbe wynikow dla danej gry oraz liczbe wynikow danej gry pokazywanych na jednej stronie jest przenoszony do strony, ktora powinna dodac do tabeli gry wszystkie wprowadzone dane, oraz w tabeli wyniki dodac odpowiednia liczbe wynikow pustych. Problem polega na tym, ze nie wiem jak wyciagnac id gry, ktora wlasnie zostala dodana do bazy, tak by w tabeli wyniki przypisac przynaleznosc do tej nowej gry nowoutworzonym wynikom pustym.

Oto kod dla lepszego zrozumienia

                  $zapytanie = "INSERT INTO MIHS_gry SET tytul='$tytul', lwynikow='$lwynikow', lwynikowstr='$lwynikowstr', wlasciciel='$aid' ";
                  $wykonaj = mysql_query ($zapytanie);
                  if ($wykonaj) echo ("Rekord dodany prawidłowo<br>");
                  $miesiace = array('stycznia', 'lutego', 'marca', 'kwietnia', 'maja', 'czerwca', 'lipca', 'sierpnia', 'września', 'października', 'listopada', 'grudnia');
                  $ddata = date ("j.") . " ". $miesiace[date("n")-1] . " " . date ("Y");
                  $dczas = date ("G:i:s");
                  for ($i=0;$i<$lwynikow;$i++)
                        {
                        $zapytanie = "INSERT INTO MIHS_wyniki SET idgry='$id', nick='Pusty', wynik=0, data='$ddata', godzina='$dczas'";
                        $wynik = mysql_query($zapytanie);
                        }

jak mam zmiennej $id przypisac id rekordu, ktory zostal chwile wczesniej dodany do tabeli MIHS_gry?

Z gory dziekuje

0

SELECT LAST_INSERT_ID();

0

Lub z poziomu PHP mysql_insert_id();

0

odgrzebuje stary problem ale ze tak pwoiem nie do konca to działa
czasi mi poakzuje niewlasciey numerek czasami nawet 5 - 6 pozycji do tylu zamiast ostatniego wprowadzenigo rekordu

mam taki kod:

 <?php 
  if (mysql_affected_rows()>0) $id=mysql_insert_id(); 
                printf("%d\n", $id);?>  

Pozdrawiam

0

Hmm... Nie mam pewności, ale tak na oko, to on zwraca inny numerek. To znaczy id w bazie "fizycznie", a nie wartość pola indeksu...

0

Jeśli nie jest ustawiony primary_key to chyba tak - nie wiem, nie testowałem, a zawsze ustawiam.

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