Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] Formularz zamówieniowy
Forum PHP.pl > Forum > Przedszkole
RafalKostrzewa
Witam serdecznie , mam taki problem mianowicie po stworzeniu formularza zamowieniowego opartego na Bazie Mysql z polami takimi jak login, imie nazwisko itp chce aby w bazie nie powtarzaly sie loginy uzytkownikow - prosze popatrzec :


CODE

if (!$login || !$imie || !$nazwisko || !$mail || !$rodzaj || !$miesiac || !$rok || !$dzien )

{


print ("Nie zostaly wypelnione wszystkie pola");

exit;

}

$login = addslashes($login);
$imie = addslashes($imie);
$nazwisko = addslashes($nazwisko);
$meil = addslashes($meil);

$rodzaj = addslashes($rodzaj);
$miesiac = addslashes($miesiac);
$dzien = addslashes($dzien);

$rozmiar = addslashes($rozmiar);
$rok = addslashes($rok);

@$db = mysql_pconnect("localhost", "root", "krasnal");
if (!$db)
{
print "Nie można nawiązać połączenia z bazą danych";
exit;
}

mysql_select_db("sklep");



$query = "insert into koszulki values ('".$id."', '".$login."', '".$nazwisko."',

'".$mail."')";
$result = mysql_query($query);

$zapytanie = 'select * from koszulki where login = "'.$login.'" ';
$wynik = mysql_query($wynik);

if(!$wynik==0)
{

if ($result)

print "Towar ".$login." został dodany do bazy danych.";
else { print "W bazie istnieje już produkt o tym numerze."; }
}
else
{
echo 'Error!! Takie Imię i Nazwisko Już Istnieje w Bazie Danych';
}
?>


po uzupełnieniu wszystkich pól w formularzu i kliknięciu zamawiam pisze ze już taki wpis jest już w bazie lecz to jest błędny komunikat gdyż baza jest pusta nie wiem jak sobie z tym poradzić żeby wszystko było ok aby po wpisaniu danych do formularza dodawał się wpis do bazy lecz nie powtarzał np login ja pokaże screeny









Lecz przypominam baza jest pusta mógł by mi ktoś pomoc i powiedzieć jak to dokładnie zrobić aby wszystko sprawnie funkcjonowało

z Góry dziękuje i pozdrawiam smile.gif
-tomm-
masz błąd w tej linii
$wynik = mysql_query($wynik);
masz jako argument wstawić $zapytanie bo tak ci zwraca 0 i wykonuje się ostatni else
RafalKostrzewa
Niestety to nie pomogło teraz php drukuje mi napis W bazie istnieje już produkt o tym numerze.

napis zawarty jest w kodzie który podałem wyżej a wiec nie pomogło sad.gif sad.gif


CODE
$wynik = mysql_query($zapytanie);


zmienilem to co mówiłeś
-tomm-
$result to uchwyt do wyniku zapytania, tak samo $wynik. Ten warunek
if(!$wynik==0)
powinieneś sprawdzać
if(mysql_num_rows($wynik) != 0)
natomiast dla INSERTA użyj funkcji mysql_fetch_row()
RafalKostrzewa
Tomm moglbys mi to wyslac caly ten kod php z tymi zmianami co piszesz lub jak chcesz napisz na gg 8824584 bedzie szybsza komunikacja
FliSs_tCv
Teraz z tym spróbuj może załapie winksmiley.jpg

  1. <?php
  2. if (!$login == '' || !$imie == '' || !$nazwisko == '' || !$mail == '' || !$rodzaj == '' || !$miesiac == '' || !$rok == '' || !$dzien == '' )
  3. {
  4. print ("Nie zostaly wypelnione wszystkie pola");
  5. }
  6.  
  7. $login = addslashes($login);
  8. $imie = addslashes($imie);
  9. $nazwisko = addslashes($nazwisko);
  10. $meil = addslashes($meil);
  11. $rodzaj = addslashes($rodzaj);
  12. $miesiac = addslashes($miesiac);
  13. $dzien = addslashes($dzien);
  14. $rozmiar = addslashes($rozmiar);
  15. $rok = addslashes($rok);
  16.  
  17. $db = @mysql_pconnect("localhost", "root", "krasnal");
  18. if (!$db)
  19. {
  20. print "Nie można nawiązać połączenia z bazą danych";
  21. }
  22. @mysql_select_db("sklep");
  23. $query = "INSERT INTO koszulki values ('$id', '$login', '$nazwisko', '$mail')";
  24. $result = @mysql_query($query);
  25. $zapytanie = 'SELECT * FROM koszulki where login = "'.$login.'" ';
  26. $wynik = @mysql_query($wynik);
  27.  
  28. if(!$wynik==0)
  29. {
  30. if ($result) print "Towar ".$login." został dodany do bazy danych.";
  31. }
  32. else
  33. {
  34. print "W bazie istnieje już produkt o tym numerze."; }
  35. }
  36. else
  37. {
  38. echo 'Error!! Takie Imię i Nazwisko Już Istnieje w Bazie Danych';
  39. }
  40. ?>



