x-kom hosting

pobranie danych z bazy <select>

olej3232
utworzono
utworzono (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
komentarz

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?

  • Dobra wypowiedź 1
olej3232
komentarz
komentarz

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
komentarz

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']

  • 3 tygodnie później...
olej3232
komentarz
komentarz

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.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Strona wykorzystuje pliki cookies w celu prawidłowego świadczenia usług i wygody użytkowników. Warunki przechowywania i dostępu do plików cookies możesz zmienić w ustawieniach przeglądarki.