Formularz zamówieniowy (dwie tabele MySQL)

0

Witam
Próbuję utworzyć prosty formularz zamówieniowy (dwie tabele MySQL: "obiady" (id, zamow, ilosc, wartosc) i "obiady_dania" (id, zamow, danie_nazwa, cena).
"obiady_dania" się poprawnie dopisują, a "obiady" tylko częściowo - nie dopisuje się "wartosc".

Błąd prawdopodobnie popełniam gdzieś tutaj:

<?php
function cena()
{
$wynik2=''; 
$query2="SELECT * FROM obiady_dania INNER JOIN obiady ON obiady_dania.zamow = obiady.zamow";
$result2=mysql_query($query2);

if($result2)
{
while($dat2=mysql_fetch_assoc($result2))
$wynik2.=''.$dat2['cena'].'';
}
return $wynik2;
}
?>

i potem w formularzu:

<input type="hidden" name="wartosc" id="wartosc" value="<?php echo cena(); ?>">

Będę wdzięczny za pomoc.

0

1.Co oznacza kolumna zamow w tabeli obiady oraz obiady_dania i dlaczego nie wynika to wprost z jej nazwy?

2.Dlaczego nagle wybrałeś nazwę danie_nazwa, ale już nie danie_cena oraz danie_id? Bądź konsekwentny.

3.Wszystkie funkcje mysql_* są zdeprecjonowane i zostały usunięte począwszy od PHP 7 - poczytaj o PDO.

4.Formatuj kod sensownie, nie da się na to patrzeć.

5.Nazywaj zmienne opisowo - dat2 naprawdę nie mówi absolutnie nic o przeznaczeniu tej zmiennej.

6.Nie mieszaj nazewnictwa polskiego (cena) z angielskim (result) - pisz w całości po angielsku.

0

w tym kodzie nie ma nic odnośnie dopisywania czegokolwiek gdziekolwiek

0

To nie ma być komercyjna aplikacja, tworzę tylko dla niewielkiej grupy, żeby ułatwić sobie rozliczanie cateringu, więc przepraszam za wszystkie
błędy, które Was profesjonalistów przyprawiają o dreszcze ;-)

Po lekkiej modyfikacji i skróceniu wygląda to tak:
tabela 1) obiady_dania
| danie_id | danie_nazwa |
| zupa_dnia | Zupa dnia |
| danie_dnia | Danie dnia |

tabela 2) obiady
| danie_id | cena |
| zupa_dnia | 5 |
| danie_dnia | 10 |

To, co chciałbym otrzymać to JOIN obu tabel po 'danie_id' i wyświetlenie zawartości kolumny 'danie_nazwa':
| danie_id | danie_nazwa | cena |
| zupa_dnia | Zupa dnia | 5 |
| danie_dnia | Danie dnia | 10 |

Próbuję tak:
SELECT * FROM obiady_dania INNER JOIN obiady ON obiady_dania.danie_id = obiady.danie_id;
i tak:
SELECT obiady.danie_id, obiady_dania.danie_nazwa FROM obiady, obiady_dania WHERE obiady.danie_id = obiady_dania.danie_id;

ale niestety nie działa. Będę wdzięczny za jakąkolwiek podpowiedź.

0

Błąd znaleziony (dzięki Tomek).
Miałem w obu tabelach inne kodowanie znaków dla danie_id (utf8_general_ci, a w drugiej utf8_unicode_ci).
Ku przestrodze dla innych.

1 użytkowników online, w tym zalogowanych: 0, gości: 1