Problem z dodawaniem rekordów do bazy przez formularz

0

Mam takie pliki

 <?php
require("connection.php");
connection();
$nick = $_POST['id'];
$nick = $_POST['nick'];
$haslo = $_POST['haslo'];
$gg = $_POST['gg'];
$serwer = $_POST['serwer'];
$flaga = $_POST['flaga'];
$typ = $_POST['typ'];
$kodsms = $_POST['kodsms'];

$zapytanie = "INSERT INTO `admin` VALUES('".$id."','".$nick."','".$haslo."','".$gg."','".$serwer."','".$flaga."','".$typ."','".$kodsms."')";
mysql_query($zapytanie);

echo "Dziekujemy za zakup Vipa";
echo "<br>";
echo "Twój vip został dodany automatycznie";
echo "<br>";
echo "Wpisz w konsoli setinfo _pw 'haslo'";
echo "<br>";
echo "Teraz wystarczy ze poczkasz na zmiane mapy";
?>

i ten plik

 
<html>
<head>
<title> Zakup Admina </title></head>
<body> 
 <form method="POST" action="index.php?go=kupv">
 Id: <input type="text" size="30" name="id"><br>
Nick: <input type="text" size="30" name="nick"><br>
Hasło: <input type="password" maxlength="15" minlength="3" size="40" name="haslo"><br>
GG: <input type="text" size="40" name="gg"><br>
Wybierz Serwer:  <select name="serwer">
		<option>FFA</option>
		<option>TP</option>
		<option>DM</option>
		</select><br>
		<input type="hidden" name="flaga" value="dasdasda" /><br>
		<input type="hidden" name="typ" value="a" /><br>
Kodsms: <input type="text" size="40" name="kodsms"><br>
<input type="submit" value="wyslij">
<input type="reset" value="Reset">
</form>
</body>
</html>

i baza

 
$zapytanie2 = 'CREATE TABLE vip (
 id int NOT NULL AUTO_INCREMENT,
 nick VARCHAR( 32 ) NOT NULL,
 haslo VARCHAR( 32 ) NOT NULL,
 gg VARCHAR( 15 ) NOT NULL,
 serwer VARCHAR( 15 ) NOT NULL,
 flaga VARCHAR( 15 ) NOT NULL,
 typ VARCHAR( 4 ) NOT NULL,
 kodsms VARCHAR( 15 ) NOT NULL,
 PRIMARY KEY(id))';

I tak jak usunę rekord id z bazy i z php to jest dobrze a jak go dodam to mi nie wysyła danych do bazy.Dlaczego tak jest

0

Po 1) ID masz auto_increment, po co ręcznie wstawiasz ID ?

Po 2) Tworzysz tabelę vip a próbujesz wrzucać do admin:

$zapytanie = "INSERT INTO `admin` VALUES('".$id."','".$nick."','".$haslo."','".$gg."','".$serwer."','".$flaga."','".$typ."','".$kodsms."')";

Warto pod wykonywaniem zapytania do bazy dla testu wrzucić:

echo mysql_error();
0

Teraz mam tak i wraz nie dodaje:

<?php
require("connection.php");
connection();
$nick = $_POST['nick'];
$haslo = $_POST['haslo'];
$gg = $_POST['gg'];
$serwer = $_POST['serwer'];
$flaga = $_POST['flaga'];
$typ = $_POST['typ'];
$kodsms = $_POST['kodsms'];

$zapytanie = "INSERT INTO `vip` VALUES('".$nick."','".$haslo."','".$gg."','".$serwer."','".$flaga."','".$typ."','".$kodsms."')";
mysql_query($zapytanie);


echo "Dziekujemy za zakup Vipa";
echo "<br>";
echo "Twój vip został dodany automatycznie";
echo "<br>";
echo "Wpisz w konsoli setinfo _pw 'haslo'";
echo "<br>";
echo "Teraz wystarczy ze poczkasz na zmiane mapy";
?> 
 
<html>
<head>
<title> Zakup Admina </title></head>
<body> 
 <form method="POST" action="index.php?go=kupv">
 Nick: <input type="text" size="30" name="nick"><br>
Hasło: <input type="password" maxlength="15" minlength="3" size="40" name="haslo"><br>
GG: <input type="text" size="40" name="gg"><br>
Wybierz Serwer:  <select name="serwer">
		<option>FFA</option>
		<option>TP</option>
		<option>DM</option>
		</select><br>
		<input type="hidden" name="flaga" value="dasdasda" /><br>
		<input type="hidden" name="typ" value="a" /><br>
