• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

"Nie działające" INSERT INTO w kodzie php

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
0 głosów
1,795 wizyt
pytanie zadane 25 lipca 2017 w SQL, bazy danych przez Szczur Nowicjusz (190 p.)

Heja ponownie.

Znów z podobnym problemem otóż do pliku PHP, który odpowiada za wysyłanie maila z danymi z formularza na maila administratora strony postanowiłem dodać panel administratora, gdzie będzie znajdować się karta 'oczekujące i zaakceptowane wizyty". Problem pojawił się dosyć szybko, gdy postanowiłem go wdrożyć do tego właśnie pliku.
Kod wygląda w ten oto sposób;

<?php

	//Mail wizyt
	$od  = "From: wizyta@*********.pl \r\n"; 
	$od .= 'MIME-Version: 1.0'."\r\n";
	$od .= 'Content-type: text/html; charset=iso-8859-2'."\r\n";

	$adresat = '***********@gmail.com'; 
	$temat = 'Rezerwacja wizyty w Salonie Fryzjerskim';
	$name = $_POST['your-name'];
	$etel = $_POST['your-etel'];
	$date = $_POST['your-date'];
	$content = 'Osoba o imieniu i nazwisku: ' . $name . '<br />Kontaktujaca sie pod numerem lub mailem: ' . $etel . '<br />Chcialaby zarezerwowac wizyte dnia: ' . $date . '<br /> -- <br /> Wyslano z formularza kontaktowego na stronie ********.pl/wizyta;	
	
	//Wysylanie danych z formularza do tabeli `wizyty`
	$sql_conn = mysql_connect('localhost', '**********', '***********');
	mysql_select_db('***********');
	$zapytanie = "INSERT INTO `wizyty`(`id`, `your-name`, `your-etel`, `your-date`, `status`) VALUES ('NULL', '$name', '$etel', '$date', 'waiting')";
	mysql_query($zapytanie);
	mysql_close($sql_conn);

    if (mail($adresat, $temat, $content, $od)) 
       header("Location: finally.php"); 
    else 
       header("Location: lost.php"); 

?>

W czym problem? Ni cholery skrypt nie chce wysłać rekordu do bazy danych mimo, że wszystkie dane połączeniowe są poprawne. O przekierowywaniu na lost.php lub finally.php nie wspomnę. Mail działał normalnie póki nie dodałem połączenia z bazą danych.

@Edit: Kod do połączenia mysql, wysyłania rekordów brałem z jakiegoś tam poradnika, który podesłał mi kolega.

Pozdrawiam
Szczur
 

komentarz 25 lipca 2017 przez Arkadiusz Waluk Ekspert (289,990 p.)
Wyskakują jakieś błędy? Masz w ogóle włączone ich wyświetlanie? Jaką masz wersję PHP?
komentarz 25 lipca 2017 przez Szczur Nowicjusz (190 p.)
Wersja PHP to 5.6, co do wyświetlania błędów to było lecz nie pokazywało de facto żadnego błędu. Pustka.
komentarz 25 lipca 2017 przez Arkadiusz Waluk Ekspert (289,990 p.)
Na 5.6 powinno jeszcze działać. Pytam w kontekście funkcji zaczynających się od mysql_, które są już dawno zdeprecjonowane, a od PHP 7 usunięte - gdybyś miał 7, kod nie miałby szans zadziałać. Nawet jeśli nie masz, bardzo polecam zmianę na mysqli albo najlepiej PDO.

Na końcu linii 13 masz u siebie apostrof zamykający string? W powyżej podanym kodzie go nie ma.
komentarz 25 lipca 2017 przez Szczur Nowicjusz (190 p.)
Tak mam ten apostrof, pewno edytując komentarze (//) usunąłem go. Okej, poczytam na temat PDO i mysqli.
komentarz 25 lipca 2017 przez Szczur Nowicjusz (190 p.)
Świetnie, działa.  Użyłem mysqli, oczywiście były błędy, bo uczymy się na własnych błędach ;]

Pozdrawiam.
komentarz 25 lipca 2017 przez Arkadiusz Waluk Ekspert (289,990 p.)
Cieszę się, powodzenia ;)

Jako dodatek mogę dopowiedzieć, że funkcja mail() też jest słaba, bywają z nią problemy i jest mało wygodna (co widać wyżej, ręczne ustawianie nagłówków itd.). Lepiej skorzystać z biblioteki PHPMailer lub SwiftMailer i wysyłać przez SMTP.
komentarz 26 lipca 2017 przez Szczur Nowicjusz (190 p.)
Jasne, wezmę sobie Twoją radę do serca ;)

Jeszcze jedno pytanie, bo nie chce otwierać nowego tematu, żeby otrzymać małą odpowiedź. Robie tabelę użytkowników i potrzebuję dodać coś do kodu, żeby mi brało każdego użytkownika do <table> z statusem 'waiting' a nie, że ja mam ID = 1 i w każdej rubryce wyświetla tylko mnie. Mam nadzieję, że rozumiesz o co mi chodzi. Jeśli nie - to chce mieć spis użytkowników o ID od 1 do nieskończoności ale TYLKO z statusem 'waiting'.
Obecnie kod wygląda w ten sposób; https://pastebin.com/EjqAb4Vd w tabeli mam wpisane <?php echo $row[0]; ?> i tak 5 razy z inną liczbą w nawiasie.
komentarz 26 lipca 2017 przez Arkadiusz Waluk Ekspert (289,990 p.)

Hm, nie za bardzo rozumiem. Czyli potrzebujesz wybrać z bazy użytkowników tylko którzy mają status 'waiting'? Można to zrobić prostym zapytaniem dodając warunek, np. SELECT ... FROM ... WHERE status = 'waiting'. Następnie użyć fetch_all() i dostaniesz tablicę z listą rekordów, którą następnie możesz przeiterować np. pętlą foreach i zrobić co trzeba.

1
komentarz 26 lipca 2017 przez Milesq Nałogowiec (32,020 p.)
null nie powinno być w apostrofie ;)

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
0 odpowiedzi 537 wizyt
pytanie zadane 6 marca 2018 w SQL, bazy danych przez DinapeS Początkujący (350 p.)
0 głosów
1 odpowiedź 246 wizyt
pytanie zadane 16 lutego 2017 w SQL, bazy danych przez Marchiew Dyskutant (7,730 p.)
0 głosów
2 odpowiedzi 191 wizyt
pytanie zadane 9 czerwca 2018 w PHP przez Q7V Gaduła (4,250 p.)

93,187 zapytań

142,203 odpowiedzi

322,016 komentarzy

62,513 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 2365p. - dia-Chann
  2. 2326p. - Łukasz Piwowar
  3. 2315p. - Łukasz Eckert
  4. 2301p. - CC PL
  5. 2269p. - Tomasz Bielak
  6. 2235p. - Łukasz Siedlecki
  7. 2232p. - rucin93
  8. 2169p. - Marcin Putra
  9. 2006p. - Michal Drewniak
  10. 1946p. - Adrian Wieprzkowicz
  11. 1901p. - Mikbac
  12. 1744p. - rafalszastok
  13. 1734p. - Anonim 3619784
  14. 1586p. - Dawid128
  15. 1480p. - ssynowiec
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...