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.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
$i=0;
$pobierz_produkty=mysql_query("SELECT * FROM zamowienie_produkty WHERE id_zam='$zamowienie'");

while (
$wypisz mysql_fetch_array($pobierz_produktyMYSQL_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_daneMYSQL_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:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?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