Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php + mysql] Formularz - wybór opcji z bazy MySql
Forum PHP.pl > Forum > Przedszkole
Gość_jakamaichi
Witajcie

Mam problem ze zrobieniem następującej rzeczy.
Otóż mam bazę MySql o nazwie TEST, a w niej dwie tabele PRACE i KLIENCI.
Dla tabeli PRACE tworzę formularz dopisujący nowe rekordy i chciałbym, aby w tym formularzu nie dopisywać klienta z palca, tylko zastosować listę rozwijaną, która pobiera nazwy klientów z tabeli KLIENCI. Jak to zrobić, szukam w necie coś takiego i nie mogę znaleźć.

pomóżcie

jakamaichi
wrzasq
ech, na pewno sie dalo znalezc, bo to raczej banalne podstawy, ale zeby sie tak nie wymadrzac, to z braku czasu sam ci podam zarys, bedzie szybciej nizbym szukal:

  1. <?php
  2.  
  3.  
  4. echo '<select name="klient">';
  5.  
  6. // caly ten kod wstawiasz juz wewnatrz formularza w miejsce gdzie ma sie pojawic s
    elect
  7. $klienci = mysql_query('SELECT poleID, poleNazwy FROM KLIENCI');
  8.  
  9. while($klient = mysql_fetch_assoc($klienci) )
  10. {
  11. echo '<option vlaue="' . $klient['poleID'] . '">' . $klient['poleNazwy'] . '</option>';
  12. }
  13.  
  14. echo '</select>';
  15.  
  16.  
  17. ?>
Gość_jakamaichi
OK, dzięki
mam teraz coś takiego:


  1. <?php
  2. // wybór do pola listy z bazy danych
  3. $query="SELECT id,klienci_wybor FROM klienci ORDER BY klienci_wybor ASC";
  4.  
  5. $result = mysql_query ($query);
  6. echo "<select name=karta_klient value=''>Nazwa klienta</option>";
  7. // printing the list box select command
  8. while($nt=mysql_fetch_array($result)){//Array or records stored in $nt
  9.  echo "<option value=$nt[klienci_wybor]>$nt[klienci_wybor]</option>";
  10. /* Option values are added by looping through the array */
  11. }
  12. echo "</select>";
  13.  
  14. ?>


i to działa.
Pojawia się jednak nastepny problem. Mam również formularz do edytowania już wprowadonych danych. Ja wymusić na tej rozwijanej liście, aby był na niej w momencie edycji wybrany KLIENT (ten który jest już przypisany do modyfikowanego rekordu), a nie pierwszy według alfabetu?

Jak to będzie działać, to będę uszczęśliwiony.

pozdrawiam
jakamaichi
nospor
http://forum.php.pl/index.php?showtopic=43089

i na przyszlosc prosze uzywac znacznikow w tytulach
Gość_jakamaichi
Niestety, ale z podanego przykładu nie umiem skorzystać.
Zrobiłem coś takiego, ale kicha:

echo "<option value=$nt[klienci_wybor] ($nt[klienci_wybor]=\"Renault\" ? 'selected=\"selected\"')>$nt[klienci_wybor]</option>";

dalej mam pierwszy na liście wg. alfabetu
Może mi to ktoś wytłumaczyć łopatologicznie, jak mam to zrobić.


jakamaichi
Wykrywacz
Cytat
echo "<option value=$nt[klienci_wybor] ($nt[klienci_wybor]=\"Renault\" ? 'selected=\"selected\"')>$nt[klienci_wybor]</option>";


Czemu robisz
Cytat
  1. <?php
  2. "selected\"
  3. ?>
a nie
  1. <?php
  2. "\selected\"
  3. ?>


Pytam bardziej z ciekawości, bo wzbudziło to moją wątpliwość.
nospor
oj wykrywacz... ty jak cos palniesz.... winksmiley.jpg manual, manual i jeszcze raz manual:
http://pl.php.net/manual/pl/language.types...g.syntax.double

  1. <?php
  2.  
  3.  echo "<option value=\"{$nt['klienci_wybor']}\" ".((isset($_POST['karta_klient']) && $_POST['karta_klient']==$nt['klienci_wybor']) ? 'selected="selected"' : '').">$nt['klienci_wybor']</option>";
  4. ?>
Gość_jakamaichi
przepraszam za upierdliwość, ale dalej nie działa
po skopiowaniu ostaniego kodu, dostaję błąd

Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in c:\usr\krasnal\www\darek\kk_update.php on line 79

już nie wiem, co mam jeszcze zrobić


jakamaichi
nospor
To ja przepraszam. POdalem ci bledny kod, lekkie niedopatrzenie.
  1. <?php
  2. echo "<option value=\"{$nt['klienci_wybor']}\" ".((isset($_POST['karta_klient']) && $_POST['karta_klient']==$nt['klienci_wybor']) ? 'selected="selected"' : '').">".$nt['klienci_wybor']."</option>";
  3. ?>

Aczkolwiek, mogles sprobowac sam go rozwiązac winksmiley.jpg
Gość_jakamaichi
Działa taki oto kod:

  1. <?php
  2. // wybór do pola listy z bazy danych
  3. $_POST['karta_klient']=$tablica['kk_klient'];
  4.  
  5. $query="SELECT id,klienci_wybor FROM klienci ORDER BY klienci_wybor ASC";
  6. $result = mysql_query ($query);
  7. echo "<select name=karta_klient >";
  8.  
  9. // printing the list box select command
  10.  
  11. while($nt=mysql_fetch_array($result)){//Array or records stored in $nt
  12.  
  13. echo "<option value=\"{$nt['klienci_wybor']}\" ".((isset($_POST['karta_klient']) && $_POST['karta_klient']==$nt['klienci_wybor']) ? 'selected=' : '').">".$nt['klienci_wybor']."</option>";
  14. /* Option values are added by looping through the array */
  15. }
  16. ?>


Dzięki za pomoc.
jakamaichi
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.