Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][HTML][MYSQL]Pole wyboru na stronie.
Forum PHP.pl > Forum > Przedszkole
marcinmarg
Witam,
Zaczynam dopiero nauke php, mysql. Za zadanie postawiłem sobie stworzenie prostej bazy, formularzy zapisujących do bazy i odczyt. Niestety zatrzymałem się w jednym miejscu.
Mam baze (tabele z której pobieram dane):

  1. CREATE TABLE `pracownicy` (
  2. `id_prac` int(3) NOT NULL AUTO_INCREMENT,
  3. `im_naz` varchar(30) NOT NULL DEFAULT '',
  4. PRIMARY KEY (`id_prac`)
  5. ) TYPE=MyISAM AUTO_INCREMENT=3 ;


Następnie Selecta który pobiera dane username2.php

Kod
<?php
  
  // podłączamy plik  connection.php
  require "connect.php";
  // wywołujemy funkcję connection()
  connection();
  
  // wybór do pola listy z bazy danych
  $query="SELECT id_prac,im_naz FROM pracownicy";
  
  $result = mysql_query ($query);
  echo "<select name=Nazwisko value=''>Imie i Nazwisko</option>";
  // printing the list box select command
  while($nt=mysql_fetch_array($result)){//Array or records stored in $nt
  echo "<option value=$nt[im_naz]>$nt[im_naz]</option>";    
  /* Option values are added by looping through the array */
  }
  echo "</select>";
  
  ?>


efektem tego jest wyświetlenie pola wyboru z Imionami i Nazwiskami, o to dokładnie mi chodzi.
Chciałbym teraz to pole wstawić do strony html, (skrypt pobierający dane ma być w pliku username2.php)
Plik html wygląda tak:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4. <title>Kontrola Szczelnosci</title>
  5. </head>
  6.  
  7. <form action="dane.php" method="post">
  8.  
  9.  
  10.  
  11. <table width="278" border="0" align="center">
  12. <tr>
  13. <td width="72">Zmiana:<br />
  14. &nbsp;</td>
  15. <td width="196"><input type="text" name="zmiana" /><br />&nbsp;</td>
  16. </tr>
  17. <tr>
  18. <td>Oznaczenie:<br />&nbsp;</td>
  19. <td><input type="text" name="oznaczenie" /><br />&nbsp;</td>
  20. </tr>
  21. <tr>
  22. <td>Szczelne:<br />&nbsp;</td>
  23. <td><input type="text" name="Szczelne" /><br />&nbsp;</td>
  24. </tr>
  25. <tr>
  26. <td>Nie szczelne:<br />&nbsp;</td>
  27. <td><input type="text" name="nieszczelne" /><br />&nbsp;</td>
  28. </td>
  29. </tr>
  30.  
  31. </p>
  32. </body>
  33. </html>


w pliku tym jest już kilka formularzy które przekazują dane do dane.php.

