Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML][PHP]Formularz
daros17
post 9.11.2010, 18:12:28
Post #1





Grupa: Zarejestrowani
Postów: 233
Pomógł: 27
Dołączył: 27.08.2007

Ostrzeżenie: (0%)
-----


Cześć

Kod formularz.html
  1. <tr bgcolor=#cccccc>
  2. <td width="100">Produkt</td>
  3. <td width="30">Ilosc</td>
  4. <td width="30">Rozmiar</td>
  5. <td width="30">Nazwa</td>
  6. <td width="30">Promocja</td>
  7. </tr>
  8. <tr>
  9. <td>Pizza</td>
  10.  
  11. <td align="left"><input type="text" name="ilosc" size="5" maxlength="5" /></td>
  12.  
  13. </td>
  14. <td>
  15. <select name="rozmiar">
  16. <option value=""></option>
  17. <option value="C">Cienka(32cm)</option>
  18. <option value="G">Gruba(32cm)</option>
  19. <option value="D">Duża (40cm)</option>
  20.  
  21. </select>
  22. </td>
  23.  
  24. <td>
  25. <select name="nazwa">
  26. <option value=""></option>
  27. <option value="1">Margherita</option>
  28. <option value="Vesuvio">Vesuvio</option>


Chciałbym zrobić aby zamiast ręcznego wpisywania w formularzu danych pokazywały mi się te które zostały zapisane w bazie. Czyli np mam w bazie danych kolumnę nazwa i w niej kilka nazw pizz. Czyli po wybraniu kolumny w formularzu nazwa pizzy wyświetlają mi się wszystkie nazwy pizz które są w bazie.

Zrobiłbym to tak, ale nie wiem czy jest to poprawnie.

Jeśli value ma np 1 to będzie pokazywać rekord 1, tylko co wtedy wpisać w miejsce kropek <option value="">....</option>
Oczywiście na górze kod php z pobieraniem danych z bazy czy takie coś ma sens?
Go to the top of the page
+Quote Post
ciekawskiii
post 9.11.2010, 18:33:32
Post #2





Grupa: Zarejestrowani
Postów: 467
Pomógł: 39
Dołączył: 7.11.2010
Skąd: Raz tu, raz tam

Ostrzeżenie: (30%)
XX---


tez sie kiedys z tym meczylem i rozwiazalem to tak:

  1. <option <?php if($zmienna == "1") { echo 'selected'; }else{ echo ''; } ?> value="1">1</option>
  2. <option <?php if($zmienna == "2") { echo 'selected'; }else{ echo ''; } ?> value="2">2</option>


ale pewnie sa lepsze sposoby:P

Ten post edytował ciekawskiii 9.11.2010, 18:34:07


--------------------
Go to the top of the page
+Quote Post
daros17
post 9.11.2010, 18:37:24
Post #3





Grupa: Zarejestrowani
Postów: 233
Pomógł: 27
Dołączył: 27.08.2007

Ostrzeżenie: (0%)
-----


No tak, ale value="1">1</option> pomiędzy value="1">i tutaj jest 1</option> a chodzi mi o to abym tego nie wpisywał tylko pojawiało się automatycznie z bazy
Go to the top of the page
+Quote Post
ciekawskiii
post 9.11.2010, 18:39:07
Post #4





Grupa: Zarejestrowani
Postów: 467
Pomógł: 39
Dołączył: 7.11.2010
Skąd: Raz tu, raz tam

Ostrzeżenie: (30%)
XX---


no to zamiast 1, dajesz tam zmienna:S


--------------------
Go to the top of the page
+Quote Post
daros17
post 9.11.2010, 18:40:53
Post #5





Grupa: Zarejestrowani
Postów: 233
Pomógł: 27
Dołączył: 27.08.2007

Ostrzeżenie: (0%)
-----


czyli
  1. <option <?php if($zmienna == "1") { echo 'selected'; }else{ echo ''; } ?> value="1"><?php echo $zmienna; ?></option>


wówczas do zmiennej $zmienna odwołuje się do bazy?
Go to the top of the page
+Quote Post
pcuryllo
post 9.11.2010, 18:50:20
Post #6





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 22.10.2010

Ostrzeżenie: (0%)
-----


  1. try
  2. {
  3. $pdo = new PDO('mysql:host=localhost;dbname=pizza_db', 'root', 'password');
  4. $pdo -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  5.  
  6. $stmt = $pdo -> query('SELECT id, nazwa FROM pizza_table');
  7. echo ' <select name="pizza"> ';
  8. echo ' <option value=""></option>';
  9.  
  10. foreach($stmt as $row)
  11. {
  12. echo '<option>'.$row['nazwa'].'</option>';
  13. }
  14. $stmt -> closeCursor();
  15. echo '</select>';
  16. }
  17. catch(PDOException $e)
  18. {
  19. echo '! Connection error ' . $e->getMessage();
  20. }


Ten post edytował pcuryllo 9.11.2010, 18:50:52
Go to the top of the page
+Quote Post
ciekawskiii
post 9.11.2010, 18:51:06
Post #7





Grupa: Zarejestrowani
Postów: 467
Pomógł: 39
Dołączył: 7.11.2010
Skąd: Raz tu, raz tam

Ostrzeżenie: (30%)
XX---


cos w tym stylu, zalezy jak ten formularz ma dzialac itd ale to juz sam sobie pokombinuj


