Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] Dwie wartosci z formularza select
Forum PHP.pl > Forum > Przedszkole
Frugo75
Dzien dobry. Proszę o pomoc.

Mam taki formularzyk

  1. $query="SELECT DISTINCT nazwa_klubu, id FROM kluby ORDER BY nazwa_klubu ASC";
  2. $result = mysql_query ($query);
  3. echo "<select name='gospodarz'>";
  4. echo "<option value=''>Gospodarz</option>";
  5.  
  6.  
  7. while($nt=mysql_fetch_array($result))
  8. {
  9.  
  10. echo "<option value='$nt[nazwa_klubu]'>$nt[nazwa_klubu]</option>";
  11.  
  12. }
  13.  
  14. echo "</select>";


Klub ma w bazie jeszcze oprocz nazwy swoje ID.
Jak w tym samym formularzu powiazac ID z nazwa klubu, tak aby w dalszych operacjach to ID "ciągnęło" się za nazwą klubu.
Później to chyba Foreign Key, jak już będę wstawiał mecze?
Będę wdzięczny za pomoc, bo sezon NFL już niebawem;)
CuteOne
  1. echo '<select name="gospodarz">';
  2. echo '<option value="">Gospodarz</option>';
  3.  
  4.  
  5. while($nt=mysql_fetch_array($result))
  6. {
  7.  
  8. echo '<option value="'.$nt['id'].'">'.$nt['nazwa_klubu'].'</option>';
  9.  
  10. }
  11. echo '</select>';


Naucz się używać apostrofy w tablicach
Frugo75
Dziękuję. Zaraz sprawdzę, czy działa.
Tylko zamiast wklejać, wolałbym zrozumieć co zrobiłeś. wink.gif

Coś nie działa... Dopytam. To pole w POST ma name=gospodarz. I jak odbieram te dane, to pod jakim name pobrac to ID?
Czy coś zamieszałem?
poli25
jeśli
Cytat(CuteOne @ 25.06.2013, 10:56:02 ) *
  1. $nt=mysql_fetch_array($result))
  2.  


to wtedy chyba <option value='$nt[0]'>$nt[1]</option>

questionmark.gifwink.gif
CuteOne
@poli25 fetch_array zwróci
  1. 0 => 1,
  2. 'id' => 1,
  3. 1 => 'klub',
  4. 'klub' => 'klub'
  5. )


@frugo to są podstawy podstaw. Weź się za czytanie poradników..
nospor
Cytat
To pole w POST ma name=gospodarz. I jak odbieram te dane, to pod jakim name pobrac to ID?

print_r($_POST);
i bedziesz widzial co leci postem

I jak wspomnial poprzednik - wez sie zapoznaj z podstawami formularzy. Forum nie jest na wyjasnianie takich podstaw, ktore sa ogolno dostepne w necie
Frugo75
@CuteOne
Czytam, czytam i oglądam... Duzo juz zrobilem, w wieku 40 lat zachcialo mi sie nauczyc programowania i mam juz prawie caly system do relacji na zywo z NFL. Tylko z tym ID nie moge sobie poradzic. Forum rozleniwia, wczesniej znalazlem wszystko co chcialem z google...wink.gif

Nie wstawia mi się do bazy mecz. print-r zwraca tak:
  1. Array ( [gospodarz] => 117 [gosc] => Philadelphia Eagles
.
Na razie to co podał mi CuteOne wstawiłem do pola "gospodarz'.
Co zrobić żeby działało?
nospor
Trudno zeby sie wstawial do bazy, skoro kod co tu podales nic nie wstawia do bazy....
Frugo75
Uzupełniam.


  1. @mysql_query("INSERT INTO mecze (gospodarz, gosc,) VALUES ('$gospodarz','$gosc') ");
nospor
Ty nie uzupelniaj tylko pokaz caly kod

I zapoznaj sie KONIECZNIE z tym tematem i do niego ZASTOSUJ
Temat: Jak poprawnie zada pytanie
zanim napiszesz kolejnego posta
CuteOne
Parę lekcji na start:
1. staraj się nie zagłuszać błędów (chodzi o @)
2. w wersji produkcyjnej wstaw sobie za zapytaniem or die(mysql_error())
  1. $query = mysql_query("INSERT INTO mecze (gospodarz, gosc,) VALUES ('$gospodarz','$gosc') ") or die(mysql_error());

3. ewentualny błąd wrzuć do googla a otrzymasz odpowiedź co jest źle


ps. o jeden przecinek za dużo
Frugo75
Obiecuje za zapoznam się jeszcze dziś.wink.gif
  1. <form action="mecze.php" method="POST">
  2.  
  3. <b><font>Wstaw mecz:</font>
  4. </br></br>
  5. <?php
  6.  
  7. //dodawanie gospodarza
  8.  
  9.  
  10. $connection = @mysql_connect('localhost', 'root', '')
  11. or die('Błąd - Nie mogę połączyć się z serwerem MySQL. Spróbuj później.');
  12. $db = @mysql_select_db('nazywo', $connection)
  13. or die('Błąd - Nie mogę połączyć się z bazą danych. Spróbuj później.');
  14.  
  15. mysql_query("SET NAMES utf8");
  16. $query="SELECT * FROM kluby ORDER BY nazwa_klubu ASC";
  17. $result = mysql_query ($query);
  18.  
  19. echo '<select name="gospodarz">';
  20.  
  21. echo '<option value>Gospodarz</option>';
  22.  
  23.  
  24. while($nt=mysql_fetch_array($result))
  25. {
  26.  
  27.  
  28. echo '<option value="'.$nt['id'].'">'.$nt['nazwa_klubu'].'</option>';
  29.  
  30. }
  31.  
  32. echo "</select>";
  33.  
  34. ?>



  1. <input type="submit" value="Wyslij" /><br />


plik: mecze.php
  1. $gospodarz = $_POST['gospodarz'];
  2. $gosc = $_POST['gosc'];
  3. $zapytanie = @mysql_query("INSERT INTO mecze (gospodarz, gosc) VALUES ('$gospodarz','$gosc') ");
  4.  


OK. Chyba już wiem. Wstawiło, ale mam w bazie mecz "111 - Philadelphia Eagles."
Czy da sie zrobic tak, zeby wyswietlalo Chicago Bears - Philadelphia Eagles, ale każda z drużyn miała "przyklejone" do siebie swoje ID?
Sorki, ale dopiero raczkuję i tez ze zmeczenia pewnych rzeczy nie ogarniam. Za to pilnie ćwiczę.
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.