patrycjusz
2.08.2003, 14:39:56
Witam.
Moj problem przedstawia sie tak.
Pisz własnie sklep i już wyświetlanie,dodawanie i usuwanie artykułów prawie mam, i tutaj mam problem niewiem jak sie zabrać do pisania koszyka :? . Jeżeli ktoś z was pisał kiedys cosik takiego to bede wdzieczny za pomoc i przykłady. :wink:
Pozdrawiam.
scanner
2.08.2003, 15:10:34
Zapisuj w sesji tablicę[php:1:4ffb2ca11b]<?php
$arrBasket[intItemID][intItemPieces]
?>[/php:1:4ffb2ca11b] gdzie:
intItemID -> identyfikator produktu
intItemPieces -> ilosc zakupionych sztuk
patrycjusz
2.08.2003, 15:32:09
hmm... :? dzięki scanner
mam jeszcze jedno a właściwie dwa pytania jakiego typu pole ustalić w bazie do przechowywania cen i jakiego pola <np. type=text> używać do przesyłania liczb i jeszcze jedno jak załadować do bazy przykładowy link do obrazka załadowanego w jakimś tam katalogu?jeżeli można prosić o przykłady. :wink:
dzieki za zainteresowanie.
scanner
2.08.2003, 15:41:22
Cytat
jakiego typu pole ustalić w bazie do przechowywania cen
[sql:1:7f5288bc9a]FLOAT[/sql:1:7f5288bc9a]
Cytat
jakiego pola <np. type=text> używać do przesyłania liczb
Tak jak mówisz. text a potem w skrypcie sprawdzasz czy jest to liczba (było na forum)
Cytat
jak załadować do bazy przykładowy link do obrazka załadowanego w jakimś tam katalogu
wstawiasz do pola typu tekstowego ścieżkę dostępu do obrazka.
patrycjusz
2.08.2003, 16:20:49
ok. dzieki wielkie ale jeżeli możesz to zobacz na to[php:1:5756ca9bf6]<?php
if ($_GET['id']){
$zapytanie = "SELECT kategoria,model,dane,opis,zdjecie,cena from artykuly where id = '".$_GET['id']."'";
$wynik = mysql_query($zapytanie);
$wartosc = mysql_fetch_array($wynik);
$id = $wartosc[0];
$kategoria = $wartosc[1];
$model = $wartosc[2];
$dane = $wartosc[3];
$opis = $wartosc[4];
$zdjecie = $wartosc[5];
$cena = $wartosc[6];}
print "<tr><td>kategoria = $kategoria </td></tr>";
?>[/php:1:5756ca9bf6]
wydaje mi sie że wszystko jest ok ale jednak wyrzuca błąd
Kod
Warning: Supplied argument is not a valid MySQL result resource in c:apachehtdocsnaukaskleppokazart.php on line 5
kategoria =
dzieki :wink:
scanner
2.08.2003, 16:32:42
Zacznij od[php:1:21b143c8a5]<?php
$wynik = mysql_query($zapytanie) or die(mysql_error());
?>[/php:1:21b143c8a5]Pozatym zamiast [manual:21b143c8a5]mysql_fetch_array()[/manual:21b143c8a5] wygodniejsze jest [manual:21b143c8a5]mysql_fetch_assoc()[/manual:21b143c8a5] dzięki czemu nie musisz pisać
[php:1:21b143c8a5]<?php
$cena = $wartosc[6];
?>[/php:1:21b143c8a5]Tylko piszesz tam gdzie potrzebujesz[php:1:21b143c8a5]<?php
$wartosc['cena']
?>[/php:1:21b143c8a5]Co sprawia, ze skrypt zajmuje mniej pamięci, bo nie musi alokowac dodatkowo zmiennej $cena.
patrycjusz
2.08.2003, 16:39:41
nio dzieki za wszystko... lece do manuala może jeszcze cosik ciekawego znajde. :wink:
SiNuS
4.08.2003, 21:23:20
Cytat
Pozatym zamiast [manual:fd7eeea05c]mysql_fetch_array()[/manual:fd7eeea05c] wygodniejsze jest [manual:fd7eeea05c]mysql_fetch_assoc()[/manual:fd7eeea05c] dzięki czemu nie musisz pisać
Obojętne, gdyż:
Cytat
Opcjonalny drugi argument result_type w funkcji mysql_fetch_array() jest stałą i może przyjmować następujące wartości: MYSQL_ASSOC, MYSQL_NUM i MYSQL_BOTH. Tę funkcjonalność dodano w php 3.0.7. Wartością domyślną jest MYSQL_BOTH.
8)
patrycjusz
4.08.2003, 21:39:11
po kilku dniach znów sie za to chyciłem i oto efekt mojej pracy
[php:1:d825ffe6e8]<?php
session_start();
include ("config.php");
baza();
pokaz_produkty();
if($_GET['produktID'])
{
produkt();
}
print "<br>WARTOSĆ ".$_SESSION['razem']."<BR>";
print "<B>TOWAR</B>".$_SESSION['ilosc'][$produktID]."";
?><BR><BR>
<a href="oproznij.php">OPRÓZNIJ KOSZYK</a>
//funkcja produkt()
function produkt(){
$produktID = $_GET['produktID'];
if ($produktID){
$zapytanie = "SELECT produktID,nazwa,opis,cena,wlasciwosci,zawartosc,zdjecie1,zdjecie2,zdjecie3 from produkty where produktID = '$produktID'";
$wynik = mysql_query($zapytanie) or die(mysql_error());
$wartosc = mysql_fetch_assoc($wynik);}
print "<table border=1><tr><td>kategoria = ".$wartosc['opis']." </td></tr>";
print "<tr><td>cena=".$wartosc['cena']." <a href=test.php?produktID=".$wartosc['produktID'].">dodaj</a></td></tr>";
}
//plik test.php
session_start();
include ("config.php");
baza();
if ($_GET['produktID']){
$zapytanie = "SELECT produktID,nazwa,opis,cena,zdjecie1 from produkty where produktID = '".$_GET['produktID']."'";
$wynik = mysql_query($zapytanie) or die(mysql_error());
$row=mysql_fetch_assoc($wynik);
?>
<TABLE border="1">
<TR>
<TD rowspan="3"><b>ZDJECIE</b><? print "".$row['zdjecie']."";?><BR><BR><BR></TD>
<tr>
<TD colspan="2"><b>NAZWA</b><? print "".$row['nazwa']."";?></TD>
</tr><tr>
<TD colspan="2"><b>OPIS</b><? print "".$row['opis']."";?></TD>
<tr>
<TD>ilosc sztuk <form action="test1.php" method="POST">
<input type=text name=ilosc>
<input type=hidden name=produktID value=<? echo "".$row['produktID']."";?>>
<input type=submit name=przelicz value="PRZELICZ wartość zamówienia"></TD>
<TD><B>CENA</B><? print "".$row['cena']."";?></TD>
<TD><B>do tej pory</B><? print "".$_SESSION['razem']."";?></TD>
</TR>
</TABLE>
<?
}
else {
"błąd";
}
?>
//nio i plik test1.php
<?php
session_start();
include ("config.php");
baza();
if ($_POST['produktID']){
$zapytanie = "SELECT produktID,nazwa,opis,cena,zdjecie1 from produkty where produktID = '".$_POST['produktID']."'";
$wynik = mysql_query($zapytanie) or die(mysql_error());
$row = mysql_fetch_assoc($wynik);
if ($_POST['ilosc']['produktID'] <= '0') {
$_POST['ilosc']['produktID'] = '0'; }
$wartosc = $_POST['ilosc']['produktID'] * $row['cena'];
$_SESSION['razem'] += $wartosc;
$_SESSION['ilosc']['produkt'] = $_POST['ilosc']['produktID'];
?>
<TABLE border="1">
<TR>
<TD rowspan="3"><b>ZDJECIE</b><? print "".$row['zdjecie']."";?><BR><BR><BR></TD>
<tr>
<TD colspan="2"><b>NAZWA</b><? print "".$row['nazwa']."";?></TD>
</tr><tr>
<TD colspan="2"><b>OPIS</b><? print "".$row['opis']."";?></TD>
<tr>
<TD>ilosc sztuk <? print "".$_POST['ilosc']."";?></TD>
<TD><B>CENA</B><? print "".$wartosc."";?></TD>
<TD><B>RAZEM</B><? print "".$_SESSION['razem']."";?></TD>
</TR>
</TABLE>
<?
}
?>
<a href="polaczenie.php">kontynuj zakupy</a>
?>[/php:1:d825ffe6e8]
no i jestem panowie troszeczke w koropce bo właśnie nie wiem jak tu indentyfikować już zakupione towary próbowałem ale jak widać nici z tego.
Mam nadzieje że zauważycie że jeszcze raczkuje w php ale czuje że czynie postepy nawet zaczynam lubić manuala ale tam niestety jest teoria a ja w tym przypadku potrzebuje praktyki i za zaoferowaną pomoc i zainteresowanie z góry dziekuje.
SiNuS
4.08.2003, 22:11:32
Cytat
no i jestem panowie troszeczke w koropce bo właśnie nie wiem jak tu indentyfikować już zakupione towary próbowałem ale jak widać nici z tego.
A nie możesz zrobić sobie dodatkowej tabeli na to co ludzie biorą do koszyka? Mnie by np. później interesowało co było najczęściej wsadzane i wyrzucane z koszyka
patrycjusz
4.08.2003, 22:17:21
no ale po co mi ta tabela ten skrypt ma przeliczać wartość zamówienia i zapisywać do tablicy(tutaj jest mój problem :? ) i generować ile i jakiego towaru koleś zamówił. chodzi mi oto abym mógł identyfikować ten towar który klient kupuje.
Dzieki za zainteresowanie :wink:
patrycjusz
4.08.2003, 22:52:05
Panowie zwracam sie do was poraz kolejny czy może mi ktos pomóc?
:wink:
patrycjusz
5.08.2003, 01:28:33
hmm.... :wink: ostatnio trudno cosik o pomoc ale rozumiem to w końcu są wakacje ale prosze was zobaczcie na to:[php:1:b3b5988b5d]<?php
session_start();
include ("config.php");
baza();
if ($_POST['produktID']){
$zapytanie = "SELECT produktID,nazwa,opis,cena,zdjecie1 from produkty where produktID = '".$_POST['produktID']."'";
$wynik = mysql_query($zapytanie) or die(mysql_error());
$row = mysql_fetch_assoc($wynik);
if ($_POST['ilosc']['produktID'] <= '0') {
$_POST['ilosc']['produktID'] = '0'; }
$wartosc = $_POST['ilosc']['produktID'] * $row['cena'];
$_SESSION['razem'] += $wartosc;
$produktID = $_POST['produktID'];
$_SESSION[ilosc][produktID] = $_POST[ilosc][produktID];
?>
<TABLE border="1">
<TR>
<TD rowspan="3"><b>ZDJECIE</b><? print "".$row['zdjecie']."";?><BR><BR><BR></TD>
<tr>
<TD colspan="2"><b>NAZWA</b><? print "".$row['nazwa']."";?></TD>
</tr><tr>
<TD colspan="2"><b>OPIS</b><? print "".$row['opis']."";?></TD>
<tr>
<TD>ilosc sztuk <? print "".$_POST['ilosc']."";?></TD>
<TD><B>CENA</B><? print "".$wartosc."";?></TD>
<TD><B>RAZEM</B><? print "".$_SESSION['razem']."";?></TD>
</TR>
</TABLE>
<?
}
print "tablica ".$_SESSION[ilosc][produktID]."";
?>
<a href="polaczenie.php">kontynuj zakupy</a>
?>[/php:1:b3b5988b5d] i prosze was powedzcie mi jak sie odwoływać do tej tablicy "tablica" bo kombinuje juz kolejna godzine i nic mi nie wychodzi czytałem manuala i również lipa, niezroumcie mnie źle manual to dora rzecz ale gdy sie szuka konkretnej funkcji a ja tutaj mam właśnie tego typu problem że gdym chciał wydrukować towary które zamówił klient to nie wiem jak to zrobić. scanner mi napisał że trzeba zapisywać tablice w sesji no ale właśnie tu mam dwa pytania:
-jak zapisywać wiele wartość (klient kupuje kilka różnych rzeczy)do tablicy i później do sesji?
-i jak sie póżniej odwoływać do tej tablicy tak aby wywołać konkretną wartość i aby wylistować całą?
Dzieki. :wink:
-
patrycjusz
5.08.2003, 10:44:34
kolejny dzień...

