Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]kosz na zakupy
Forum PHP.pl > Forum > Przedszkole
darkstar
Witam

Tworzę kosz na zakupy i lekko utknołem, że tak powiem w miejscu.
Stworzyłem trzy tabele

produkty
id, nazwa, cena

users
id, login, haslo

kosz
id, id_user, id_produkt

Zrobiłem już połączenia, które dodają do kosza id_user i id_produkt.
Problem mam z wyświetleniem tych danych na stronie. Wiem ,że muszę użyć funkcji while ale nie bardzo wiem jak to tutaj zrobić. Proszę o pomoc.
piotrooo89
  1. <?php
  2. $sql = mysql_query("SELECT * FROM produkty, users, kosz WHERE kosz.id_user=users.id AND kos.id_produkt=produkt.id")
  3.  
  4. while ($row=mysql_fetch_array($sql))
  5. {
  6. echo $row[nazwa];
  7. echo $row[cena];
  8. echo $row[login];
  9. }
  10. ?>


coś takiego może?
darkstar
Troszkę poprawiłem bo były jak to w pisaniu w locie błędy (brak ; i '').


  1. <?php
  2. $sql = mysql_query("SELECT * FROM produkty, users, kosz WHERE kosz.id_user = users.id AND kosz.id_produkt = produkt.id");
  3.  
  4. while ($row=mysql_fetch_array($sql))
  5. {
  6. echo $row['nazwa'];
  7. echo $row['cena'];
  8. echo $row['login'];
  9. }
  10. ?>


Wywala Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\usr\krasnal\www\koszyk\kosz.php on line 112

Linia 112 to linia z while. Myślałem ,że coś zapytaniem starałem się wszystko poprawnie mieć ale dalej nie działa hmm :/
piotrooo89
a spróbuj może tak:
  1. <?php
  2. $sql = mysql_query("SELECT produkty.id, produkty.nazwa, produkty.cena, users.id, users.login, kosz.id, kosz.id_user, kosz.id_produkt FROM produkty, users, kosz WHERE kosz.id_user = users.id AND kosz.id_produkt = produkt.id");
  3. ?>


tylko warunek że masz takie kolumny.
darkstar
Ten sam błąd :/ zgadząją się - dla potwierdzenia

  1. CREATE TABLE `kosz` (
  2. `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  3. `id_user` int(10) NOT NULL DEFAULT '0',
  4. `id_produkt` int(10) NOT NULL DEFAULT '0',
  5. PRIMARY KEY (`id`)
  6. ) TYPE=MyISAM AUTO_INCREMENT=11 ;

  1. CREATE TABLE `produkty` (
  2. `id` int(10) NOT NULL AUTO_INCREMENT,
  3. `nazwa` varchar(20) NOT NULL DEFAULT '',
  4. `cena` varchar(10) NOT NULL DEFAULT '',
  5. PRIMARY KEY (`id`)
  6. ) TYPE=MyISAM AUTO_INCREMENT=3 ;

  1. CREATE TABLE `users` (
  2. `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  3. `login` varchar(20) NOT NULL DEFAULT '',
  4. `haslo` varchar(20) NOT NULL DEFAULT '',
  5. PRIMARY KEY (`id`)
  6. ) TYPE=MyISAM AUTO_INCREMENT=2 ;
