Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: formularz w php z listą z tabeli mysql
Forum PHP.pl > Forum > PHP
wojciech1
Jak zrobić formularz, w którym do wartości dla jednego z pól bierzemy wartości z tablicy mysql?

Mam dwie tablice w bazie:
o(o_id, o_nazwa, o_miasto)
m(m_id. m_nazwa)

chcę stworzyć formularz do wyselekcjonowania tych rekordów z tabeli o, które mają o_miasto=m_nazwa
w polu o_miasto chcę korzystać z rozwijanej listy wartości pochodzącej z m_nazwa
Cysiaczek
Poszukaj na forum, bo taki topików sa dziesiątki - poszukiwania proponuję zacząć w dziale o bazach danych smile.gif
Generlanie zasada jest prosta: Pobierasz potrzebne dane z bazy, a nastepjie podstawiasz je do pól formularza.

Pozdrawiam.
wojciech1
rzeczywiście są przykłady ale nie znalazłem (o dziwo) dokładnie takiego
zrobiłem formularz, zrobiłem listę
// Wypełnianie listy rozwijanej- tablicy row.
$query = "SELECT * FROM m ORDER BY m_nazwa ASC";
$result = @mysql_query ($query);
while ($row = mysql_fetch_array ($result, MYSQL_NUM))
{
echo "<option value=\"$row[0]\">";
ale nie potrafię zaznaczonej pozycji z tej listy wpisać w pole formularza i przypisać do jakiejś zmiennej
skowron-line
Cytat(wojciech1 @ 26.08.2006, 07:49 ) *
// Wypełnianie listy rozwijanej- tablicy row.
$query = "SELECT * FROM m ORDER BY m_nazwa ASC";
$result = @mysql_query ($query);
while ($row = mysql_fetch_array ($result, MYSQL_NUM))
{
echo "<option value=\"$row[0]\">";

  1. <?php
  2. $query = "SELECT * FROM m ORDER BY m_nazwa ASC";
  3.  $result = @mysql_query ($query);
  4.  echo"<select mame=costam>";
  5. while ($row = mysql_fetch_array ($result, MYSQL_NUM)) 
  6. {
  7. echo "<option value=costam>costam</option>";
  8.  }
  9.  echo"</select>";
  10. ?>
wojciech1
mam taki skrypt, wyświetla się rozwijana lista, nie potrafię jej użyć w zapytaniu do tablicy o
czyli wpisać w pole formularza zaznaczonej na liscie wartości

[php]
<?php
require_once ('./mysql_connect.php'); // Połącz się z bazą danych.
?>

<form action="pokaz_o1.php" method="post">

<p>Miasto:
<select name="miasto[]" multiple="multiple" size="5">
<?php
// Wypełnianie listy rozwijanej- tablicy row.
$query = "SELECT * FROM m ORDER BY m_nazwa ASC";
$result = @mysql_query ($query);
while ($row = mysql_fetch_array ($result, MYSQL_NUM))
{
echo "<option value=\"$row[0]\">";
// Zaznaczanie poprzednio wybranych danych (w razie potrzeby).
if (isset($_POST['miasto']) && (in_array($row[0], $_POST['miasto'])))
{
echo'> ';
}
echo "$row[1]</option>\n";
}
?>
</select>
</p>

<input type="hidden" name="submitted" value="$row[1]" />
<div align="center"><input type="submit" name="submit" value="Przeslij" /></div>

</form>

<?php

// Utwórz zapytanie.
$query = "SELECT o_nr, o_nazwa, o_adres_m, o_id FROM o ORDER BY o_nazwa ASC ";
$result = mysql_query ($query); // Run the query.


// Tworzenie zapytania.
$query = substr ($query, 0, -2); // Odcinanie ostatniego przecinka i spacji.
$result = mysql_query($query);
$num = mysql_num_rows($result);

if ($num > 0) { // Jeżeli zapytanie zostało wykonane poprawnie, pokaż rekordy.

echo "<p>Obecnie zarejestrowanych jest $num oddzialow.</p>\n";

// Nagłówek tabeli.
echo '<table align="center" cellspacing="0" cellpadding="5">
<tr>
<td align="left"><b>Edytuj</b></td>
<td align="left"><b>Usuń</b></td>
<td align="left"><b>nr o</b></td>
<td align="left"><b>nazwa o</b></td>
<td align="left"><b>miasto</b></td>
</tr>';
echo '</table>';

mysql_free_result ($result); // Zwolnij zasoby.

} else { // Jeżeli zapytanie nie zostało wykonane pomyślnie.
echo '<p class="error">Brak zarejestrowanych oddzialow.</p>';
}
?>


<?php
mysql_close(); // Zamknij połączenie z bazą danych.
?>

załączam zawartość pliku. oo.sql, który można użyć w mysqladmin do importu, aby założyć tabele (należy jedynie stworzyć samą bazę oo


-- phpMyAdmin SQL Dump
-- version 2.8.0.3
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Czas wygenerowania: 24 Sie 2006, 15:53
-- Wersja serwera: 5.0.20
-- Wersja php: 5.1.2
--
-- Baza danych: `oo`
--

-- --------------------------------------------------------

--
-- Struktura tabeli dla `m`
--

CREATE TABLE `m` (
`m_id` smallint(5) unsigned NOT NULL auto_increment,
`m_nazwa` varchar(50) character set latin1 collate latin1_general_ci NOT NULL,
`m_woj` varchar(25) character set latin1 collate latin1_general_ci default NULL,
PRIMARY KEY (`m_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci COMMENT='miasto' AUTO_INCREMENT=8 ;

--
-- Zrzut danych tabeli `m`
--

INSERT INTO `m` VALUES (1, 'm1', NULL);
INSERT INTO `m` VALUES (2, 'm2', NULL);
INSERT INTO `m` VALUES (3, 'm3', NULL);
INSERT INTO `m` VALUES (4, 'm4', NULL);
INSERT INTO `m` VALUES (5, 'm5', NULL);
INSERT INTO `m` VALUES (6, 'm6', NULL);
INSERT INTO `m` VALUES (7, 'm7', NULL);

-- --------------------------------------------------------

--
-- Struktura tabeli dla `o`
--

CREATE TABLE `o` (
`o_id` smallint(5) unsigned NOT NULL auto_increment,
`o_nr` varchar(5) NOT NULL default '0',
`o_nazwa` varchar(50) NOT NULL default '_',
`o_krs_pdf` varchar(10) default NULL,
`o_adres_k` varchar(6) NOT NULL default '__-___',
`o_adres_m` varchar(25) default NULL,
`o_adres_u` varchar(25) default NULL,
`o_tel1` varchar(12) default NULL,
`o_tel2` varchar(12) default NULL,
`o_email` varchar(25) default NULL,
`o_www` varchar(25) default NULL,
`o_krs` varchar(50) default NULL,
PRIMARY KEY (`o_id`),
KEY `o_adres_m` (`o_adres_m`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;

--
-- Zrzut danych tabeli `o`
--

INSERT INTO `o` VALUES (1, '1', 'o_n1', NULL, '__-___', 'm1', NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO `o` VALUES (2, '2', 'o_n2', NULL, '__-___', 'm2', NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO `o` VALUES (3, '3', 'o_n3', NULL, '__-___', 'm3', NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO `o` VALUES (4, '4', 'o_n4', NULL, '__-___', 'm4', NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO `o` VALUES (5, '5', 'o_n5', NULL, '__-___', 'm4', NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO `o` VALUES (6, '6', 'o_n6', NULL, '__-___', 'm4', NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO `o` VALUES (7, '7', 'o_n7', NULL, '__-___', 'm4', NULL, NULL, NULL, NULL, NULL, NULL);
nospor
Ja tylkow w kwestii formalnej

@wojciech1 poprawiaj bbcode w swoich postach. tego co masz teraz sie nie da analizowac.
Dla php bbcode php, dla bazki bbcode sql

Pousuwaj zbędną tresc z kodu. Html na naglowki tabeli to jedna ze zbednych rzeczy
skowron-line
Cytat(wojciech1 @ 26.08.2006, 08:34 ) *
nie potrafię jej użyć w zapytaniu do tablicy o
czyli wpisać w pole formularza zaznaczonej na liscie wartości


jest tak ze masz <select name=lista_rozwijana> i name to zmienna a jak masz
<option value=jakas_wartosc> to to jest wartosc tej zmiennej

czyli normalnie robisz zapytanie uzywajac zmiennej $lista_rozwijana a ona przyjmnie wartosc z poja ktore wybrales w selekcie

p.s oczywiscie zawsze moge sie mylic
wojciech1
  1. <?php 
  2. require_once ('./mysql_connect.php'); // Połącz się z bazą danych.
  3.  
  4.  
  5. ?>
  6.  
  7. <form action="wybor1.php" method="post">
  8.  
  9.  <p>Miasto:
  10. <select name="miasto[]" multiple="multiple" size="5">
  11.  
  12. <?php 
  13.  // Wypełnianie listy rozwijanej- tablicy row.
  14.  $query = "SELECT * FROM m ORDER BY m_nazwa ASC";
  15.  $result = @mysql_query ($query);
  16.  while ($row = mysql_fetch_array ($result, MYSQL_NUM)) 
  17. {
  18. echo "<option value="$row[0]">";
  19. // Zaznaczanie poprzednio wybranych danych (w razie potrzeby).
  20. if (isset($_POST['miasto']) && (in_array($row[0], $_POST['miasto']))) 
  21. {
  22. echo'> ';
  23. }
  24. echo "$row[1]</option>n";
  25. }
  26. ?>
  27.  
  28. </select>
  29.  </p>
  30.  
  31. <input type="hidden" name="submitted" value="$row[1]" />
  32. <div align="center"><input type="submit" name="submit" value="Przeslij" /></div>
  33.  
  34. </form>
  35.  
  36. <?php
  37.  
  38. // Utwórz zapytanie.
  39. $query = "SELECT o_nr, o_nazwa, o_adres_m, o_id FROM o ORDER BY o_nazwa ASC ";
  40. $result = mysql_query ($query); // Run the query.
  41. $num = mysql_num_rows($result);
  42.  
  43. mysql_free_result ($result); // Zwolnij zasoby.
  44.  
  45. ?>


wykonuję zapytanie do bazy
  1. <?php
  2. $query = "SELECT o_nr, o_nazwa, o_adres_m, o_id FROM o WHERE questionmark.gifquestionmark.gifquestionmark.gifquestionmark.gif ORDER BY o_nazwa ASC ";
  3. ?>


jak do WHERE przenieść wybór z listy?
Coyote
  1. <?php
  2. $query = "SELECT o_nr, o_nazwa, o_adres_m, o_id FROM o WHERE twoje_pole_w_bazie = $tw
    oja_zmienna_z_formularza ORDER BY o_nazwa ASC "
    ;
  3. ?>
wojciech1
właśnie o te zmienną lub wyrażenie mi chodzi, o konkretny zapis
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.