Witam, mam dwie tabele w bazie danych w jednej jest pole z nazwami krajów i ich identyfikatory.
W formularzu mam liste rozwijaną, z danymi pobranymi z bazy danych.
Problem polega na tym, że nie wiem jak dodawać do drugiej tabeli w bazie danych wartosci wybranej w liście wyboru.
Mój formularz wygląda tak:
  1. <?php
  2. function formularz ($wyswietl=1)
  3. {
  4. <form action="wstaw_nowego.php" method="POST" enctype="multipart/form-data" name="f1">
  5. <fieldset><legend>Wprowadź do poniższego formularz swoje dane:</legend>
  6. <table border="0">
  7. <TR><TD>Imię</TD><TD><input type="text" name="imie" maxlength="255" size="30"></TD></TR>
  8. <TR><TD>Nazwisko</TD><TD><input type="text" name="nazwisko" maxlength="255" size="30"></TD></TR>
  9. <TR><TD>Kraj</TD><TD><select name="id_kraj value="id_kraj">';
  10. $connection = @mysql_connect('localhost', 'root', 'tolkien')or die('brak polaczenia z BD');
  11. $db = @mysql_select_db( "biogramy" ) or die ('Nie mogę połączyć się z bazą danych');
  12.  
  13. /* zapytanie do konkretnej tabeli */
  14. $wynik = mysql_query("SELECT * FROM kraj order by kraj") or die('Błąd zapytania');
  15.  
  16. if( mysql_num_rows( $wynik ) > 0) 
  17. {
  18. echo '<option value="0">--------</option>';
  19. /* najpierw inicjujemy początek znaczników <form>, bo inaczej będą się w pentli wywyoływały, to samo z <select> */
  20.  /* Ja używam mysql_fetch_array() - zwraca wiersze spełniające zapytanie*/
  21. while ( $row = mysql_fetch_array( $wynik ) )
  22. {
  23. $id_kraj = $row["id_kraj"];
  24. $kraj = $row["kraj"];
  25. /* tutaj same elementy wyświetlane w polu select, czyli..*/
  26. /* "pole" to oczywiście nazwa kolumny do jakiej chcesz się odwołać*/
  27.  echo '<option value="'.$id_kraj.'">'.$kraj.'</option>';
  28. }
  29. /*na końcu zamykamy tagi*/
  30. echo '</select>';
  31. echo '</TD></TR>';
  32. }
  33. echo '<TR><TD>Miasto</TD><TD><input type="text" name="miasto" maxlength="255" size="30"></TD></TR>
  34. <input type="hidden" name="id_kraj" value="<?php echo $wartosc_id ?>" />
  35. <TR><TD>Email</TD><TD><input type="text" name="email" maxlength="255" size="30"></TD></TR>
  36. <TR><TD>Zdjęcie</TD><TD><input type="hidden" name="MAX_FILES_SIZE" value="8388608" />
  37. <input type="file" name="zalacznik"/>
  38. <input type="submit" value="Wyślij plik"/></TD></TR>';
  39. if (count($_FILES)) {
  40. //Kolejny test, w celu upewnienia sie, że żeczywiście przesłano plik
  41. if (!($_FILES['zalacznik']['size'])) {
  42. echo "<p><font color=\"red\">Błąd: Nie przesłano plików</font><p>\n";
  43. } else {
  44. //Określenie docelowej nazwy, pod którą chcemy zapisać plik
  45. $newname=dirname(_FILE_) .'/'.
  46. basename($_FILES['zalacznik']['name']);
  47.  
  48. //Próba przeniesienia przesłanego pliku do nowej lokalizacji.
  49. if (!(move_uploaded_file($_FILES['zalacznik']['tmp_name'], "img/".$newname))) {
  50. echo "<p><font color=\"red\">Błąd!!! Wystąpił błąd podczas przesyłania pliku o nazwie: {$newname}</font><p>\n";
  51. } else {
  52. //Udało sie!
  53. echo "<p><font color=\"green\">Zrobione! Plik zapisano pod nazwa: {$newname}</font><p>\n";
  54. }
  55. }
  56. }
  57. echo '<TR><TD>Instytut</TD><TD><input type="text" name="instytut" maxlength="255" size="30"></TD></TR>
  58. <TR><TD>Adres uczelni</TD><TD><input type="text" name="adres" maxlength="255" size="30"></TD></TR>
  59. <TR><TD>Opis</TD><TD><textarea rows="20" cols="100" name"opis"></textarea></TD></TR>
  60. </table></fieldset>
  61.  
  62. <div><input type="submit" name="zapisz" value="zapisz"></div>
  63. </form>
  64. ';


a skrypt go obsługujący tak:
  1. <?php
  2. if (!isset ($_POST['zapisz']))
  3. {
  4. formularz();
  5. }
  6.  
  7. //utworzenie krótkich nazw zmiennych
  8. $imie=$_POST['imie'];
  9. $nazwisko=$_POST['nazwisko'];
  10. $id_kraj=$_POST['id_kraj'];
  11. $kraj=$_POST['kraj'];
  12. $miasto=$_POST['miasto'];
  13. $email=$_POST['email'];
  14. $instytut=$_POST['instytut'];
  15. $adres=$_POST['adres'];
  16. $opis=$_POST['opis'];
  17.  
  18. if (!$imie || !$nazwisko)
  19. {
  20. echo 'Nie podano wszystkich potrzebnych danych.<br/>'
  21. .'Wróć do poprzedniej strony i próbuj ponownie.';
  22. echo "$id_kraj";
  23. }
  24.  
  25.  
  26.  
  27. {
  28. $imie=addslashes($imie);
  29. $nazwisko=addslashes($nazwisko);
  30. $id_kraj=addslashes($id_kraj);
  31. $kraj=addslashes($kraj);
  32. $miasto=addslashes($miasto);
  33. $email=addslashes($email);
  34. $instytut=addslashes($instytut);
  35. $adres=addslashes($adres);
  36. $opis=addslashes($opis);
  37. }
  38.  
  39. $link=@mysql_connect(localhost, *****, "******")
  40.  or
  41. die ("Nie można połączyć się z serwer Mysql");
  42.  
  43. mysql_select_db("******", $link) or 
  44. die ("Nie można otworzyć bazy danych");
  45. echo "<br/>";
  46.  
  47.  
  48. $zapytanie = "insert into people (imie, nazwisko, id_kraj, miasto, email, instytut, adres, data_dodania, opis) values ('$imie', '$nazwisko', '$id_kraj', '$miasto', '$email', '$instytut', '$adres', now(), '$opis'); ";
  49.  
  50. $wynik = mysql_query($zapytanie);
  51. if ($wynik)
  52. {
  53. echo '<h1>rezultat wstawienia nowego użytkownika</h1>';
  54. echo "Zostałeś zarejestrowany";
  55. echo '<br/><a href="index.php">wróć do strony głównej</a>';
  56. echo '<br/><a href="wstaw_nowego.php">dodaj następną osobę</a>';
  57. }
  58. else 
  59. {
  60. echo '<h1>rezultat wstawienia nowego użytkownika</h1>';
  61. $message2='<p>Nie zostałeś zarejestrowany z powodu błędu naszego systemu:</p><p>' . mysql_error() . '</p>';
  62. }
  63. if (isset($message))
  64. echo '<font color="red">' . $message. '</font>';
  65. echo '<font color="red">' . $message2. '</font>';
  66. ?>


yahoo.gif Juz sobie poradziłem