----------------- EDIT

Jak dla mnie to tu coś jeszcze jest nie tak ze skryptem zastanawia mnie całość od połączenia z bazą w dół winksmiley.jpg
-TOMM-
// NAJPIERW SPRAWDZENIE CZY TAKI LOGIN JEST JUŻ W BAZIE
  1. <?php
  2. $q = 'SELECT * FROM koszulki WHERE login = "'.$login.'"';
  3. $r = mysql_query($q);
  4. if(mysql_num_rows($r) > 0){
  5. echo 'Taki login jest już w bazie';
  6. }
  7. else {
  8. // tutaj INSERT do bazy
  9. }
  10. ?>
RafalKostrzewa
oto rezultat kodu ktorego podales wyzej


CODE
Parse error: parse error in c:\usr\krasnal\www\rafi\dodaj.php on line 37



kurcze pomocyyy
wysle linka do spakowanego skryptu

Formularz

pomocyyyyyyyy ;(
matssuda
Sporo błędów w jednym małym skrypcie:) Poprawiłem tylko zapytania i warunek.
  1. <?
  2. if ( empty($_POST['login']) || empty($_POST['imie']) || empty($_POST['nazwisko']) || empty($_POST['mail']) || empty($_POST['rodzaj']) || empty($_POST['miesiac']) || empty($_POST['rok']) || empty($_POST['dzien']) )
  3. {
  4. print ("Nie zostaly wypelnione wszystkie pola");
  5. }
  6.  
  7. $db = @mysql_pconnect("localhost", "root", "krasnal");
  8.  
  9. if (!$db)
  10. {
  11. print "Nie można nawiązać połączenia z bazą danych";
  12. }
  13.  
  14. @mysql_select_db("sklep");
  15.  
  16. $sql = mysql_query('SELECT * FROM koszulki where login = "'.$_POST['login'].'" ');
  17.  
  18. if (mysql_num_rows($sql) == 0)
  19. {
  20.  
  21. $query = 'INSERT INTO koszulki (id,login,imie,nazwisko,mail,telefon,ulica,kod,rozmiar) VALUES (NULL, "'.$_POST['login'].'", "'.$_POST['imie'].'" , "'.$_POST['nazwisko'].'", "'.$_POST['mail'].'", "'.$_POST['telefon'].'", "'.$_POST['ulica'].'" , "'.$_POST['kod'].'" , "'.$_POST['rozmiar'].'")';
  22.  
  23. if(mysql_query($query)) 
  24. {
  25. print "Towar ".$_POST['login']." został dodany do bazy danych.";
  26. }
  27. else
  28. {
  29. print "Dodawanie zamówienia nieudane";
  30. }
  31.  
  32. }
  33. else
  34. {
  35. echo 'Error!! Takie Imię i Nazwisko Już Istnieje w Bazie Danych';
  36. }
  37. ?>


To będzie działać, ale nie dodawałem filtrowania i sprawdzania danych - użytkownikowi w ręce bym tego nie oddał.
RafalKostrzewa
Dzieki maatssuda pomogles mi wszystko dziala 100% lecz chce dodac jeszcze jedna funkcje mianowicie funkcje wysylania meila ktory wysle uzytkownikowi meila na podany w foormularzu adres oto kod mojego skryptu


CODE
if ( empty($_POST['login']) || empty($_POST['imie']) || empty($_POST['nazwisko']) ||

empty($_POST['mail']) || empty($_POST['rodzaj']) || empty($_POST['miesiac']) ||

empty($_POST['rok']) || empty($_POST['dzien']) )
{
print ("Nie zostaly wypelnione wszystkie pola");
exit;
}

$login = trim($login);

$db = @mysql_pconnect("localhost", "root", "krasnal");

