Kombinatoryka tablicowa

2010-12-17 12:34:24 Post #1 user76

 
Fajnie nazwałem temat, a teraz kod

id | nazwa | magazyn
1 | nazwa 1 | -----------
2 | nazwa 2 | ------------
...
n | nazwa n | ------------

i teraz magazyny to lista z dwoma stałymi opcjami - polski i niemiecki

while tworzy mi ta tabelke wczytujac dane z bazy
id | nazwa | magazyn
1 | nazwa 1 | -----------
2 | nazwa 2 | ------------
...
n | nazwa n | ------------

------------- <- to opcja polski lub niemiecki
i tylko w to miejsce update tego pola na pl lub de.

wsio.

$i=0;
$pobierz_produkty=mysql_query("SELECT * FROM zamowienie_produkty WHERE id_zam='$zamowienie'");

while ($wypisz = mysql_fetch_array($pobierz_produkty, MYSQL_ASSOC)) {
    $idzZamowienia = $wypisz['id'];
  $idProduktu = $wypisz['id_produkt'];
  $ilosc = $wypisz['ilosc'];
    $mag = $wypisz['magazyn'];
  
    
  $produkty_dane=mysql_query("SELECT * FROM produkty WHERE id='$idProduktu'");
  while ($wypisz = mysql_fetch_array($produkty_dane, MYSQL_ASSOC)) {
  $IDproduktu = $wypisz['id'];
  $nazwa_produktu = $wypisz['nazwa'];
  $po_marzy = $wypisz['po_marzy'];
  $cena_produktu = $wypisz['cena_netto'];
  $jaka_cena = $ilosc*$cena_produktu;
  $liczba = $cena_produktu;
}

$i++;

print "<tr>
<td>$i</td>
<td>$nazwa_produktu</td>
<td>$ilosc</td>
<td>$jaka_cena PLN</td>
<td>$cena_produktu PLN</td>
<td>

<form method=\"post\" action=\"zlecenia.php?sekcja=zlecenia_dodaj_6\" name=\"Magazyn\" />
<input name=\"id_zlecenia\" type=\"hidden\" value=\"$id_zlecenia\" />
<input name=\"jakiMagazyn\" type=\"text\" value=\"$IDproduktu\" />
<input name=\"ud3\" type=\"hidden\" value=\"$idzZamowienia\" />
<input name=\"Wyslij\" class=\"submit\" type=\"submit\" value=\"Licz\" />

</form>

</td><td>";

$magazyny = $_POST["jakiMagazyn"];

print $magazyny;
if($ud3==$idzZamowienia){
$magazyn = "UPDATE zamowienie_produkty SET magazyn='$magazyny' WHERE id_zam='$zamowienie' 
AND id='$idzZamowienia' AND id_produkt='$IDproduktu'";
$magazynId = mysql_query($magazyn);
}else{print "o";}
print "</td></tr>";

}

2010-12-17 13:00:32 Post #2 Comandeer

 
Dodaj do pobierania danych o produkcie "LIMIT 1". Poza tym, można by usunąć te while

2010-12-17 13:01:38 Post #3 user76

 
ok, pomogło

2010-12-17 16:12:47 Post #4 user76

 
pomogło, tylko teraz mam po 6-10 formularzy na stronie, ale grunt ze dziala.

a wiecie jak z pomoca jednego formularza wykonac edycje rekordow tak jak tu (w takiej formie) ?http://24ways.org/2006/showing-good-form

2010-12-17 17:08:43 Post #5 Comandeer

 
Kłaniają się pętelki. Chcesz jeden formularz dla wszystkich zamówień czy dla każdego po jednym? W zasadzie różnica niewielka. Tworzysz se szkielet takiego formularza w HTML, a następnie za pomocą pętli pobierasz dane o zamówieniu i generujesz pola. Taki prościutki przykład:
<?php
var_dump($_POST);
$zamowienie=(isset($_GET['zam']))?intval($_GET['zam']):1;
$sql=mysql_connect('localhost','user','pass');
mysql_select_db('twoja_baza');
mysql_query("set names utf8");
$i=0;
$form='<form action="'.$_SERVER['PHP_SELF'].'" method="post"><fieldset><h1>Twoje zamówienie</h1><table><tr><th>Produkt</th><th>Ilość</th><th>Magazyn</th><th>Usuń</th></tr>';
$pobierz_produkty=mysql_query("SELECT zp.magazyn,zp.ilosc, produkty.* FROM produkty inner join zamowienie_produkty as zp on zp.zamowienie='$zamowienie'"); 
//oczywiście pole zamowienie_produkty.magazyn to pole SET, prawda?
while($produkt=mysql_fetch_assoc($pobierz_produkty))
{
	/*$produkt=array
	(
		'id' = > id produktu,
		'desc' = > opis,
		'netto' = > cena,
		'nazwa' = > nazwa,
		'magazyn' = > pl/de,
		'ilosc' = > ilość
	)*/
	extract($produkt);
	$form.='<tr><th>'.$nazwa.'</th><td><input type="number" name="produkt['.$id.']" value="'.$ilosc.'"></td><td><select name="magazyn['.$id.']"><option value="pl">PL</option><option value="de">DE</option></select></td><td><input type="checkbox" name="usun['.$id.']" value="1"></td></tr>';
}
$form.='</table><button type="submit" name="action" value="1">Wyślij</button><button type="submit" name="action" value="2">Usuń zaznaczone</button></fieldset></form>';
echo $form;

Jakbyś chciał tego użyć, to musisz dorobić obsługę przycisków wysyłania formularza i wyświetlania tego selecta z magazynami. Mam nadzieję, że wiesz jakim sposobem skróciłem twoje zapytania do jednego.
Aha, zapomniałbym: warto przerzucić się na PDO, a przynajmniej mysqli

Odpowiedz

Ostatnio na forum

  1. PHP Developer - Gdań... moze kobieta
  2. PHP Developer - Gdań... Tomek ARforce
  3. Hackathon Distribute... aleksandra_c
  4. Klasa obsługi szablo... freeboc
  5. PHP [Symfony] Develo... NewPerspective
  6. [Wrocław][PHP Develo... Software house Amsterdam Standard sp. z o.o.
  7. Senior PHP Developer... Kingit

Skrypty użytkowników

  1. Klasa obsługi szablo... Lirdoner
  2. Sekcje user76
  3. Klasa walidująca for... user76
  4. Licznik Gości online korey
  5. Form Builder Comandeer
  6. Dynamiczny licznik z... korey
  7. Captcha Comandeer