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

question-closed Formularz dodawania nowych artykułów do bazy - php7

Object Storage Arubacloud
0 głosów
334 wizyt
pytanie zadane 11 września 2017 w PHP przez Krzysztof Trybuś Mądrala (5,280 p.)
zamknięte 12 października 2017 przez Krzysztof Trybuś

Cześć :) Mam problem ze skryptem dodawania nowych artykułów do bazy - po wysłaniu zapytania nie jest tworzony w bazie nowy artykuł, nie wiem gdzie popełniłem gafę...

Skrypt tworzenia oraz dodawania artykułów - przy dodawaniu rekordu przez phpMyAdmin wszystko działa prawidłowo, natomiast dodawanie rekordu do bazy przez formularz mi nie działa - formularz jest przetwarzany, ale wartości się w bazie nie zapisują.

Skrypt PHP:

<div class="eleven wide column">
					<!-- lista artykułów -->
					<h2>Najnowsze artykuły</h2>
							<?php
								include('db_connect.php');
									$result = $mysqli->query(" SELECT * FROM articles ORDER BY id ");
									  while ( $article = mysqli_fetch_array($result) ) {
														echo '<article class="single-article">';
														echo '<h3>' . $article['title'] . '</h3>';
														echo '<img src="' . $article['image'] . '" alt="">';
														echo '<div class="article-content">';
														echo '<p>'. $article['content'] .'</p>';
														echo '</div>';
														echo '</article>';
												}
												/* dodawanie nowego artykulu */
												if ( isset($_POST['add']) ) {
													  	$title = $_POST['title'];
															$content = $_POST['content'];
															$image = $_POST['image'];
															$statement = $mysqli->prepare("INSERT articles (title, image, content) VALUES (?,?,?)");
															$statement->bind_param("sss",$title,$image,$content);
															$statement->execute();
															$statement->close();
															header("Location: index.php");
												}
							?>
					<!--<article class="single-article">
						<h3>Jak wysłać email za pomocą PHP</h3>
						<img src="http://placehold.it/350x150" alt="obraz">
						<div class="article-content">
							<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ab blanditiis error, ipsam. Adipisci, incidunt dicta, consectetur sit illum doloremque, dolorum esse dolore nostrum labore iusto rem dolores iste pariatur hic. Quibusdam neque nisi molestias autem sunt alias mollitia earum ad.</p>
						</div>
					</article>
					<article class="single-article">
						<h3>Najciekawsze nowości w PHP7</h3>
						<img src="http://placehold.it/350x150" alt="obraz">
						<div class="article-content">
							<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ab blanditiis error, ipsam. Adipisci, incidunt dicta, consectetur sit illum doloremque, dolorum esse dolore nostrum labore iusto rem dolores iste pariatur hic. Quibusdam neque nisi molestias autem sunt alias mollitia earum ad.</p>
						</div>
					</article>
					<article class="single-article">
						<h3>Najpopularniejsze frameworki PHP</h3>
						<img src="http://placehold.it/350x150" alt="obraz">
						<div class="article-content">
							<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ab blanditiis error, ipsam. Adipisci, incidunt dicta, consectetur sit illum doloremque, dolorum esse dolore nostrum labore iusto rem dolores iste pariatur hic. Quibusdam neque nisi molestias autem sunt alias mollitia earum ad.</p>
						</div>
					</article>-->
					<h2>Dodaj nowy artykuł</h2>
					<form method="get" action="<?php echo $_SERVER['PHP_SELF']; ?>" class="ui form">
						<div class="required field">
							<label>Tytuł</label>
							<input type="text" name="title" id="title">
						</div>
						<div class="required field">
							<label>Treść artykułu</label>
							<textarea name="content" id="content" cols="30" rows="10"></textarea>
						</div>
						<div class="required field">
							<label>Obrazek</label>
							<input type="text" name="image" id="image">
						</div>
						<input type="submit" class="ui primary button" id="add" name="add" value="Dodaj artykuł"></input>
					</form>
  				</div>

 db_connect.php:

<?php
$dbServer = 'localhost';
$dbUser = 'root';
$dbPassword = '';
$dbName = 'kurs_php7';

$mysqli = new mysqli($dbServer, $dbUser, $dbPassword, $dbName);
$mysqli->set_charset("utf8");
    if ( mysqli_connect_errno() ) {
          echo 'Blad bazy danych';
    }

 

komentarz zamknięcia: Uzyskano odpowiedż odnośnie poruszanego zagadnienia.

1 odpowiedź

0 głosów
odpowiedź 11 września 2017 przez Chess Szeryf (76,710 p.)
wybrane 11 września 2017 przez Krzysztof Trybuś
 
Najlepsza

1. U Ciebie jest INSERT ..., nie wiem czy nie powinno być INSERT INTO ....

2. Masz ustawioną metodę w formularzu na GET, a odbierasz w skrypcie PHP metodą POST, to nie ma prawa zadziałać.

3. Gdyby nie działało wyrzuć chwilowo isset() lub daj !isset(). W każdym bądź razie kombinuj z tą funkcją i jeszcze z empty().

4. Źle formatujesz kod (wcięcia, spacje, itp.).

komentarz 11 września 2017 przez Mariusz08 Maniak (62,300 p.)

Źle formatujesz kod (wcięcia, spacje, itp.).

PSR-2 

komentarz 11 września 2017 przez Krzysztof Trybuś Mądrala (5,280 p.)
1. Jest to opcjonalne - w przypadku MySQL, ale w innych systemach zarządzania bazami może być wymagane INSERT INTO i nie wiem czy INSERT INTO nie jest bardziej elastyczne/prawidłowe.

2. Tak... miałeś rację :) Za długo siedziałem nad kodem i mnie pochłonął - w tym tkwił problem. Tak to w życiu bywa, że na banałach się człowiek "wyłoży".

Podobne pytania

0 głosów
4 odpowiedzi 564 wizyt
pytanie zadane 1 grudnia 2017 w PHP przez Andrzej Sojka Użytkownik (510 p.)
0 głosów
0 odpowiedzi 136 wizyt
pytanie zadane 3 lipca 2018 w PHP przez JeyJey Użytkownik (710 p.)
0 głosów
1 odpowiedź 400 wizyt
pytanie zadane 20 kwietnia 2018 w PHP przez Konfeusz Bywalec (2,810 p.)

92,565 zapytań

141,416 odpowiedzi

319,600 komentarzy

61,950 pasjonatów

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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...