Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Combobox + MySQL
Forum PHP.pl > Forum > Przedszkole
ufoxxx
Witam potrzebuję informacji na temat co w tym kodzie robie źle. Wyswietlam w Comboboxie nazwę adresata, ale w momencie wypełnienia wszystkich pól i wysłaniu formularza wyskakuje mi błąd: nie można było dodać danych do bazy Unknown column 'NazwaAdresata' in 'field list'.

  1. <?php
  2. include ("db_fns.php");
  3. if (isset($_POST['DataWyslania'])) {
  4. $DataWyslania = $_POST['DataWyslania'];
  5. $DataOdebrania = $_POST['DataOdebrania'];
  6. $NazwaAdresata = $_POST['NazwaAdresata'];
  7. $TrescPocztyOdebranej = $_POST['TrescPocztyOdebranej'];
  8. $NazwaStatusu = $_POST['NazwaStatusu'];
  9. if (($DataWyslania == '') || ($DataOdebrania == '') || ($TrescPocztyOdebranej == '')) {
  10. echo '<p style="color: red;">Nie wypełniłeś jednego z pól</p>';
  11. }
  12. else {
  13. $DataWyslania = mysql_real_escape_string($DataWyslania);
  14. $DataOdebrania = mysql_real_escape_string($DataOdebrania);
  15. $NazwaAdresata = mysql_real_escape_string($NazwaAdresata);
  16. $TrescPocztyOdebranej = mysql_real_escape_string($TrescPocztyOdebranej);
  17. $NazwaStatusu = mysql_real_escape_string($NazwaStatusu);
  18.  
  19. $zapytanie = 'INSERT INTO odbierzpoczte SET '
  20. .'DataWyslania="'.$DataWyslania.'", '
  21. .'DataOdebrania="'.$DataOdebrania.'", '
  22. .'NazwaAdresata="'.$NazwaAdresata.'", '
  23. .'TrescPocztyOdebranej="'.$TrescPocztyOdebranej.'", '
  24. .'NazwaStatusu="'.$NazwaStatusu.'"';
  25. $ok = mysql_query($zapytanie);
  26. if ($ok === false) die('nie można było dodać danych do bazy ' .mysql_error());
  27. mysql_close($baza);
  28. }}
  29. ?>

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4. <title>Odbierz Pocztę</title>
  5. </head>
  6. <form name="OdbierzPoczte" method="POST">
  7. <legend>Odbierz Pocztę</legend>
  8. <label for="DataWyslania">Data wysłania</label><br />
  9. <input type="date" name="DataWyslania" id="DataWyslania" /><br />
  10.  
  11. <label for="DataOdebrania">Data odebrania</label><br />
  12. <input type="date" name="DataOdebrania" id="DataOdebrania"/><br />
  13.  
  14. <label for="NazwaAdresata">Adresat</label><br />
  15. <select name="NazwaAdresata" id="NazwaAdresata"/>

  1. <?php
  2. $query = 'SELECT NazwaAdresata FROM adresat GROUP BY NazwaAdresata';
  3. $results = mysql_query($query) or die(mysql_error());
  4. while($row = mysql_fetch_assoc($results))
  5. {
  6. echo '<option>';
  7. foreach($row as $value)
  8. echo $value;
  9. echo "\n";
  10. }
  11.  
  12. ?>
  1. </select><br />
  2.  
  3. <label for="TrescPocztyOdebranej">Treść poczty</label><br />
  4. <textarea name="TrescPocztyOdebranej" id="TrescPocztyOdebranej"></textarea><br />
  5.  
  6. <label for="NazwaStatusu">Status</label><br />
  7. <select name="NazwaStatusu" id="NazwaStatusu">

  1. <?php
  2. $query = 'SELECT NazwaStatusu FROM statuspoczty GROUP BY NazwaStatusu';
  3. $results = mysql_query($query) or die(mysql_error());
  4. while($row = mysql_fetch_assoc($results))
  5. {
  6. echo '<option>';
  7. foreach($row as $value)
  8. echo $value;
  9. echo "\n";
  10. }
  11. ?>
  1. </select><br />
  2.  
  3. <input type="submit" value="Dodaj" />
  4. </form>
  5. </body>
  6. </html>

Rysh
Kod
nie można było dodać danych do bazy Unknown column 'NazwaAdresata' in 'field list'.
nie masz takiej kolumny w bazie w tabeli odbierzpoczte.
ufoxxx
Tabela Odbierz Poczte wygląda nastepująco: IdOdebrane, DataWyslania, DataOdebrania, IdAdresat, TrescPocztyOdebranej, StatusPoczty.
Tabela Adresat: IdAdresata, NazwaAdresata, Adres, KodPocztowy, Miejscowosc.

Chciałbym aby combobox działał poprzez wyświetlenie nazwy Adresata z tabeli Adresat, w sumie wyświetlanie działa, ale chę dodac odebraną pocztę z tym adresem. Czy musze stworzyc w tabeli Odbierz pocztę NazweAdresata czy darady to zrobić jakoś z automatu?
kamil_lk
Nie masz zamknięcia option ibyć może to rozwala wink.gif
Cytat
  1. while($row = mysql_fetch_assoc($results))
  2. {
  3. echo '<option>';
  4. foreach($row as $value)
  5. echo $value;
  6. echo "\n";
  7. }
Rysh
Cytat(ufoxxx @ 4.01.2015, 11:13:29 ) *
Tabela Odbierz Poczte wygląda nastepująco: IdOdebrane, DataWyslania, DataOdebrania, IdAdresat, TrescPocztyOdebranej, StatusPoczty.

Kod
$zapytanie = 'INSERT INTO odbierzpoczte SET '
.'DataWyslania="'.$DataWyslania.'", '
.'DataOdebrania="'.$DataOdebrania.'", '
.'NazwaAdresata="'.$NazwaAdresata.'", '
.'TrescPocztyOdebranej="'.$TrescPocztyOdebranej.'", '
.'NazwaStatusu="'.$NazwaStatusu.'"';


IdOdebrane - AU, DataWyslania jest, DataOdebrania jest, IdAdresat nie ma, TrescPocztyOdebranej jest, StatusPoczty nie ma. Masz za to dodatkowo: NazwaStatusu, NazwaAdresata - więc o co chodzi?
ufoxxx
Chciałem żeby były relacje przez klucz IdAdresat i IdStatusu. Rozwiązałem problem przez usunięcie IdAdresat i IdStatusu i dodanie po nazwach, ale bez relacji. Jak można to rozwiązać z relacyjną bazą danych?
Rysh
To wrzucaj tam ID adresata i ID statusu a nie sam status.
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.