Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql] kilka pytan
Forum PHP.pl > Forum > Bazy danych > MySQL
lamcpp
witam,
zrobiłem bazę w mysqlu, usunąłem z dwóch tabel dane, i teraz gdy wprowadzam nowe dane to klucze głowne (primary key auto_increment not null) numerowane są od numeru trzeciego a nie od pierwszego(ponieważ te 2 pierwsze własnie usunąłem). Czy istnieje sposob aby przywrócić numeracje od numeru pierwszego?Jesli tak to jaki?

I drugi problem: robię na własny użytek aplikacje w php/mysqlu do nauki słówek j. angielskiego.w pierwszej tabeli mam słowko angielskie, w drugiej polskie, i teraz chce połączyć je relacją aby było wiadomo że np słowko car znaczy samochód.
Nie wiem za bardzo jak zakodować w php samo dodawanie relacji.

Kawałek kodu bazy MySQL:
  1. CREATE TABLE tlumaczenie(
  2. id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  3. id_slowo_ang INT NOT NULL,
  4. id_slowo_pl INT NOT NULL,
  5. FOREIGN KEY(id_slowo_ang) REFERENCES slowo_ang(id),
  6. FOREIGN KEY(id_slowo_pl) REFERENCES slowo_pl(id)
  7. )ENGINE=InnoDB;
  8.  
  9. CREATE TABLE slowo_pl(
  10. id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  11. nazwa VARCHAR(40)
  12. )ENGINE=InnoDB;
  13.  
  14. CREATE TABLE slowo_ang(
  15. id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  16. wymowa VARCHAR(40),
  17. nazwa VARCHAR(40)
  18. )ENGINE=InnoDB;


i tutaj kawałek kodu służący do dodawania słówek(w php):
  1. $nazwa_pl = $_POST['nazwa_pl'];
  2. $nazwa_an = $_POST['nazwa_an'];
  3. $wymowa = $_POST['wymowa'];
  4.  
  5. $zapytanie = "INSERT INTO angielski.slowo_ang(nazwa,wymowa) VALUES('$nazwa_an','$wymowa')";
  6. mysqli_query($baza,$zapytanie) or die('Nie można dodać słówka '.$nazwa_an.' Kod błędu: '.mysql_error());
  7.  
  8. $zapytanie = "INSERT INTO angielski.slowo_pl(nazwa) VALUES('$nazwa_pl')";
  9. mysqli_query($baza,$zapytanie) or die('Nie można dodać słówka '.$nazwa_pl.'. Kod błędu: '.mysql_error());
  10.  
  11. $zapytanie = [b]"INSERT INTO angielski.tlumaczenie(id_slowo_ang,id_slowo_pl) VALUES(1,1)";[/b]
  12. mysqli_query($baza,$zapytanie) or die('Nie można dodać llal. Kod błędu: '.mysqli_error());
  13. echo "<br />Dodałem słówko do bazy.<br />";


Problem jest w tym pogrubionym kodzie php, który odpowiada za relacje - w polu values wartośći będą zależne od tego jakie wartosci beda miały klucze głowne tabel slowo_ang i slowo_pl, no i własnie jaką tu funkcje zastosowac albo jak to zrobić zeby te wartosci były identyczne jak klucze tabel?



Crozin
1) A po co Ci to? Było już nie raz dokładnie takie pytanie na forum - poszukaj bo wyjaśniać "dlaczego to by było złe" nie chce się po raz enty
2) mysqli_insert_id
lamcpp
Crozin wykorzystałem tą funkcję, którą podałeś, możecie zerknąć czy ten kod jest prawidłowy?

  1. $objekt = new mysqli(HOST,USER,PASS,BAZA);
  2. $objekt2= new mysqli(HOST,USER,PASS,BAZA);
  3.  
  4. if($_POST['submit'])
  5. {
  6. $slowko_an = $_POST['slowko_an'];
  7. $slowko_pl = $_POST['slowko_pl'];
  8.  
  9. $query = "INSERT INTO angielski.slowo_ang(nazwa) VALUES('$slowko_an')";
  10. $objekt -> query($query);
  11. printf("Nowy rekord ma id %d\n",$objekt -> insert_id);
  12.  
  13. $query = "INSERT INTO angielski.slowo_pl(nazwa) VALUES('$slowko_pl')";
  14. $objekt2 -> query($query);
  15. printf("Nowy rekord ma id %d\n",$objekt -> insert_id);
  16.  
  17. $query = 'INSERT INTO angielski.tlumaczenie(id_slowo_ang,id_slowo_pl) VALUES('.$objekt -> insert_id.','.$objekt2 -> insert_id.')';
  18. $objekt -> query($query);
  19.  
  20. }
  21.  
  22.  
  23. ?>
  24.  
  25. <form action="tom.php" method="post">
  26. Podaj słówko angielskie:<input type="text" name="slowko_an" /><br />
  27. Podaj słowko polskie:<input type="text" name="slowko_pl" /><br />
  28. <input type="submit" name="submit" value="Wyślij"><br />
  29. </form>


I jeszcze zasadnicze pytanie, jakiego teraz zapytania użyc(funkcji) żeby po wylosowaniu jakiegoś słowka i wpisaniu je przez użytkownika program sprawdził je i zamienił w razie błedu na słowo angielskie?
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.