Rezultat tego pliku username2.php chciałbym żeby został wstawiony to innej tabeli - dokładnie do kolumny id_prac(ma być wstawione tylko id pracownika a nie imię i nazwisko:

  1. CREATE TABLE `kontrola_szczel` (
  2. `id_kont_szcze` int(11) NOT NULL AUTO_INCREMENT,
  3. `data` date NOT NULL DEFAULT '0000-00-00',
  4. `czas` time NOT NULL DEFAULT '00:00:00',
  5. `zmiana` int(1) NOT NULL DEFAULT '0',
  6. `oznaczenie` char(3) NOT NULL DEFAULT '',
  7. `szczelne` int(2) NOT NULL DEFAULT '0',
  8. `nieszczelne` int(2) NOT NULL DEFAULT '0',
  9. `id_prac` int(2) NOT NULL DEFAULT '0',
  10. `id_maszyny` int(2) NOT NULL DEFAULT '0',
  11. `id_dostawcy` int(2) NOT NULL DEFAULT '0',
  12. PRIMARY KEY (`id_kont_szcze`)
  13. ) TYPE=MyISAM AUTO_INCREMENT=15 ;


Niestety nie mogę sobie z tym poradzić, przeszukałem forum, google i nic, być może źle szukam.



piotrooo89
  1. <?php
  2. echo "<option value=$nt[id]>$nt[im_naz]</option>";
  3. ?>


przekazuj ID a nie im_naz
marcinmarg
Tylko że wyświetlane w formularzu na stronie html ma być imię i nazwisko a dodawane ID do innej tabeli.
Nie bardzo wiem jak za pomocą html-a wyświetlić zawartość tego selecta, a potem dodać do innej tabeli.
erix
Yyyy, ale szczerze mówiąc - nie wiem, w czym masz problem? Jak przekażesz ID osoby do skryptu, to jaki problem potem wyciągnąć konkretne nazwisko po stronie skryptu?
-marcinmarg-
no to że nie wiem jak to przekazać do formularza html i potem jak zapisać do innej tabeli..
piotrooo89
no ale ja dalej nie rozumiem... przecież formularz wyświetlasz w html a żeby go przesłać dalej ustawiać atrybut action na odpowiednią stronę...

wytłumacz to lepiej....
marcinmarg
nie wiem jak w:
  1. <form action="...">
  2. <select name="nazwa">
  3. <option>Tu wpisz pierwszą możliwość</option>
  4. <option>Tu wpisz drugą możliwość</option>
  5. (...)
  6. </select>
  7. </form>

wstawić dane pobrane z username2.php (nie potrafię napisać kodu html który by pobierał dane z username2.php).

i następnie pobrane dane zapisać ten wynik przesłać do bazy, innej tabel INSERT... ?

Może teraz będzie bardziej jasne, może po prostu to tak banalne.
piotrooo89
może zmień rozszerzenie pliku na .php dodaj ten kod pomiędzy znacznikami <?php ... ?>

  1. <form action="...">
  2. <?php
  3.  require "connect.php";
  4.  
  5.  connection();
  6.  
  7.  $query="SELECT id_prac,im_naz FROM pracownicy";
  8.  
  9.  $result = mysql_query ($query);
  10.  echo "<select name=Nazwisko value=''>Imie i Nazwisko</option>";
  11.  
  12.  while($nt=mysql_fetch_array($result))
  13. {
  14.  echo "<option value=$nt[im_naz]>$nt[im_naz]</option>";    
  15.  
  16.  }
  17.  echo "</select>";
  18.  
  19.  ?>
  20. </form>


i dalej nie wiem czy o to chodzi.
marcinmarg
Dokładnie o coś takiego mi chodziło, ale mam jeszcze kolejne pytanie, jak teraz pole select przekazać do zapisu w bazie?
mam już plik dane.php chciałbym dodać do niego dane z Selecta ale id_prac

Kod
<?php
//polaczenie
$connect - mysql_connect("localhost", "root", "krasnal")
or die ("Sprawdz połaczenie");

//wybor bazy
mysql_select_db("kontrola_szczelnosci");

$zmiana = $_POST['zmiana'];
$oznaczenie = $_POST['oznaczenie'];
$szczelne = $_POST['szczelne'];
$nieszczelne = $_POST['nieszczelne'];
$dzien = date("Y-m-d");
$godzina = date("H:i:s");
$query = $_POST['Imie Nazwisko'];


$dane = "INSERT INTO kontrola_szczel (id_kont_szcze, data, czas, zmiana, oznaczenie, szczelne, nieszczelne, id_prac, id_maszyny, id_dostawcy) " .
        "Values ('', '$dzien', '$godzina', '$zmiana', '$oznaczenie', '$szczelne', '$nieszczelne', '', '', '') ";
$results = mysql_query($dane)
or die(mysql_error());


echo "Dane zostały dodane"

?>



czy można za pomocą $imie = $_POST['im_naz']?
piotrooo89
można oczywiście że można...

btw. precyzuj pytania bo naprawdę trudno jest wymyślić o co Ci "biega", ja post wyżej czytałem z 5 razy...
marcinmarg
moja wiedza jest bardzo w tym temacie mizerna, wymyśle sobie coś w głowie i czasem ciężko mi to przelać na fachowy język, jak mówię dopiero zaczynam się z tym bawić, nie wiem czy to dobra droga uczyć się w ten sposób od zera.
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.