--------------------
Go to the top of the page
+Quote Post
Soulast
post 9.11.2010, 19:09:53
Post #8





Grupa: Zarejestrowani
Postów: 133
Pomógł: 6
Dołączył: 26.10.2009

Ostrzeżenie: (0%)
-----


  1. $sql=mysql_query("SELECT id,nazwa FROM twoja_tabela ORDER BY id");
  2. while(list($id,$nazwa)=mysql_fetch_row($sql)){
  3.  
  4. $lista="<option value='$id'>$nazwa</option>";
  5.  
  6. }
  7.  
  8. $sql2=mysql_query("SELECT id,nazwa FROM twoja_tabela2 ORDER BY id");
  9. while(list($id,$nazwa)=mysql_fetch_row($sql2)){
  10.  
  11. $lista2="<option value='$id'>$nazwa</option>";
  12.  
  13. }
  14.  
  15. <tr bgcolor=#cccccc>
  16. <td width="100">Produkt</td>
  17. <td width="30">Ilosc</td>
  18. <td width="30">Rozmiar</td>
  19. <td width="30">Nazwa</td>
  20. <td width="30">Promocja</td>
  21. </tr>
  22. <tr>
  23. <td>Pizza</td>
  24.  
  25. <td align="left"><input type="text" name="ilosc" size="5" maxlength="5" /></td>
  26.  
  27. </td>
  28. <td>
  29. <select name="rozmiar">$lista</select>
  30. </td>
  31.  
  32. <td>
  33. <center>
  34. <select name="nazwa">$lista2</select>


O ilę dobrze rozumuję to czego szukasz winksmiley.jpg
Go to the top of the page
+Quote Post
daros17
post 9.11.2010, 21:19:42
Post #9





Grupa: Zarejestrowani
Postów: 233
Pomógł: 27
Dołączył: 27.08.2007

Ostrzeżenie: (0%)
-----


mam taki kod:
  1.  
  2. $connection = @mysql_connect('localhost', 'darosweb_xxx', '1234');
  3. $db = @mysql_select_db('darosweb_xxx', $connection);
  4.  
  5. $sql=mysql_query("SELECT id,nazwa FROM users ORDER BY id");
  6. $wynik = mysql_query($sql,$connection);
  7. while(list($id,$nazwa)=mysql_fetch_row($sql)){
  8.  
  9. $lista="<option value='$id'>$nazwa</option>";
  10.  
  11. }
  12.  
  13.  
  14. <tr bgcolor=#cccccc>
  15. <td width="100">Produkt</td>
  16. <td width="30">Ilosc</td>
  17. <td width="30">Rozmiar</td>
  18. <td width="30">Nazwa</td>
  19. <td width="30">Promocja</td>
  20. </tr>
  21. <tr>
  22. <td>Pizza</td>
  23.  
  24. <td align="left"><input type="text" name="ilosc" size="5" maxlength="5" /></td>
  25.  
  26. </td>
  27. <td>
  28. <select name="rozmiar">$lista</select>
  29. </td>
  30.  
  31. <td>
  32. <center>
  33. <select name="nazwa">$lista2</select>
  34.  


wywala błąd Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in jaki jest błąd?

Ten post edytował daros17 9.11.2010, 21:36:20
Go to the top of the page
+Quote Post
markonix
post 9.11.2010, 21:47:59
Post #10





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


Najczęściej oznacza to błąd w zapytaniu.
Dodaj or die(mysql_error()) po zapytaniu aby wyświetlić błąd SQLa.


--------------------
Go to the top of the page
+Quote Post
daros17
post 9.11.2010, 22:04:57
Post #11





Grupa: Zarejestrowani
Postów: 233
Pomógł: 27
Dołączył: 27.08.2007

Ostrzeżenie: (0%)
-----


Dzięki za pomoc już prawie działa...
Mieszałem w tej tabeli i usunąłem kolumnę nazwa....

w html poprawiłem na tak:
  1. <select name="nazwa"><?php echo $lista ?></select>


i pokazuje mi z kolumny login jedynie 1 rekord z 2 co ciekawe pokazuje ten drugi. Czy trzeba dorzucić pętlę, aby wyświetlało wszystkie obiekty z kolumny nazwa?

Ten post edytował daros17 9.11.2010, 22:24:03
Go to the top of the page
+Quote Post
Soulast
post 10.11.2010, 20:40:06
Post #12





Grupa: Zarejestrowani
Postów: 133
Pomógł: 6
Dołączył: 26.10.2009

Ostrzeżenie: (0%)
-----


Cytat(daros17 @ 9.11.2010, 22:04:57 ) *
Dzięki za pomoc już prawie działa...
Mieszałem w tej tabeli i usunąłem kolumnę nazwa....

w html poprawiłem na tak:
  1. <select name="nazwa"><?php echo $lista ?></select>


i pokazuje mi z kolumny login jedynie 1 rekord z 2 co ciekawe pokazuje ten drugi. Czy trzeba dorzucić pętlę, aby wyświetlało wszystkie obiekty z kolumny nazwa?


Wybacz trochę się zagalopowałem.
A dokładnie zapomniałem o kropce dodaj ją zaraz za $lista coś ala:

  1. $lista.="<option value='$id'>$nazwa</option>";


I w ten oto sposób powinno wyświetlić Tobie całą kolumne

Ten post edytował Soulast 10.11.2010, 20:40:43
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 21.07.2025 - 12:23