darkstar
Nikt nie zna odpowiedzi?? :/
piotrooo89
  1. <?php
  2. $sql = mysql_query("SELECT produkty.id idp, nazwa, cena, kosz.id idk, id_produkt, id_user, users.id idu, login
  3.                    FROM produkty, kosz, users
  4.                    WHERE kosz.id_produkt=produkty.id AND kosz.id_user=users.id");
  5. ?>


proszę. od razu zrobiłem Ci aliasy od id. jak chcesz odwołać się do id w tabeli produkty to wpisz tylko idp.
darkstar
Dziękuję Ci bardzo smile.gif działa ! <jupi>
darkstar
Pojawił mi się teraz dziwny problem, otóż po dodaniu produktu, user_id znika i do bazy zapisywane jest jako 0 :/.

  1. <?
  2. $id_user=mysql_query("SELECT id FROM users WHERE login = '".$_SESSION['superlogin']."'");
  3. $rezult_id_user=mysql_fetch_array($id_user);
  4.  
  5.  
  6.  
  7. $produkt1=$_POST['s1'];
  8. $produkt2=$_POST['s2'];
  9.  
  10.  
  11. if (isset($produkt1)) {
  12. $idp=1;
  13. mysql_query("INSERT into kosz (`id_user`, `id_produkt`) values('".$rezult_id_user['id']."', '".$idp."')");
  14. }
  15. if (isset($produkt2)) {
  16. $idp=2;
  17. mysql_query("INSERT into kosz (`id_user`, `id_produkt`) values('".$rezult_id_user['id']."', '".$idp."')");
  18. }
  19.  
  20.  
  21. echo"userid - ".$rezult_id_user['id']."";
  22.  
  23. ?>


Odświeżam i echo wyświetla mi prawidłowe id usera, dopiero pod kliknięciu na submit produktu wartość ta znika i w bazie mam 0 :/.
darkstar
Nikt nie ma pomysłu? :/
darkstar
Kurczę ,ludzie proszę o pomoc bo już zaczynam siwieć przez to sad.gif, za cholerę nie wiem czemu to się dzieje. Wiem, że po submicie sesja gubi login i prawdopodobnie to nie mam pojęcia co jest przyczyną. Przy odświeżaniu nie gubi. Wklejam caluteńki kod i proszę o pomoc.

  1. <?php
  2. session_register("zalogowany");
  3.  
  4. if(empty($_SESSION["zalogowany"])) {
  5. $_SESSION["zalogowany"]=0;
  6. }
  7.  
  8.  
  9. mysql_connect("localhost", "root", "krasnal")or die("Nie mozna nawiazac polaczenia z baza");
  10. mysql_select_db("test")or die("Wystapil blad podczas wybierania bazy danych");
  11. ?>
  12.  
  13. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  14. <html xmlns="http://www.w3.org/1999/xhtml">
  15. <head>
  16. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  17. <title>Untitled Document</title>
  18. </head>
  19. <body>
  20.         <form action="kosz.php" method="post">
  21.          <p class="style2">            Login
  22.            <input name="login" type="text" size="20" class="TEXT"/>
  23.          </p>
  24.          <p class="style2">Haslo
  25.            <input name="haslo" type="password" size="20" class="TEXT"/>
  26.          </p>
  27.          <p class="style2">
  28.          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  29.          <input type="submit" name="loguj" value="Zaloguj sie" /> &nbsp;</p>
  30.          <p class="style2">
  31.          </form>
  32.        
  33. <?php
  34.  
  35. //LOGOWANIE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!----------------------------------------
  36.  
  37. $haslo=$_POST["haslo"];
  38.  
  39. $loguj=$_POST["loguj"];
  40.  
  41. if(!empty($_POST["login"]) && !empty($_POST["haslo"]) && !empty($loguj)){
  42.    if(mysql_num_rows(mysql_query("select * from users where login = '".htmlspecialchars($_POST["login"])."' AND haslo = '".        htmlspecialchars($haslo)."'"))){
  43.    echo "Zalogowano poprawnie <br><br>";
  44.    $_SESSION["zalogowany"]=1;
  45.    $pytanie=mysql_query("select * from users where login = '".htmlspecialchars($_POST["login"])."' AND haslo = '".        htmlspecialchars(                    $haslo)."'");
  46.    $rezult=mysql_fetch_array($pytanie);
  47.    $_SESSION['superlogin']=$rezult['login'];
  48. } else {
  49.    echo "Podane dane sa nieprawidlowe <br><br>";
  50. }
  51. }
  52.  
  53. if (isset($_GET['wyloguj']) && $_GET["wyloguj"]=="tak" && empty($loguj)) {
  54. $_SESSION["zalogowany"]=0;
  55. echo 'Zostales wylogowany z serwisu <br><br>';
  56. }
  57.  
  58. if($_SESSION["zalogowany"] == 1){
  59. echo '<span style="color:#FBDD75">Jestes zalogowany. Witaj '.$_SESSION['superlogin'].'.<br><br></span>';
  60. } else if ($_SESSION["zalogowany"] == 0){
  61. echo '<span style="color:#FBDD75">Nie jestes zalogowany <br><br> </span>';
  62. }
  63.  
  64. if ($_SESSION["zalogowany"] == 1) {
  65. echo"<a href='kosz.php?wyloguj=tak'><b>Wyloguj</b></a>";
  66. }
  67.  
  68. $_SESSION['superlogin']=$rezult['login'];
  69. //KONIEC LOGOWANIA !!!!!!!!!!!!---------------------------------------------------------------------------------------
  70. ?>
  71. <?
  72. //ZAKUPYYYYY----------------------------------------------------------------------------------------
  73. ?>
  74. <br />
  75. Produkt 1<input type="submit" name="s1" value="do kosza" />><br />
  76. Produkt 2<input type="submit" name="s2" value="do kosza" /><br />
  77.  
  78.  
  79. <?
  80. $muser=mysql_query("SELECT * FROM users WHERE login = '".$_SESSION['superlogin']."'");
  81. $rezult_id_user=mysql_fetch_array($muser);
  82.  
  83.  
  84.  
  85.  
  86. $produkt1=$_POST['s1'];
  87. $produkt2=$_POST['s2'];
  88.  
  89.  
  90. if (isset($produkt1)) {
  91. $idp=1;
  92. mysql_query("INSERT into kosz (`id_user`, `id_produkt`) values ('".$rezult_id_user['id']."', '".$idp."')");
  93. }
  94. if (isset($produkt2)) {
  95. $idp=2;
  96. mysql_query("INSERT into kosz (`id_user`, `id_produkt`) values ('".$rezult_id_user['id']."', '".$idp."')");
  97. }
  98.  
  99.  
  100.  
  101. echo"userid - ".$rezult_id_user['id']."";
  102.  
  103.  
  104.  
  105.  
  106. ?>
  107. <Br /><Br />Kosz: <br />
  108.  
  109. <?
  110. $sql = mysql_query("SELECT produkty.id idp, nazwa, cena, kosz.id idk, id_produkt, id_user, users.id idu, login
  111.                   FROM produkty, kosz, users
  112.                   WHERE kosz.id_produkt=produkty.id AND kosz.id_user=users.id");
  113.  
  114. while ($row=mysql_fetch_array($sql))
  115. {
  116. echo "<br>Produkt: ".$row['nazwa']." Cena: ".$row['cena']." zl";
  117. }
  118. ?>
  119.  
  120.  
  121. </body>
  122. </html>
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.