tworzenie sklepu internetowego, Problemy i pytania |
tworzenie sklepu internetowego, Problemy i pytania |
21.07.2013, 14:54:00
Post
#1
|
|
Grupa: Zarejestrowani Postów: 324 Pomógł: 27 Dołączył: 21.07.2013 Ostrzeżenie: (0%) |
Witam, tworzę swój pierwszy silnik pod sklep internetowy, ma to być najprostszy silnik z kilkoma funkcjami, który z czasem zostanie rozbudowany.
W związku z tym mam kilka pytań Tworząc sklep wszystkie informacje o produktach oraz podstronach(które mają jakieś funkcje np. dodawanie produktu) będę trzymał w bazie danych. Produkty będę dodawał za pomocą dodawania rekordu oraz będę wyświetlał ten rekord w celu uzyskania "efektu" dodanego przedmiotu. To mniej więcej wiem jak zrobić, lecz problem mam z tym jak dodawać zdjęcia. Np. na stronie jest 10 przedmiotów jeden pod drugim i one mają swoje zdjęcia miniaturki. I właśnie tego na razie nie wiem, dlatego proszę o pomoc:) -------------------- ;)
|
|
|
21.07.2013, 15:30:25
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 455 Pomógł: 6292 Dołączył: 27.12.2004 |
Upload pliku/zdjecia
http://www.php.net/manual/pl/features.file...post-method.php -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
21.07.2013, 17:34:14
Post
#3
|
|
Grupa: Zarejestrowani Postów: 550 Pomógł: 75 Dołączył: 5.06.2012 Skąd: Lębork Ostrzeżenie: (0%) |
Uploaduj pełnowymiarowe zdjęcia(tak jak napisal Nospor) a potem twórz miniaturki za pomocą GD
|
|
|
21.07.2013, 20:14:30
Post
#4
|
|
Grupa: Zarejestrowani Postów: 324 Pomógł: 27 Dołączył: 21.07.2013 Ostrzeżenie: (0%) |
Dzięki.
Mam kolejne pytanie:D Zrobiłem takie coś, że z formularza pobieram dane i je dodaje do jako rekord do bazy. Następnie na jakiejś podstronie wyświetlam ten rekord pięknie w tabelce, jeden pod drugim (jeśli jest ich kilka). Ale chciałbym zrobić takie coś, aby przy każdym wyświetlonym rekordzie pojawiał się guzik, którym można było by go usunąć i żeby skrypt do tego guzika automatycznie się uzupełniał danymi (jeśli to możliwe), że to właśnie o ten rekord chodzi, a nie o inny, który jest pod nim. -------------------- ;)
|
|
|
21.07.2013, 21:16:42
Post
#5
|
|
Grupa: Zarejestrowani Postów: 476 Pomógł: 96 Dołączył: 10.04.2008 Skąd: Koszalin Ostrzeżenie: (0%) |
Wraz z pobranymi danymi pobieraj id. Przyciski możesz zrobić w formie linków, wtedy przypisujesz każdemu np. /delete.php?id=tutaj_pobrane_id
W pliku delete.php tworzysz już sprawdzanie, usuwanie itp. Ten post edytował pitu 21.07.2013, 21:17:13 -------------------- |
|
|
22.07.2013, 06:17:46
Post
#6
|
|
Grupa: Zarejestrowani Postów: 515 Pomógł: 63 Dołączył: 27.08.2012 Ostrzeżenie: (0%) |
jeśli to Twój 1 taki projekt, to zamiast linków możesz też użyć button'a gdzie dla wartosci value podajesz : value="<?php echo $id_produktu; ?>". Wtedy po kliknięciu sprawdzasz postem który button został kliknięty i go osuwasz. Różnica niewielka pomiędzy linkiem, ale trochę bezpieczniej z racji tego, że taki link do usuwania może wpisać każdy w przeglądarce. No ale to już drobiazg bo łatwo to zabezpieczyć : ) sprawdzaj przy każdej operacji w panelu administratora, czy istnieje sesja admina.
|
|
|
22.07.2013, 10:40:37
Post
#7
|
|
Grupa: Zarejestrowani Postów: 324 Pomógł: 27 Dołączył: 21.07.2013 Ostrzeżenie: (0%) |
Mam takie coś, ma to za zadanie wyświetlać rekordy z bazy.
Kod $zapytanie = "SELECT `login` FROM `uzytkownicy`"; $idzapytania = mysql_query($zapytanie); while ($wiersz = mysql_fetch_row($idzapytania)) echo "<table border=1 bgcolor=green> <tr><td>$wiersz[0] </td></tr> </table>" Można to przerobić w ten sposób, aby to działało, bo w tym jest coś nie tak Kod while($wiersz=mysql_fetch_row(mysql_query(SELECT `login` FROM `uzytkownicy`)));
echo "<table border=1 bgcolor=green> <tr><td>$wiersz[0] </td></tr> </table>" -------------------- ;)
|
|
|
22.07.2013, 12:30:14
Post
#8
|
|
Grupa: Zarejestrowani Postów: 142 Pomógł: 24 Dołączył: 30.03.2009 Skąd: Rokitno Szlacheckie Ostrzeżenie: (0%) |
@kujol: Nie zadziała, bo za każdym razem będzie nowy handler dla zapytania i w nieskończoność będzie Ci zwracać pierwszy rekord.
|
|
|
22.07.2013, 13:53:52
Post
#9
|
|
Grupa: Zarejestrowani Postów: 33 Pomógł: 1 Dołączył: 17.07.2013 Ostrzeżenie: (0%) |
Zgadzam się z tym że zawsze będzie zwracał pierwszy rekord , ale jak będzie pusta tabela w bazie danych wyświetli ci tabelę z niczym. Ja sprawdzam czy istnieją jakieś dane za pomocą if(is_array($dana)) { i tu wyświetlam dane } coś w tym stylu
Ja używam foreach |
|
|
22.07.2013, 21:19:55
Post
#10
|
|
Grupa: Zarejestrowani Postów: 324 Pomógł: 27 Dołączył: 21.07.2013 Ostrzeżenie: (0%) |
Tworze swój skrypt logowania, tylko coś jest nie tak, może ktoś mi wytłumaczyć co robię nie tak, i jak to powinno wyglądać.
1. plik to formularz logowania, nie umieszczam go ponieważ każdy pewnie wie jak takie coś wygląda. 2. plik to logowanie, który wygląda następująco, i to w nim są błędy. Kod <?php mysql_connect("host", "login", "haslo")or die("Nie można nawiązać połączenia z bazą"); //łącze z bazą danych mysql_select_db("baza")or die("Wystąpił błąd podczas wybierania bazy danych"); $login = $_POST['login']; //pobieram dane z formularza $haslo = $_POST['haslo']; if (isset($_POST['zaloguj'])); //sprawdza czy użytkownik wcisną przycisk { if (!empty($_POST['login']) && !empty($_POST['haslo']); //sprawdzam czy uzupełniono pola login oraz hasło { if (mysql_num_rows(mysql_query("SELECT login, haslo FROM uzytkownicy WHERE login = '".$login."' AND haslo = '".$haslo."' ")) > 0); //sprawdza czy użytkownik istnieje session_start( ); //rozpoczynam sesje $_SESSION['zalogowany'] = 1; $_SESSION['login'] = $login; $_SESSION['haslo'] = $haslo; echo "jestes zalogowany"; elseif (mysql_num_rows(mysql_query("SELECT login, haslo FROM uzytkownicy WHERE login = '".$login."' AND haslo = '".$haslo."' ")) = 0); //jeśli urzytkownik nie istnieje to wyświetla komunikat echo "taki uzytkownik nie istnieje"; } echo "uzupełnij wymagane pola"; } ?> -------------------- ;)
|
|
|
23.07.2013, 06:38:21
Post
#11
|
|
Grupa: Zarejestrowani Postów: 33 Pomógł: 1 Dołączył: 17.07.2013 Ostrzeżenie: (0%) |
if (mysql_num_rows(mysql_query("SELECT login, haslo FROM uzytkownicy WHERE login = '".$login."' AND haslo = '".$haslo."' ")) > 0); //sprawdza czy użytkownik istnieje
session_start( ); //rozpoczynam sesje $_SESSION['zalogowany'] = 1; $_SESSION['login'] = $login; $_SESSION['haslo'] = $haslo; echo "jestes zalogowany"; else if (mysql_num_rows(mysql_query("SELECT login, haslo FROM uzytkownicy WHERE login = '".$login."' AND haslo = '".$haslo."' ")) == 0); //jeśli urzytkownik nie istnieje to wyświetla komunikat echo "taki uzytkownik nie istnieje"; ================================================================================ ========== Powinno być :
================================================================================ ========= ja używam przenoszenia na stronę wyświetlania odpowiedniego komunikatu np : else header("Location: /logowanie/"); lub nie ukrywasz kodu php else header("Location: logowanie.php"); Ten post edytował zebrowski1073 23.07.2013, 06:40:36 |
|
|
23.07.2013, 08:14:55
Post
#12
|
|
Grupa: Zarejestrowani Postów: 2 958 Pomógł: 574 Dołączył: 23.09.2008 Skąd: wiesz, że tu jestem? Ostrzeżenie: (0%) |
1. Nie trzymaj w sesji hasła...
2. Po co trzymać login? 3. Wystarczy samo id zalogowanego użytkownika
|
|
|
24.07.2013, 20:53:04
Post
#13
|
|
Grupa: Zarejestrowani Postów: 324 Pomógł: 27 Dołączył: 21.07.2013 Ostrzeżenie: (0%) |
Mam takie coś, co wyświetla mi wszystkie loginy z bazy, a obok nich przyciski do usunięcia. Lecz to coś nie działa, a wygląda następująco:
Plik 1. guzik.php Kod $zapytanie = "SELECT `login`, `id` FROM `uzytkownicy`"; //pobieram loginy i id, oraz za pomocą pętli wyświetlam $idzapytania = mysql_query($zapytanie); while ($wiersz = mysql_fetch_row($idzapytania)) echo "<table border=1 bgcolor=gray> //wszystko ładnie w tabelach <tr> <td width=40 height=50><b>Login:</b></td> <td width=80 height=50>$wiersz[0]</td> <form action=zniszcz.php method=post> <input type=submit value=$wiersz[1] /> //przypisuje id przyciskowi </ Form> </tr> <table>" Plik 2. zniszcz.php Kod $usun=$_POST['$wiersz[1]']; //odbieram id z przycisku $zapytanie = "DELETE FROM `uzytkownicy` WHERE `id`='$usun'"; //usuwam uzytkownika $idzapytania = mysql_query($zapytanie); Plik 1 działa raczej dobrze lecz w pliku 2 tak jakby nie pobiera wartości id. Jak mogę to poprawić, oraz jak zrobić aby przycisk nie miał swojej nazwy np. 21, czyli pobranego id lecz np. usun. -------------------- ;)
|
|
|
25.07.2013, 02:27:57
Post
#14
|
|
Grupa: Zarejestrowani Postów: 476 Pomógł: 96 Dołączył: 10.04.2008 Skąd: Koszalin Ostrzeżenie: (0%) |
W pierwszym pliku zmień przycisk, czyli linijkę:
Kod <input type=submit value=$wiersz[1] /> na: Kod <button name="delete" type="submit" value=".$wiersz[1].">Usuń</button> W drugim pliku natomiast:
na:
-------------------- |
|
|
27.07.2013, 09:35:08
Post
#15
|
|
Grupa: Zarejestrowani Postów: 324 Pomógł: 27 Dołączył: 21.07.2013 Ostrzeżenie: (0%) |
Jak można zrobić takie coś aby wyświetlało mi ilość rekordów w bazie.
Chodzi mi o taki efekt, jak w niektórych sklepach w menu z kategoriami (obok nazwy tej kategorii) w nawiasie jest podana ilość produktów. I jak można zrobić ze tak ujmę automatyczne tworzenie kolejnej strony np. na stronie mam wyświetlonych 10 produktów ale łącznie ich jest 50 i chciałbym aby one były na kolejnej stronie (na każdej po 10). Ja tylko tworzę skrypt dla jednej strony a reszta automatico:D jeśli tak się da. Ten post edytował kujol 26.07.2013, 21:27:49 -------------------- ;)
|
|
|
27.07.2013, 10:38:23
Post
#16
|
|
Grupa: Zarejestrowani Postów: 550 Pomógł: 75 Dołączył: 5.06.2012 Skąd: Lębork Ostrzeżenie: (0%) |
1 używasz funkcji mysql_num_rows
2. To o czym piszesz nazywa się stronnicowanie. Wygoogluj sb te hasło i poczytaj. Możesz skożystać też z klasy którą udostępnił nospor na swojej stronie pod nazwą paginator. |
|
|
1.08.2013, 18:13:21
Post
#17
|
|
Grupa: Zarejestrowani Postów: 324 Pomógł: 27 Dołączył: 21.07.2013 Ostrzeżenie: (0%) |
Wysyłam prościutkie zapytanie o to czy użytkownik o podanym loginie i haśle istnieje, jeśli tak to wyświetla "ok", a jeśli nie to "no", lecz serwer wywala mi error.
Wygląda to tak: Kod <? session_start(); mysql_connect("mysql.cba.pl", "zul_cba_pl", "QWERTY123")or die("Nie można nawiązać połączenia z bazą"); //łącze z bazą danych mysql_select_db("zul_cba_pl")or die("Wystąpił błąd podczas wybierania bazy danych"); $login = $_POST['login']; //pobieram dane z formularza $haslo = $_POST['haslo']; if(mysql_num_rows(mysql_query("SELECT login haslo FROM uzytkownicy WHERE login = '".$login."' && haslo = '".$haslo."' ")) > 0 ); { echo "OK"; } else { echo "NO"; } ?> Gdy usunę tą część: Kod else { echo "NO"; } to wyświetla mi tylko ok, a według mnie nie powinno nic, ponieważ wartość jest "=0" Może ktoś doradzić jak to powinno być. -------------------- ;)
|
|
|
1.08.2013, 18:20:50
Post
#18
|
|
Grupa: Zarejestrowani Postów: 476 Pomógł: 96 Dołączył: 10.04.2008 Skąd: Koszalin Ostrzeżenie: (0%) |
po instrukcji if() nie stawia się średnika ";"
-------------------- |
|
|
2.08.2013, 22:20:28
Post
#19
|
|
Grupa: Zarejestrowani Postów: 324 Pomógł: 27 Dołączył: 21.07.2013 Ostrzeżenie: (0%) |
Sprawdzam warunek if() jeśli nie zostanie on spełniony to wykonuje przekierowanie za pomocą header().
I chciałbym na przekierowanej stronie wyświetlić jakiś tekst odnośnie nie spełnionego warunku. Jak to można zrobić? -------------------- ;)
|
|
|
2.08.2013, 22:43:34
Post
#20
|
|
Grupa: Zarejestrowani Postów: 103 Pomógł: 17 Dołączył: 15.12.2012 Ostrzeżenie: (0%) |
|
|
|
Wersja Lo-Fi | Aktualny czas: 26.04.2024 - 04:32 |