czuje że może dzisiaj....
Panowie pomoże ktoś?
scanner
5.08.2003, 11:05:16
Ehh...
Łamiesz regulamin... a konkretnie punkt:
IV.2.e
Cierpliwości.
SiNuS
5.08.2003, 13:55:55
Cytat
-jak zapisywać wiele wartość (klient kupuje kilka różnych rzeczy)do tablicy i później do sesji?
-i jak sie póżniej odwoływać do tej tablicy tak aby wywołać konkretną wartość i aby wylistować całą?
Zrób sobie w bazie (jak pisałem) osobną tabele na zawartości koszyków.
Dostęp do bazy/tabeli masz w końcu zawsze i bez problemu.
patrycjusz
5.08.2003, 14:33:17
he,he widzisz wiem że tak można zrobić ale mi zależy na tym sposobie o którym pisze... no cóz jak sie nie uda to bede próbował zrobić to na bazie... prosze o sugestie... pomysły i wszelkie koncepcje które mogą sie przyczynić do sukcesu.... more and more.
patrycjusz
5.08.2003, 15:23:47
Panowie jeżeli ma cosik takiego....[php:1:f4058be923]<?php
$_SESSION['ilosc']['nazwa']
?>[/php:1:f4058be923]
to jak dopisywać tam kolejne zakupy i później je wylistować?
i jak to zapisać i przechowywać do końca zakupów
(gdy np.klient zamknie przegladarke lub oprózni kosz to sesja znika)
proszę o pomoc bo juz długo stoje w kropce i jakoś końca nie widze a czas mnie nagli....
kłaniają się podstawy php.
dodawanie elementów do tablicy wilowymiarowej:
[php:1:3dda7952e0]<?php
$array['koszyk'][ ] ="produkt 1";
$array['koszyk'][ ] ="produkt 2";
//drukowanie jej zawartośći
var_dump( $array );
// drukownie samodzielnie
foreach( $array as $wiersz ){
echo $wiersz;
}
?>[/php:1:3dda7952e0]
RTFM
patrycjusz
5.08.2003, 21:13:02
hmm... poczytałem manualka na temat tablic ale właściwie co do mojego systemu to nic mi nie pomogło wiec sie zastanawiam w troche inny sposób jak tu rozwiażać mój problem nie używająć bazy danych dla koszyka ... może jeszcze jestem zbyt słaby w php żeby za to sie zabierać no ale mi zależy na napisaniu takiego systemu wiec zwracam sie do was poraz chyba ostatni w tej sprawie i prosze o wytłumaczenie mi sposobu budowy koszyka...
P.S. a moderatorom dzieki za cierpliwość
patrycjusz
6.08.2003, 17:29:10
hmm.... już tak na poważnie wziąłem się za to i nawet zaczynam odczuwać przypływ "energi" jak sie czyta manuala i wymyśliłem to tak...[php:1:58c3df8dce]<?php
$koszyk = array ('ilosc' =>
array('produktID' => 'suma'));
$produktID = $_POST['produktID'];
$ilosc = $_POST['ilosc'];
$suma = $_POST['suma'];
print "$ilosc<br>$produktID<br>";
$koszyk[$ilosc][$produktID] = $suma;
?>[/php:1:58c3df8dce] dopisuje sobie to tak tylko tutaj pojawia sie mój kolejny problem jak dopisywac kolejne wartości i klucze a nie ciągle zamieniać te które są tutaj a następnie je gdzieś tam wyciągać i odpowiedni kojarzyć....
wiem że jestem już blisko ale to na nic ponieważ stoje w miejscu.
[/code]
DevY twój kod wywala text:
Cytat
array(1) { ["koszyk"]=> array(2) { [0]=> string(9) "produkt 1" [1]=> string(9) "produkt 2" } } Array
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.