Koszyk na zakupy nie wyświetla zakupionych produktow

Wszystko o językach skryptowych takich jak PHP i Perl, serwerach WWW, CGI, bazach danych i języku SQL.
Basia555
Posty: 4
Rejestracja: 20 kwie 2015, 22:39:27
Płeć: Niewybrana
User Agent: Chrome Windows

Koszyk na zakupy nie wyświetla zakupionych produktow

Post autor: Basia555 »

Hej
Opracowałam kod do obsługi towarów z bazy danych i mam teraz problem z dodawaniem tych towarów do koszyka.

kod towary.php

Kod: Zaznacz cały

<?php //definicja tablic z towarami oraz cenami

$lacz = mysql_connect('localhost','root','haslo') or
die('Padl serwer');
$lacz = mysql_select_db('stronaphp') or die('Padla baza');

$wynik = mysql_query("SELECT ID, Nazwa_uslugi, Cena_za_metr FROM cennik_uslug ") or die('Błąd zapytania');

?>
<table border="1">
 <thead>
  <tr>
      <th>Opis towaru</th>
        <th>cena</th>
    </tr>
 </thead>
<tbody>

<?php //wyswietlamy towary z tablicy

$i= isset($_GET['i']) ? (int)$_GET['i'] : 0;

while ($row = mysql_fetch_array($wynik))
{
        print '<tr><td>'.$row['ID'].'</td>';
print '<td>'.$row['Nazwa_uslugi'].'</td>';
print '<td>'.$row['Cena_za_metr'].'</td>';
 
print "<td><a href=\"".$_SERVER['PHP_SELF']."?kup=$i\">Kup produkt</a></td></tr>";
}
?>
dodawanie do koszyka działa. towary wyświetlają się i gdy klikne pokazuje ze dodano do koszyka ale nie wyświetla mi tego na stronie z koszykiem. Może źle to zadeklarowałam?

kod koszyk.php

Kod: Zaznacz cały

<?php // definicja tablic z towarami oraz cenami


$i= isset($_GET['i']) ? (int)$_GET['i'] : 0;


$q = mysql_connect('localhost','root','haslo') or
die('Padl serwer');
$q = mysql_select_db('stronaphp') or die('Padla baza');


$wynik = mysql_query("SELECT ID, Nazwa_uslugi, Cena_za_metr FROM cennik_uslug") 
or die('Błąd zapytania'); 



