Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php][mysql] kategorie - sklep internetowy, pomoc w napisaniu skryptu (badz pomoc w rozbudowaniu tego który mam)
FliSs_tCv
post
Post #1





Grupa: Zarejestrowani
Postów: 198
Pomógł: 3
Dołączył: 27.02.2007
Skąd: Tczew

Ostrzeżenie: (0%)
-----


Witam serdecznie wszystkich forumowiczów (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

chciałbym prosić was o pomoc w napisaniu skryptu badz pomocy w rozbudowaniu skryptu, który zdołałem znalesc u naszego wujka google link który skieruje nas to topicu na innym forum w którym znalazłem małą podpowiedź lecz nie jest to dla mnie zrozumiałe:( -->Oto ten link <-- oraz link z naszego forum ;] -->Oto on<--

Moja baze stworzyłem w taki sposob :
  1. CREATE TABLE `kategorie` (
  2. `id` int(10) NOT NULL AUTO_INCREMENT,
  3. `kategoria` varchar(50) NOT NULL,
  4. `id_rodzica` int(10) NOT NULL DEFAULT '0',
  5. PRIMARY KEY (`id`)
  6. ) ENGINE=MyISAM DEFAULT CHARSET=latin2 AUTO_INCREMENT=1 ;
tutaj posłuzyłem sie zapytaniem z naszego forum (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

tutaj przedstawiam moją tabele z produktami w której umiesciłem pole id_kategorii które bylo w przykładzie z naszego forum (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
  1. CREATE TABLE `produkty` (
  2. `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  3. `id_kategorii` int(10) NOT NULL,
  4. `nazwa` varchar(200) NOT NULL,
  5. `obrazek` varchar(200) NOT NULL,
  6. `opis` varchar(400) NOT NULL,
  7. `cena` float(7,2) NOT NULL DEFAULT '0.00',
  8. PRIMARY KEY (`id`)
  9. ) ENGINE=MyISAM AUTO_INCREMENT=13 DEFAULT CHARSET=latin2 AUTO_INCREMENT=13 ;


Kod przerobiony z forum --> Oto ten link <--

Ten kod ma jak opisują na forum wyswietlic subkategorie
  1. <?php
  2. mysql_connect('localhost','admin','haslo');//nazwa uzytkownika i haslo do bazy
  3. mysql_select_db('avonshop'); // baza - nazwa bazy danych
  4. if(!isset($_GET['id']))$_GET['id']=0; //tutaj miałybyć 0 (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
  5. if(strlen($_GET['id'])>4)$_GET['id']=0; //zeby kto jakiegos numeru nie zrobil;
  6.  
  7. $result = mysql_query('Select * from kategorie where parent='.$_GET['id'].';');
  8.  
  9. if($result){
  10. while(($row = mysql_fetch_array($result))!=null){
  11.  echo '<a href="index.php?id='.$row['id'].'"><b>'.$row['kategoria'].'</b> - '.$row['id_rodzica'].'</a>';
  12.  }
  13. }
  14. ?>
Lecz nie wiem czy dobrze bo nic mi nie wyswietla (IMG:http://forum.php.pl/style_emoticons/default/sadsmiley02.gif)

A ten kod z koleii ma wyswietlic jak w tamtym przykladzie opisy a u mnie chciałbym aby wyswietlało produkty
  1. <?php
  2. mysql_connect('localhost','admin','haslo');//nazwa uzytkownika i haslo do bazy
  3. mysql_select_db('avonshop'); // baza - nazwa bazy danych
  4. if(!isset($_GET['id']))$_GET['id']=1;
  5. if(strlen($_GET['id'])>4)$_GET['id']=1; //zeby kto jakiegos numeru nie zrobil;
  6.  
  7. $result = mysql_query('Select * from produkty where catid='.$_GET['id']);
  8.  
  9. if($result){
  10. while(($row=mysql_fetch_array($result))!=null){
  11.  echo '<p>'.$row['nazwa'].'</p>';
  12.  echo '<p>'.$row['obrazek'].'</p>';
  13.  echo '<p>'.$row['opis'].'</p>';
  14.  echo '<p>'.$row['cena'].'</p>';
  15.  
  16. }
  17. }
  18. ?>
tutaj tez nie wiem czy dobrze wprowadzilem zmiany (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) Jak wczesniej pisałem nie wiem ocb w tym wiec prosiłbym o jakies sugestie co o tym sadzicie i jakbyscie sami takie cos rozwiązali (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Teraz na stronie którą robie produkty wyswietlane sa poprostu z tabeli produkty w ten sposob :
(IMG:http://82.160.203.200/ff.gif)
--->EDIT <---
Kod który wyswietla wygląda tak ;>
  1. <?php
  2. while($wynik and $dane = mysql_fetch_assoc($wynik)) { // echo $dane["id"], itd... albo foreach($dane as $pole) echo " [$pole] ";
  3. echo "<div style="float : left; width : 250px; font-size : 12px;">
  4. <div style="margin-top : 15px; margin-bottom : 15px;">
  5.  &nbsp;&nbsp;<strong>$dane[nazwa]</strong><br />
  6.  <div style="background : url(img/hr.gif) repeat-x; width : 240px;"> &nbsp;</div>
  7.  <div style="width : 250px; height : 150px;">
  8.  <div style="float : left; width : 100px;">
  9. <img src="$dane[obrazek]" alt=" " border="0" style="float : left;" />
  10. </div>
  11. <div style="float : right; width : 150px;">
  12. $dane[opis]
  13. </div>
  14. </div>
  15. <div style="width : 250px; text-align : center;">
  16. <div style="float : left; width : 125px;">
  17. &nbsp;&nbsp;&nbsp;<strong>Cena: $dane[cena]</strong>
  18. </div>
  19. <div style="float : right; width : 125px;">
  20. &nbsp;&nbsp;&nbsp;<strong><a href="index.php?fhu=koszyk&id=$dane[id]">do koszyka</a></strong>
  21. </div>
  22. </div>
  23. </div>
  24. </div>";
  25. }
  26. ?>

--->END EDIT<---

nie wiem co jescze mógłbym napisac (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
prosze o pomoc w razie jakis pytan oczywiscie zaraz odpisze (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)


Czy naprawde nikt nie wie jak mi pomoc (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

Ten post edytował FliSs_tCv 22.07.2007, 15:19:19
Go to the top of the page
+Quote Post
WiTO
post
Post #2





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 6.04.2007

Ostrzeżenie: (0%)
-----


Jest wiele sposobów na wyciąganie informacji z mysql za pomocą php, niestety jestem z nich wszystkich tępy... za wyjątkiem jednej niezawodnej.



  1. <?php
  2. mysql_connect('localhost','twój_login','twoje_hasło');
  3. mysql_select_db('avonshop'); 
  4. if(!isset($_GET['id']))$_GET['id']=0; 
  5. if(strlen($_GET['id'])>4)$_GET['id']=0; 
  6.  
  7.  
  8. $zapytanie = 'SELECT * FROM kategorie WHERE id_rodzica='.$_GET[id]; // !!! id_rodzica, a nie parent, tak jak w tabeli !!!
  9.  
  10. $odpowiedz = mysql_query($zapytanie) or die(mysql_error());
  11.  
  12. while ($wiersz = mysql_fetch_array($odpowiedz)) {
  13. extract($wiersz);
  14.  
  15. echo '<a href=index.php?id='.$id.'><b>'.$kategoria.'</b> - '.$id_rodzica.'</a><br>';
  16.  
  17. }
  18.  
  19. ?>


Jak cuś nie pasi to krzyczeć!


A co do reszty to zależy wszystko od tego jak chcesz, żeby to na koniec wyglądało...
Ewentualnie jest sposób pośmigania po innych sklepach w necie i wybór tego, kótry się nam najbałdziej podoba...



EDIT: O żesz! Wpisałem własny login i hasło do serwa (IMG:http://forum.php.pl/style_emoticons/default/haha.gif) !

Ten post edytował WiTO 22.07.2007, 15:27:59
Go to the top of the page
+Quote Post
FliSs_tCv
post
Post #3





Grupa: Zarejestrowani
Postów: 198
Pomógł: 3
Dołączył: 27.02.2007
Skąd: Tczew

Ostrzeżenie: (0%)
-----


Super kategorie sie wyswietlają a w jaki sposob polączyc produkty z kategorią ?
bo mam juz dodane produkty jak widziałes na obrazku no nie wiem jak je podpiac pod dana kategorie zauszmy (produkty jak najbardziej przykladowowe narazie (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) )

dodam ze pole które dodałem do tabeli z produktami tak jak bylo opisane na przykladzie to id_rodzica no ale nadal nie wiem jak to zalatwic poprzes skrypt (IMG:http://forum.php.pl/style_emoticons/default/cool.gif)
Go to the top of the page
+Quote Post
WiTO
post
Post #4





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 6.04.2007

Ostrzeżenie: (0%)
-----


No ja nie wiem... Chodzi o mniej więcej coś w tym stylu (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

  1. <?php
  2. mysql_connect('localhost','konto','hasło');
  3. mysql_select_db('avonshop'); 
  4. if(!isset($_GET['id']))$_GET['id']=0; 
  5. if(strlen($_GET['id'])>4)$_GET['id']=0; 
  6.  
  7.  
  8. $zapytanie = 'SELECT * FROM kategorie WHERE id_rodzica='.$_GET[id]; 
  9.  
  10. $odpowiedz = mysql_query($zapytanie) or die(mysql_error());
  11.  
  12. while ($wiersz = mysql_fetch_array($odpowiedz)) {
  13. extract($wiersz);
  14.  
  15. echo '<a href=index.php?id='.$id.'><b>'.$kategoria.'</b> - '.$id_rodzica.'</a><br>';
  16.  
  17. }
  18. // od tgo miejsca zaczynamy wyświetlać produkty
  19.  
  20. echo '<br><br>Produkty:<br>';
  21.  
  22.  
  23. $zapytanie = 'SELECT * FROM produkty WHERE id_kategorii='.$_GET[id]; 
  24.  
  25. $odpowiedz = mysql_query($zapytanie) or die(mysql_error());
  26.  
  27. while ($wiersz = mysql_fetch_array($odpowiedz)) {
  28. extract($wiersz);
  29.  
  30. echo $nazwa,'<br>';
  31.  
  32. }
  33.  
  34.  
  35.  
  36. ?>


To jest tylko ogólny przykład, bo braków tu od groma...
Go to the top of the page
+Quote Post
FliSs_tCv
post
Post #5





Grupa: Zarejestrowani
Postów: 198
Pomógł: 3
Dołączył: 27.02.2007
Skąd: Tczew

Ostrzeżenie: (0%)
-----


Ok Dzieki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) postaram sie z tego cos wykonać (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) pozdrawiam (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) w razie prosbemow napisze (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Miałbym jeszcze jedno pytanie jak wykonac produkt specialny juz wyjasniam (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
chodzilo by oto ze w tabeli produkty
  1. CREATE TABLE `produkty` (
  2. `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  3. `id_kategorii` int(10) NOT NULL,
  4. `nazwa` varchar(200) NOT NULL,
  5. `obrazek` varchar(200) NOT NULL,
  6. `opis` varchar(400) NOT NULL,
  7. `cena` float(7,2) NOT NULL DEFAULT '0.00',
  8. PRIMARY KEY (`id`)
  9. ) ENGINE=MyISAM AUTO_INCREMENT=13 DEFAULT CHARSET=latin2 AUTO_INCREMENT=13 ;
bylo by pole oferta_specjalna jescze jej nie ma jak widzicie bo nie wiem jak takie cos wykonac ;]
widze to tak ze podczas dodawania lub edycji produktów mozna bylo by wstawic np 2 pola radio z html (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
czyli nadalibysmy im jakies wartosci zauszmy jezeli mialo by byc wyswietlone opcja = tak (wartośc wynosiła by 1) opcja = nie (wartosc wynosiła by 0) to jest moja teoria (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) gorzej bedzie z praktyka bynajmniej dla mnie poczatkującego (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

1 pytanie typu jakie wartosci musialbo by miec pole oferta_specjalna w tabeli z produktami?
2 pytanie typu jak stworzyc formularz aby polaczyc te pola radio (totalnie nie mam pojęcia jak to wykonac (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) )
3 pytanie typu jak napisac warunek aby przy opcji=tak dodano i wyswietlono go w polu do tego wyznaczonym oraz opcji = nie poprostu nic tam nie bedzie

poszperam teraz w google jeszcze raz moze uda mi sie cos znalesc bo wiem ze widzialem cos ale to nie bylo raczej to (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) dlatego nie przykułem do tego wiekszej uwagi . Pozdrawiam

Ten post edytował FliSs_tCv 22.07.2007, 21:16:18
Go to the top of the page
+Quote Post
WiTO
post
Post #6





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 6.04.2007

Ostrzeżenie: (0%)
-----


1. Zależy ile chcesz znaków w tej ofercie. Jak do 255 to varchar(255), a jak więcej to lepiej text.
2. Ja zawsze stosuję int(1), bo wiem, że działa na każdej wersji myaql i na każdym systemie ;p,
przyjmuję 0-fałsz, 1-prawda.

Skrypt:

  1. <?php
  2.  
  3. mysql_connect('localhost','log','haslo');
  4. mysql_select_db('avonshop'); 
  5.  
  6. $sql="ALTER TABLE `produkty` ADD `oferta_specjalna` TEXT NOT NULL,ADD `radio` INT( 1 ) NOT NULL"; //usuń backslash
  7. $wykonaj=mysql_query($sql) or die(mysql_error());
  8. ?>


3. Rozbudować skrypt:

  1. <?php
  2. echo '<br><br>Produkty:<br>';
  3.  
  4.  
  5. $zapytanie = 'SELECT * FROM produkty WHERE id_kategorii='.$_GET[id]; 
  6.  
  7. $odpowiedz = mysql_query($zapytanie) or die(mysql_error());
  8.  
  9. while ($wiersz = mysql_fetch_array($odpowiedz)) {
  10. extract($wiersz);
  11.  
  12. echo $nazwa,'<br>';
  13.  
  14. if ($radio==1){  // tu sie zaczyna
  15. echo 'Oferta specjalna';
  16. echo $oferta_specjalna;
  17.  
  18. } // tu kończy
  19.  
  20. }
  21. ?>
Go to the top of the page
+Quote Post
FliSs_tCv
post
Post #7





Grupa: Zarejestrowani
Postów: 198
Pomógł: 3
Dołączył: 27.02.2007
Skąd: Tczew

Ostrzeżenie: (0%)
-----


w odpowiedzi tego kodu dostaje to :

Powtórzona nazwa kolumny 'oferta_specjalna' ... nie wiem ocb chyba nie o taki skrypt chodzilo (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) chodzi o wyswietlenie produktu wtedy kiedy bedzie 1 a jak bedzie 0 nie ma byc nic (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
WiTO
post
Post #8





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 6.04.2007

Ostrzeżenie: (0%)
-----


  1. <?php
  2. echo '<br><br>Produkty:<br>';
  3.  
  4.  
  5. $zapytanie = 'SELECT * FROM produkty WHERE id_kategorii='.$_GET[id].' AND ratio=1'; // tu to dodać
  6.  
  7. $odpowiedz = mysql_query($zapytanie) or die(mysql_error());
  8.  
  9. while ($wiersz = mysql_fetch_array($odpowiedz)) {
  10. extract($wiersz);
  11.  
  12. echo $nazwa,'<br>';
  13.  
  14.  
  15.  
  16. }
  17. ?>


No a ten błąd to dlatego, że już raz odpaliłeś ten skrypt i ta kolumna już jest i wyskakuje błąd, że jest ona powtórzona, powyższy skrypt wyświetli wszystkie produkty, które mają wartość 1 w kolumnie "ratio" (chcesz zmień nazwę (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) )
Go to the top of the page
+Quote Post
FliSs_tCv
post
Post #9





Grupa: Zarejestrowani
Postów: 198
Pomógł: 3
Dołączył: 27.02.2007
Skąd: Tczew

Ostrzeżenie: (0%)
-----


teraz wystąpiło cos takiego (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) echo produkty dziala jak widac ponizej ale cos z tym radio nie ;>

Produkty:
Something is wrong in your syntax obok 'AND ratio=1' w linii 1
Go to the top of the page
+Quote Post
strife
post
Post #10





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

Ostrzeżenie: (0%)
-----


Cytat(FliSs_tCv @ 23.07.2007, 22:21:29 ) *
teraz wystąpiło cos takiego (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) echo produkty dziala jak widac ponizej ale cos z tym radio nie ;>

Produkty:
Something is wrong in your syntax obok 'AND ratio=1' w linii 1


Poczytaj o sql injection, widzę, że nie filtrujesz danych które przychodzą ( $_GET['id'] ). Co do Twojego błędu, ratio napewno jest typu integer ?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 4.10.2025 - 02:35