olej3232 utworzono 9 listopada 2009 utworzono 9 listopada 2009 (edytowane) Witam do niedawna bawię się php, walczę z formularzem i walidacją. Mam tabele w której są dwa pola [b]id[/b] oraz [b]name[/b] [attachment=8512:baza.png] Chciał bym aby w polu <select> [attachment=8513:select.png] wczytywane były pola z tabeli. Jeśli użytkownik wybierze jakąś opcję, id miało by zapisać się do drugiej bazy. Nie mam pojęcie jak to zrobić, mam nadzieje że ktoś z was pomoże. Z góry dzięki. Poniżej to co udało mi się wskórać przy pomocy wujka google. Ten skrypcik wyciąga dane z tabeli i wyświetla tak jak bym chciał. [code]<select name="op1"> <option value="">Wybierz...</option> <?php $wynik = mysql_query("SELECT * FROM users"); while($row = mysql_fetch_array($wynik)) { ?> <option value="<?php echo $row['user'];?>"><?php echo $row['user'];?></option>; <?php } ?> </select>[/code]
luq komentarz 10 listopada 2009 komentarz 10 listopada 2009 Dokładnie rzecz biorąc Zapytanie: [sql]SELECT id, name FROM users ORDER BY id[/sql] wymienienie kolumn działa zawsze szybciej niż "*", ORDER BY aby posortować po id Twój kod bym lekko przerobił aby było na pierwszy rzut oka widać o co chodzi i oczywiście </form>: [code] <form action="./add.php" method="post"> <select name="op1"> <option value="">Wybierz...</option> <?php $q = 'SELECT id, name FROM users ORDER BY id'; $result = mysql_query( $q ); while( $row = mysql_fetch_array( $result ) ){ echo '<option value="'.$row['id'].'">'.$row['name'].'</option>'; } ?> </select> </form> [/code] Nie używaj znaku " dla stringów (chyba, że to niezbędne/łatwiejsze etc.). Zwalnia to parsowanie z tego względu, że w cudzysłowu szuka zmiennych które nie muszą być konkatowane. W pliku [b]add.php[/b] zajmujesz się dodaniem wpisu do drugiej bazy, i takie pytanie bazy czy tabelki w tej samej bazie? 1
olej3232 komentarz 13 listopada 2009 Autor komentarz 13 listopada 2009 Wszystko zapisywane ma być w jednej bazie. To pole jest jednym spośród kilku znajdujących się w formularzu. Dzięki za pomoc, za chwilkę sprawdzę jak to działa Wielkie dzięki, wszystko działa dokładnie tak jak chciałem, jeszcze tylko kilka linijek kodu i wszystko będzie ok
luq komentarz 14 listopada 2009 komentarz 14 listopada 2009 no to w add.php piszesz coś w stylu: // Powiedzmy że chcemy dodać id do tabelki [b]example[/b], wyglądającej: // [u]id[/u] | userId wykonaj zapytanie: [sql] SELECT id FROM users WHERE id = '$_POST['op1']' AND /* nie ma w tabelce example(chyba że mogą się wpisy w tej tabelce dublować, to wtedy bez tego warunku */ [/sql] jeśli zapytanie zwróci > 0 rekordów (czy tam == 1 można sprawdzać) to wtedy: [sql] INSERT INTO example VALUES( NULL, '$_POST['op1']' ) [/sql] następnie jak chcesz powrócić na poprzednią stronę, bawisz się funkcją header() i $_SERVER['HTTP_REFERER']
olej3232 komentarz 30 listopada 2009 Autor komentarz 30 listopada 2009 Ok Więc mam jeszcze jedno pytanie, czy da się do tabeli [quote]$row = mysql_fetch_array( $result )[/quote] dodać jeszcze jedną opcję? Do pola id wartość np. "a" a do pola name wartość "Wybierz". Kod który napisałem w pierwszym poście działa, ale nie bardzo mi się podoba ten układ
Wciąż szukasz rozwiązania problemu? Napisz teraz na forum!
Możesz zadać pytanie bez konieczności rejestracji - wystarczy, że wypełnisz formularz.