Tworzenie Sklepu PHP na prostej bazie danych

0

Witajcie!
Mam problem z którym nie mogę sobie poradzić, mianowicie stworzyłem funkcje odpowiedzialną za tworzenie opisu produktu, która działa:

<?php
				function GenerowanieOpisuProduktu ($ZdjecieProduktu, $NazwaProduktu, $CenaProduktu, $Zdjecieopisu)
				{
				echo('<section class="ls section_padding_top_100 section_padding_bottom_75 columns_padding_25">');
				echo('<div class="container">');
				echo('<div class="row">');
				echo('<div class="col-sm-12">');
				echo('<div class="with_border with_padding rounded">');
				echo('<form class="form-horizontal" action="form.php" method="GET">');
				echo('<div itemscope="" itemtype="http://schema.org/Product" class="product type-product row">');
				echo('<div class="col-md-6">');
				echo('<div class="images">');
				echo('<img src="img/produkty/' . $ZdjecieProduktu . '.jpg"class="attachment-shop_single wp-post-image" alt="">');
				echo('</div>');
				echo('</div>');
				echo('<div class="summary entry-summary col-md-6">');
				echo('<h1 itemprop="name" class="product_title entry-title">' . $NazwaProduktu . '</h1>');
				echo('<div itemprop="offers">');
				echo('<ul class="list1 no-bullets">');
				echo('<li>');
				echo('<p class="price">');
				echo('<span class="amount">' . $CenaProduktu . '</span>');
				echo('</li>');
				echo('</ul>');
				echo('<form class="cart" method="post" enctype="multipart/form-data">');
				echo('<div class="form-group">');
				echo('<label for="product_size" class="grey">Ilość:</label>');
				echo('<span class="red">*</span>');
				echo('<input type="text" class="form-control "  id="product_size">');
				echo('</br></br>');
				echo('</div>');
				echo('</form>');
				echo('</div>');
				echo('</div>');
				echo('<div class="col-sm-12">');
				echo('<img src="img/produkty/' . $Zdjecieopisu . '.jpg"class="attachment-shop_single wp-post-image" alt="">');
				echo('</div>');
				echo('</div>');
				echo('<div class="attachment-shop_single wp-post-image">');
				echo('<input type="submit" class="theme_button" value="Dodaj do wyceny"/>');
				echo('</div>');
				echo('</div>');
				echo('</div>');
				echo('</div>');
				echo('</div>');
				echo('</div>');
				echo('</section>');
				}
				?>

Wszystkie dane się poprawnie odczytują lecz problem pojawia się w wyselekcjonowaniu rekordów które chce pokazać
Poniżej podsyłam kod który za to odpowiada.

			<?php
			$i=1;
				if ($handle = opendir('produkty')) 
				   {
				   while (false !== ($file = readdir($handle))) { 
				       if ($file != "." && $file != "..") { 
				         // echo ('Nazwa czytanego pliku: ' . $file . "<br><br>"); 
				         
				        $fopen = fopen('produkty/'.$file, "r");
						$Data = fread($fopen, 390625);
				         
				         // rozbijanie na elementy aby podać dane do funkcji
				         $explode = explode ('<|*|>', $Data);
						
						
						if ($explode[0] == 'klimatyzatory-scienne' and $explode[5] == 1 )
						{
							GenerowanieOpisuProduktu ($explode[3], $explode[1], $explode[2], $explode[4]);
						}
						
						if ($explode[0] == 'klimatyzatory-komercyjne' and $explode[5] == 2)
						{
							GenerowanieOpisuProduktu ($explode[3], $explode[1], $explode[2], $explode[4]);	
						}
						
						if ($explode[0] == 'systemy-multi' and $explode[5] == 3)
						{
							GenerowanieOpisuProduktu ($explode[3], $explode[1], $explode[2], $explode[4]);
						}
						
				       $i++;
				       } 
				         
				   }
				   closedir($handle); 
				}
				?>

Czy może mi ktoś powiedzieć jak przypisać jeden produkt do jednej strony produktowej, bo na razie po wejściu na produkt pokazują się pokazują się wszystkie strony produktowe z bazy danych...

0

A wiesz chociaż dlaczego wyświetlają Ci się wszystkie produkty? Swoją drogą albo jesteś początkujący - albo masz baaardzo złe nawyki. Nie wiemy też jak wygląda u Ciebie "przeglądanie produktów/produktu" - więc ciężko powiedzieć jak Ci pomóc.

Produkty masz w bazie danych? z kodu wynika że są w pliku tekstowym.

0

Jednak już sam do tego doszedłem, owszem jestem początkującym, traktuje to jako ćwiczenie, axelbest mógł byś sprecyzować dlaczego Od razu wywnioskowałeś że jestem początkującym?

0

Funkcja która służy Ci do wyświetlania wystarczy że miałaby jedno echo, a Ty byś co najwyżej mógł zrobić konkatenację. Tego typu funkcja jest dosyć słaba, bo funkcja z założenia powinna zwracać wynik jakiś. Narobisz z 10 takich funkcji jak masz i będziesz się głowił i żonglował - jak je spiąć razem. To jest baaardzo prawdopodobne źródło spaghetti kodu i ewentualnych błędów.
Aby tego uniknąć pomyśl o uzywaniu np TWIG'a lub innego systemu szablonów.

Produkty pobierasz z plików tekstowych - jak zajdzie potrzeba zaktualizowania np 1000 produktów - to będzie każdy plik ręcznie otwierał/ robił funkcję która każdy plik przeeedytuje? Zaharujesz się na śmierć z tym. Użyj jakiejś normalnej bazy danych na to.

A najlepiej to weź jakiś kurs np z udemy (jeszcze dziś jest chyba za 35 zeta), kup ksiazke albo przejdź jakieś tutki na YT - możesz też pokusić się o przejście podstawowych kroków z dokumentacji jakiegoś frameworka.

0

jak dla mnie uderz w jakiegoś frameworka, a potem znalezienie tutka z operacjami na bazach nie będzie większym problemem, ew. zainteresuj się cmsami sklepowymi

0

Dziękuje bardzo za wszelaką pomoc!!! Właśnie skończyłem robić cały ten sklep. Zabieram się za bazy mySQL, póki co jest to zdecydowanie mniej skomplikowane. Również wrócę do funkcji aby ją uprościć :)
Jeszcze raz dziękuje za pomoc :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1