while ($row = mysql_fetch_array($wynik))
{
    //    =$row['ID'];
    $towary=$row['Nazwa_uslugi'];
    $ceny=$row['Cena_za_metr'];

?>

<table border="1">
  </thead>     
             <tr>
                   <th>ID</th>
                   <th>Nazwa usługi</th>
                     <th>Cena za metr</th>
                </tr>
        </thead>
    <tbody>



<?php
$suma = 0;
for ($i=0;$i < count($_SESSION['koszyk']); $i++)
{
        echo '<tr>';
        echo '<td>'.$towary[$_SESSION['koszyk'][$i]].'</td>';
        echo '<td align="right">';
        echo number_format ($ceny[$_SESSION['koszyk'][$i]],2);
        echo ' zlotych</td></tr>';
        $suma = $suma + $ceny[$_SESSION['koszyk'][$i]];
}
?>


</tbody>
 <tfoot>
  <tr>
      <th align="right">Naleznosc: </th><br>
        <th align="right"><?php echo number_format($suma,2); ?> zlotych.</th>
    </tr>
 </tfoot>
</table>

<p><a href="towary.php">Kupuj dalej</a> lub też: <a href="<?php echo $_SERVER['PHP_SELF']; ?>?reset=1">Wyczysc swoj koszyk</a></p>
</body>
</html>
Mogę liczyć na jakieś sugestie?
Z góry dziękuję za pomoc, pozdrawiam
4zywioly
Posty: 528
Rejestracja: 26 kwie 2011, 16:33:42
Strona na CBA.pl: 4zywioly.c0.pl
Płeć: Niewybrana
User Agent: Chrome Windows 1366x768
Kontakt:

Re: Koszyk na zakupy nie wyświetla zakupionych produktow

Post autor: 4zywioly »

Czy to jest cały kod?
(nie powinnaś używać mysql_query)
Basia555
Posty: 4
Rejestracja: 20 kwie 2015, 22:39:27
Płeć: Niewybrana
User Agent: Chrome Windows

Re: Koszyk na zakupy nie wyświetla zakupionych produktow

Post autor: Basia555 »

Nie cały kod jest taki:

kod towary.php

Kod: Zaznacz cały

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Firma budowlana Bill-Build</title>
        <link rel="stylesheet" type="text/css" href="arkusz.css"/>
 <meta http-equiv="content-type" content="text/html; charset=iso-8859-2" /> 
    </head>
  <body>


<?php
session_start();
if(!isset($_SESSION['koszyk']))
{
$_SESSION['koszyk']=array();
}
if (isset($_GET['kup']))
{
// jezeli dodajemy jaki¶ produkt do koszyka
  $_SESSION['koszyk'][] = $_GET['kup'];
// przekierowanie z uwzględnieniem nie działaj±cych ciasteczek
header('location: '.$_SERVER['PHP_SELF']. '?' .SID);
exit();
}
?>


    
<b>Twoj koszyk zawiera: 
<?php print count($_SESSION['koszyk']); ?> produktow.</b>
<p><a href="koszyk.php">Zobacz koszyk</a></p>

<?php //definicja tablic z towarami oraz cenami

$lacz = mysql_connect('localhost','root','haslo') or
die('Padl serwer');
$lacz = mysql_select_db('stronaphp') or die('Padla baza');

$wynik = mysql_query("SELECT ID, Nazwa_uslugi, Cena_za_metr FROM cennik_uslug ") or die('Błąd zapytania');

?>
<table border="1">
 <thead>
  <tr>
      <th>Opis towaru</th>
        <th>cena</th>
    </tr>
 </thead>
<tbody>

<?php //wyswietlamy towary z tablicy

$i= isset($_GET['i']) ? (int)$_GET['i'] : 0;

while ($row = mysql_fetch_array($wynik))
{
        print '<tr><td>'.$row['ID'].'</td>';
print '<td>'.$row['Nazwa_uslugi'].'</td>';
print '<td>'.$row['Cena_za_metr'].'</td>';
 
print "<td><a href=\"".$_SERVER['PHP_SELF']."?kup=$i\">Kup produkt</a></td></tr>";
}
?>
 </tbody>
</table>
</body>
</html>
    
        
      </body>
    </html>
a to kod mojego złego koszyka koszyk.php

Kod: Zaznacz cały

<?php
session_start();
if (!isset($_SESSION['koszyk'])) {
  $_SESSION['koszyk'] = array();
}

if (isset($_GET['reset']))  //chcemy wyczy¶cić koszyk
{
      unset($_SESSION['koszyk']);
            header('location: '. $_SERVER['PHP_SELF']. '?'. SID);
            exit();
}
?>

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Firma budowlana </title>
  </head>
  <body>
<h1>Twoj koszyk z zakupami</h1>

<?php // definicja tablic z towarami oraz cenami


$i= isset($_GET['i']) ? (int)$_GET['i'] : 0;


$q = mysql_connect('localhost','root','haslo') or
die('Padl serwer');
$q = mysql_select_db('stronaphp') or die('Padla baza');


$wynik = mysql_query("SELECT ID, Nazwa_uslugi, Cena_za_metr FROM cennik_uslug") 
or die('Błąd zapytania'); 



while ($row = mysql_fetch_array($wynik))
{
    //    =$row['ID'];
    $towary=$row['Nazwa_uslugi'];
    $ceny=$row['Cena_za_metr'];

?>

<table border="1">
  </thead>     
             <tr>
                   <th>ID</th>
                   <th>Nazwa usługi</th>
                     <th>Cena za metr</th>
                </tr>
        </thead>
    <tbody>



<?php
$suma = 0;
for ($i=0;$i < count($_SESSION['koszyk']); $i++)
{
        echo '<tr>';
        echo '<td>'.$towary[$_SESSION['koszyk'][$i]].'</td>';
        echo '<td align="right">';
        echo number_format ($ceny[$_SESSION['koszyk'][$i]],2);
        echo ' zlotych</td></tr>';
        $suma = $suma + $ceny[$_SESSION['koszyk'][$i]];
}
?>


</tbody>
 <tfoot>
  <tr>
      <th align="right">Naleznosc: </th><br>
        <th align="right"><?php echo number_format($suma,2); ?> zlotych.</th>
    </tr>
 </tfoot>
</table>

<p><a href="towary.php">Kupuj dalej</a> lub też: <a href="<?php echo $_SERVER['PHP_SELF']; ?>?reset=1">Wyczysc swoj koszyk</a></p>
</body>
</html>
Czemu nie powinnam używać mysql_query?
4zywioly
Posty: 528
Rejestracja: 26 kwie 2011, 16:33:42
Strona na CBA.pl: 4zywioly.c0.pl
Płeć: Niewybrana
User Agent: Chrome Windows 1366x768
Kontakt:

Re: Koszyk na zakupy nie wyświetla zakupionych produktow

Post autor: 4zywioly »

W koszyk.php przy pętli while Ci brakuje klamry zamykającej.
mysql_query
Basia555
Posty: 4
Rejestracja: 20 kwie 2015, 22:39:27
Płeć: Niewybrana
User Agent: Chrome Windows

Re: Koszyk na zakupy nie wyświetla zakupionych produktow

Post autor: Basia555 »

4zywioly pisze:W koszyk.php przy pętli while Ci brakuje klamry zamykającej.
mysql_query

dopisałam tą klamrę ale dalej jest problem. Towary wyświetla mi poprawnie ale z koszykiem jest problem bo w koszyku powiela mi pierwsza litere, wypisuje mi takie cos jak na zdjeciach niezaleznie od tego co klikne
Załączniki
to jest moja baza
to jest moja baza
plik2.jpg (42.16 KiB) Przejrzano 3582 razy
to mi sie wyswietla w koszyku
to mi sie wyswietla w koszyku
plik1.jpg (29.8 KiB) Przejrzano 3582 razy
Maciek228
Posty: 5
Rejestracja: 23 kwie 2015, 15:40:31
Płeć: Niewybrana
User Agent: Maxthon Windows 1366x768
Kontakt:

Re: Koszyk na zakupy nie wyświetla zakupionych produktow

Post autor: Maciek228 »

Jak dla mnie, kod wygląda jak najbardziej w porządku, więc jeśli pozwolicie, też poczytam dalszy ciąg dyskusji, zaciekawiło mnie, w czy jest problem.
W dzisiejszych czasach jest coraz mniej tabu - np. coraz mniej osób wychodzi z założenia, że sex zabawki nie są dla nich. Godna polecenia jest w tym momencie hurtownia erotyczna http://playroom.pl, najlepsze miejsce na sex zakupy.
rkd77
Admin CBA
Posty: 4170
Rejestracja: 24 maja 2009, 16:45:21
Płeć: Niewybrana
User Agent: Chrome Linux 1024x768

Re: Koszyk na zakupy nie wyświetla zakupionych produktow

Post autor: rkd77 »

Kod: Zaznacz cały

while ($row = mysql_fetch_array($wynik))
{
    //    =$row['ID'];
    $towary=$row['Nazwa_uslugi'];
    $ceny=$row['Cena_za_metr'];

}
 
Powyższy kod jest podejrzany. Z każdym wierszem nadpisujesz $towary i $ceny.

Raczej chodziło o coś takiego:

Kod: Zaznacz cały

$towary = array();
$ceny = array();
while ($row = mysql_fetch_array($wynik))
{
    $towary[]=$row['Nazwa_uslugi'];
    $ceny[]=$row['Cena_za_metr'];
}
 
Nawiasy kwadratowe oznaczają, że dodajesz na koniec tablicy.
Czy wiesz, że:
  • W Panelu CBA w sekcji "wsparcie" jest dedykowany system ticketów (obsługi technicznej)
  • Odpowiadamy na Forum oraz na adres mailowy obsluga(malpa)cba.pl
  • Jesteśmy również na Facebooku! Znajdź nas na facebook.com/hostingcba | cba.pl
W czym jeszcze możemy pomóc?
Basia555
Posty: 4
Rejestracja: 20 kwie 2015, 22:39:27
Płeć: Niewybrana
User Agent: Chrome Windows

Re: Koszyk na zakupy nie wyświetla zakupionych produktow

Post autor: Basia555 »

rkd77 pisze:

Kod: Zaznacz cały

while ($row = mysql_fetch_array($wynik))
{
    //    =$row['ID'];
    $towary=$row['Nazwa_uslugi'];
    $ceny=$row['Cena_za_metr'];

}
Powyższy kod jest podejrzany. Z każdym wierszem nadpisujesz $towary i $ceny.

Raczej chodziło o coś takiego:

Kod: Zaznacz cały

$towary = array();
$ceny = array();
while ($row = mysql_fetch_array($wynik))
{
    $towary[]=$row['Nazwa_uslugi'];
    $ceny[]=$row['Cena_za_metr'];
}
Nawiasy kwadratowe oznaczają, że dodajesz na koniec tablicy.
Dziękuję za podpowiedź. Już nie wyświetla jednej cyfry czy litery. Wyświetla mi całą nazwe Układanie glazury i cene. Tylko dlaczego jak obojetnie które pole klikne kup teraz to zawsze dodaje mi tylko pierwsze?
ODPOWIEDZ