if (!$db)
{
print "Nie można nawiązać połączenia z bazą danych";
exit;
}

@mysql_select_db("sklep");

$sql = mysql_query('SELECT * FROM koszulki where login = "'.$_POST['login'].'" ');

if (mysql_num_rows($sql) == 0)
{

$query = 'INSERT INTO koszulki (id,login,imie,nazwisko,mail,telefon,ulica,kod,rozmiar)

VALUES (NULL, "'.$_POST['login'].'", "'.$_POST['imie'].'" , "'.$_POST['nazwisko'].'",

"'.$_POST['mail'].'", "'.$_POST['telefon'].'", "'.$_POST['ulica'].'" , "'.$_POST['kod'].'" ,

"'.$_POST['rozmiar'].'")';

if(mysql_query($query))
{
print "Dziekujemy za zamówienie na podany adres E Mail zostaly wyslane dane doyczace

przelewu.";
}

$imie = "$_POST['imie']"; //senders name
$mail = "$_POST['mail']"; //senders e-mail adress
$recipient = "rafik9000@poczta.fm"; //recipient
$mail_body = "Dziekujemy za zamowienie"; //mail body
$subject = "Subject for reviever"; //subject
$header = "From: "$_POST['imie'] . " <" $_POST['mail'] . ">\r\n"; //optional headerfields

mail($recipient, $subject, $mail_body, $header); //mail command

else
{
print "Dodawanie zamówienia nieudane";
}

}
else
{ print "Uzytkownik ".$_POST['login']." juz istnieje exclamation.gif."; }





?>


gdy wypelnie wszystkie pola i klikne zamow pojawia sie blad


CODE
Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in c:\usr\krasnal\www\rafi\dodaj.php on line 32



nie bardzo wiem co jest nie tak moglby ktos pomoc smile.gif questionmark.gif
matssuda
Nie analizowałem dokladnie, ale kod wysyłający funkcja mail(); dałeś poza klamrę warunku if()

Spróbuj tak:
  1. <?
  2. if ( empty($_POST['login']) || empty($_POST['imie']) || empty($_POST['nazwisko']) || empty($_POST['mail']) || empty($_POST['rodzaj']) || empty($_POST['miesiac']) || empty($_POST['rok']) || empty($_POST['dzien']) )
  3. {
  4.    print ("Nie zostaly wypelnione wszystkie pola");
  5.    exit;
  6. }
  7. $login = trim($login);
  8. $db = @mysql_pconnect("localhost", "root", "krasnal");
  9. if (!$db)
  10. {
  11.    print "Nie można nawiązać połączenia z bazą danych";
  12.    exit;
  13. }
  14. @mysql_select_db("sklep");
  15. $sql = mysql_query('SELECT * FROM koszulki where login = "'.$_POST['login'].'" ');
  16.  
  17. if (mysql_num_rows($sql) == 0)
  18. {
  19.    $query  = 'INSERT INTO koszulki (id,login,imie,nazwisko,mail,telefon,ulica,kod,rozmiar) ';
  20.    $query .= 'VALUES (NULL, "'.$_POST['login'].'", "'.$_POST['imie'].'" , "'.$_POST['nazwisko'].'",';
  21.    $query .= '"'.$_POST['mail'].'", "'.$_POST['telefon'].'", "'.$_POST['ulica'].'" , "'.$_POST['kod'].'" ,';
  22.    $query .= '"'.$_POST['rozmiar'].'")';
  23.    
  24.    if(mysql_query($query))
  25.    {
  26.        print "Dziekujemy za zamówienie na podany adres E Mail zostaly wyslane dane doyczace przelewu.";
  27.        
  28.        $imie = "$_POST['imie']"; //senders name
  29.        $mail = "$_POST['mail']"; //senders e-mail adress
  30.        $recipient = "rafik9000@poczta.fm"; //recipient
  31.        $mail_body = "Dziekujemy za zamowienie"; //mail body
  32.        $subject = "Subject for reviever"; //subject
  33.        $header = "From: "$_POST['imie'] . " <" $_POST['mail'] . ">r\n"; //optional headerfields
  34.        
  35.        mail($recipient, $subject, $mail_body, $header); //mail command
  36.    }
  37.    else
  38.    {
  39.        print "Dodawanie zamówienia nieudane";
  40.    }
  41. }
  42. else
  43. {
  44.    print "Uzytkownik ".$_POST['login']." juz istnieje exclamation.gif.";
  45. }
  46. ?>
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.