Kodsms: <input type="text" size="40" name="kodsms"><br>
<input type="submit" value="wyslij">
<input type="reset" value="Reset">
</form>
</body>
</html>
0

Albo tak:

$zapytanie = "INSERT INTO `vip`(`nick`, `haslo`, `gg`, `serwer`, `flaga`, `typ`, `kodsms`)
VALUES('".$nick."','".$haslo."','".$gg."','".$serwer."','".$flaga."','".$typ."','".$kodsms."')";

albo tak:

$zapytanie = "INSERT INTO `vip`(`id`, `nick`, `haslo`, `gg`, `serwer`, `flaga`, `typ`, `kodsms`)
VALUES('".$id."', '".$nick."','".$haslo."','".$gg."','".$serwer."','".$flaga."','".$typ."','".$kodsms."')";

albo tak:

$zapytanie = "INSERT INTO `vip`
VALUES('".$id."', ".$nick."','".$haslo."','".$gg."','".$serwer."','".$flaga."','".$typ."','".$kodsms."')";

Sprawdź sobie sam czym różnią się te zapytania od twoich.

Pozdrawiam

0

nie dzial nic

0
qetli napisał(a)

nie dzial nic

xaxaxaxaxa jak nie umiesz skopiować kodu to już niestety ci nie pomogę. Wszystkie z tych zapytań przetestowałem czy nie zrobiłem jakiejś literówki. Są skopiowane prosto z edytora. Nie mają prawa nie działać. Jaki jest komunikat błędu?

0
qetli napisał(a)

Teraz mam tak i wraz nie dodaje:

<?php
require("connection.php");
connection();
$nick = $_POST['nick'];
$haslo = $_POST['haslo'];
$gg = $_POST['gg'];
$serwer = $_POST['serwer'];
$flaga = $_POST['flaga'];
$typ = $_POST['typ'];
$kodsms = $_POST['kodsms'];

$zapytanie = "INSERT INTO `vip` VALUES('".$nick."','".$haslo."','".$gg."','".$serwer."','".$flaga."','".$typ."','".$kodsms."')";
mysql_query($zapytanie);


echo "Dziekujemy za zakup Vipa";
echo "<br>";
echo "Twój vip został dodany automatycznie";
echo "<br>";
echo "Wpisz w konsoli setinfo _pw 'haslo'";
echo "<br>";
echo "Teraz wystarczy ze poczkasz na zmiane mapy";
?> 
 
<html>
<head>
<title> Zakup Admina </title></head>
<body> 
 <form method="POST" action="index.php?go=kupv">
 Nick: <input type="text" size="30" name="nick"><br>
Hasło: <input type="password" maxlength="15" minlength="3" size="40" name="haslo"><br>
GG: <input type="text" size="40" name="gg"><br>
Wybierz Serwer:  <select name="serwer">
		<option>FFA</option>
		<option>TP</option>
		<option>DM</option>
		</select><br>
		<input type="hidden" name="flaga" value="dasdasda" /><br>
		<input type="hidden" name="typ" value="a" /><br>
Kodsms: <input type="text" size="40" name="kodsms"><br>
<input type="submit" value="wyslij">
<input type="reset" value="Reset">
</form>
</body>
</html>

Spróbuj:

$nazwatabeli="vip"; // NAZWA TABELI DO KTÓREJ WRZUCASZ DANE 

To co podałem wyżej dodaj w pliku connection.php przed ?>

A to podmień w tym pliku który dałeś jako pierwszy:

$zapytanie="INSERT INTO $nazwatabeli (nick, haslo, gg, serwer, flaga, typ,
kodsms)VALUES('.$nick.', '$haslo', '$gg', '$serwer', '$flaga', '$typ', '.$kodsms.')";

Powinno zadziałać, u mnie wszystko dobrze działa.

0

Witam, mam podobny problem i by nie zakładać nowego tematu napiszę co nieco tutaj, a dokładnie:

kod o poniższym listeningu:

 <html>
	<head>
		<title>
			Salon - rezultat wstawiania nowej wizyty
		</title>
	</head>
	<body>
		<h1><!--Naglowek-->
			Salon - rezultat wstawiania nowej wizyty
		</h1>
	<?php
		//utworzenie krotkich nazw zmiennych
		$rok=$_POST['rok'];
		$miesiac=$_POST['miesiac'];
		$dzien=$_POST['dzien'];
		$godzina=$_POST['godzina'];
		$id_fryzjera=$_POST['id_fryzjera'];
		$status=$_POST['status'];
		
		if(isset($rok, $miesiac, $dzien, $godzina, $id_fryzjera, $status))
			{
				echo"Nie podano wszystkich wymaganych danych!<br />"
			}
			
		$db = new mysqli('localhost','user','pass','database'); //oczywiscie normalnie wprowadzone odpowiednie dane
		
		if($blad = mysqli_connect_errno())
			{
				echo"Blad polaczenia!";
			}
		$zapytanie="INSERT INTO `database`.`rejestracja` (`rok`, `miesiac`, `dzien`, `godzina`, `id_fryzjera`, `status`) VALUES ('".$rok."','".$miesiac."','".$dzien."','".$godzina."','".$id_fryzjera."','".$stauts."');";
		$wynik=$db->query($zapytanie);
		
		if($wynik)
			{
				echo "mysqli_affected_rows($db)wizyta dodana do bazy!";
			}
		else
			{
				echo"Wystapil blad - wizyta nie zostalo dodane do bazy!";
			}
		$db->close();
	?>	
	</body>	
</html>

przy powyzszym kodzie i wczesniejszym podaniu w formularzu wszystkich wymaganych danych otrzymuję na stronie wykonanej taki rezultat:

Salon - rezultat wstawiania nowej wizyty
" } $db = new mysqli('localhost','user','pass','database'); if($blad = mysqli_connect_errno()) { echo"Blad polaczenia!"; } $zapytanie="INSERT INTO `database`.`rejestracja` (`rok`, `miesiac`, `dzien`, `godzina`, `id_fryzjera`, `status`) VALUES ('".$rok."','".$miesiac."','".$dzien."','".$godzina."','".$id_fryzjera."','".$stauts."');"; $wynik=$db->query($zapytanie); if($wynik) { echo "mysqli_affected_rows($db)wizyta dodana do bazy!"; } else { echo"Wystapil blad - wizyta nie zostalo dodane do bazy!"; } $db->close(); ?>  

wzor ten wzialem z podrecznika, lecz niestety chyba cos robie nie tak :/ próbowalem takze analogii do powyzszego przykladu przedmowcy lecz tez bez skutku :( prosilbym o wskazanie ew. bledu lub sugestie poprawnego wzoru na wysylke danych do bazy. jesli to cos zmienia lub pomoze w ustaleniu bledu korzystam z uslug webh.pl - moze to cos u nich w konfiguracji - nie wiem. z góry dziekuje za pomoc :)

0

Witam.
Takie komunikaty pojawiają się zazwyczaj jeśli nie zakończysz/zakończysz w złym miejscu pewien fragment kodu. W Twoim przypadku najprawdopodobniej pomoże wstawienie średnika na końcu echo:

if(isset($rok, $miesiac, $dzien, $godzina, $id_fryzjera, $status))
                        {
                                echo"Nie podano wszystkich wymaganych danych!<br />";
                        } 
0

Dzięki, to pomogło, ale niestety tylko częściowo :/ teraz rezultat po wykonaniu jest nast:

 Salon - rezultat wstawiania nowej wizyty
query($zapytanie); if($wynik) { echo "mysqli_affected_rows($db)wizyta dodana do bazy!"; } else { echo"Wystapil blad - wizyta nie zostalo dodane do bazy!"; } $db->close(); ?> 

k'woli ścisłości daję cały fragment kodu z query'm, od którego wysypuje się wynik:

$wynik=$db->query($zapytanie); 

wychodzi na to, że niewłaściwym operatorem jest "->" ? :/ Ten sam operator z resztą używany jest także do zakończenia połączenia, także tam pewnie też jest niewłaściwie interpretowany:/

0

Jeśli ktos ogarnia temat na prawdę, proszę o pomoc. Jestem w tej tematyce nowy i przydałoby mi się kilka wskazówek... Z góry dzięki :)

0
engi_87 napisał(a)

(...) teraz rezultat po wykonaniu jest nast:

 Salon - rezultat wstawiania nowej wizyty
query($zapytanie); if($wynik) { echo "mysqli_affected_rows($db)wizyta dodana do bazy!"; } else { echo"Wystapil blad - wizyta nie zostalo dodane do bazy!"; } $db->close(); ?> 

(...)

Hmm, może to przez późną porę, ale ja na razie średnio w ogóle problem ogarniam - chcesz powiedzieć, że stronka wyświetla ten kawałek nieprzetworzonego kodu PHP?

0

dokładnie - to co masz powyżej w cytacie jest rezultatem wyrzucanym do okna.

0

Hmm, to tak jakby interpreter PHP z jakiejś przyczyny uznawał "->" za zakończenie bloku kodu...

0

Zabezpiecz się przed SQL Injection i zamień tagi HTML na encje.

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