Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Zapis danych do bazy
Forum PHP.pl > Forum > Przedszkole
topgear
Witam mam w bazie danych mam tabele "uczniowie" a w niej 3 pola "haslo", "login", "klasa". Dane zapisuje tym kodem
  1. $zapytanie = "insert into uczniowie values ('".$haslo."','".$login."','".$klasa."')";
  2. mysql_query($zapytanie) or die(mysql_error());

I nie wiem dlaczego dodaje jedno puste pole widać to na tej fotce
gdy usunę to pole to znowu się doda z następnymi danymi czyli będą 2 linijki zapełnione a 1 pusta.
gizmo1985
Dzieje się tak, bo nie wskazujesz do jakich kolumn jest przypisana zmienna winksmiley.jpg

Zmień na:
  1. $zapytanie = "insert into uczniowie (haslo, login, klasa) values ('".$haslo."','".$login."','".$klasa."')";
topgear
Dzięki wszystko działa jak należy masz pomógł smile.gif

Dodałem nazwisko a login zmienilem na imie czyli w bazie wygląda to tak imie|nazwisko|klasa| haslo
kod zmieniłem na
  1. $zapytanie = "insert into uczniowie (imie, nazwisko, klasa, haslo) values ('".$imie."','".$nazwisko."','".$klasa."','".$haslo."')";
  2.  
  3. mysql_query($zapytanie);


I niestety znowu robią się te puste pola angrysmiley.gif
r4xz
$zapytanie = "insert into uczniowie (imie, nazwisko, klasa, haslo) values ('".$imie."','".$nazwisko."','".$klasa."','".$haslo."')";
a po kiego grzyba ten gąszcz cudzysłowów? usunąć...
gizmo1985
a może najzwyczajniej nic w tych zmiennych nie ma ... winksmiley.jpg
Żeby sprawdzić, czy masz coś w zmiennej zanim zapiszesz do bazy wyświetl ją sobie :

  1. echo $twoja_zmienna;


Pozdrawiam winksmiley.jpg
topgear
  1. $zapytanie = "insert into uczniowie (imie, nazwisko, klasa, haslo) values ('$imie','$nazwisko','$klasa','$haslo')";
  2.  
  3. mysql_query($zapytanie);


I dalej nic wstydnis.gif
gizmo1985
A skąd pobierasz te zmienne ?
topgear
Mam formularz
  1. echo "<form action='rejestruj.php' method=post>";
  2. echo "Imię: <input type=text name=imie><br>";
  3. echo "Nazwisko: <input type=text name=nazwisko><br>";
  4. echo "Klasa: <input type=text name=klasa><br>";
  5. echo "Hasło: <input type=password name=haslo><br>";
  6. echo "<input type=submit value='Zarejestruj mnie'>";
  7. echo "</form>";



A pobieram je
  1. $imie = $_POST['imie'];
  2. $nazwisko = $_POST['nazwisko'];
  3. $klasa = $_POST['klasa'];
  4. $haslo = $_POST['haslo'];


Sprawdzałem i gdy wpisze echo to wszystkie są. Najdziwniejsze jest to, że gdy było ich tylko 3 to wszystko było dobrze
gizmo1985
Spróbuj w ten sposób winksmiley.jpg
  1. $zapytanie = "insert into uczniowie (imie, nazwisko, klasa, haslo) values ('".$_POST['imie']."','".$_POST['nazwisko']."','".$_POST['klasa']."','".$_POST['haslo']."')";



a :


  1. 1.
  2. echo "<form action='rejestruj.php' method=post>";
  3. 2.
  4. echo "Imię: <input type=text name=imie ><br>";
  5. 3.
  6. echo "Nazwisko: <input type=text name=nazwisko ><br>";
  7. 4.
  8. echo "Klasa: <input type=text name=klasa><br>";
  9. 5.
  10. echo "Hasło: <input type=password name=haslo><br>";
  11. 6.
  12. echo "<input type=submit value='Zarejestruj mnie'>";
  13. 7.
  14. echo "</form>";



zmień na:
  1. 1.
  2. <form action="rejestruj.php" method="post">
  3. 2.
  4. Imię: <input type="text" name="imie" /><br>
  5. 3.
  6. Nazwisko: <input type="text" name="nazwisko" /><br>
  7. 4.
  8. Klasa: <input type="text" name="klasa" /><br>
  9. 5.
  10. Hasło: <input type="password" name="haslo" /><br>
  11. 6.
  12. <input type="submit" value="Zarejestruj mnie" />
  13. 7.
  14. </form>
topgear
Dalej nic

Możliwe, że to coś z phpmyadmin i sam mi te puste tabelki tworzy bo teraz tak sie jakoś dziwnie zachowuje dry.gif

Lub źle tworze tabele
CREATE TABLE `uczniowie` (
`imie` VARCHAR( 30 ),
`nazwisko` VARCHAR( 30 ),
`klasa` VARCHAR( 30 ),
`haslo` VARCHAR( 30 ),
);


A żeby tak zrobić
  1. 1.
  2. <form action="rejestruj.php" method="post">
  3. 2.
  4. Imię: <input type="text" name="imie" /><br>
  5. 3.
  6. Nazwisko: <input type="text" name="nazwisko" /><br>
  7. 4.
  8. Klasa: <input type="text" name="klasa" /><br>
  9. 5.
  10. Hasło: <input type="password" name="haslo" /><br>
  11. 6.
  12. <input type="submit" value="Zarejestruj mnie" />
  13. 7.
  14. </form>


To musiał bym mieć formularz w osobnym pliku html ponieważ nad tym formularzem mam łączenie z bazą danych więc musiałem dać "echo" bo to cały czas w php byłem. Ten mój kod wygląda jak burdel spróbuje go trochę posprzątać to może coś sie zmieni. smile.gif
gizmo1985
Co do tworzenia bazy :
  1. <?php
  2. $connect = mysql_connect('serwe', 'login','haslo') OR die ("Sprawdź połączenie z serwerkiem msql");
  3.  
  4. $create = mysql_query ("CREATE DATABASE baza")
  5. OR die (mysql_error());
  6.  
  7. mysql_select_db("baza");
  8.  
  9. $uczniowie = "CREATE TABLE uczniowie (
  10. imie varchar(20) NOT NULL,
  11. nazwisko varchar(30) NOT NULL,
  12. klasa varchar(30) NOT NULL,
  13. haslo varchar(30) NOT NULL,
  14. id_uczen int(10) NOT NULL auto_increment,
  15. PRIMARY KEY (id_uczen)
  16.  
  17. )";
  18. $result = mysql_query($uczniowie)
  19. OR die (mysql_error());


A co stoi na przeszkodzie zrobić osobny plik ? Albo żeby mieszać HTML z PHP ?
topgear
Dalej dodaje po 2 rekordy. Dzięki za pomoc bo dużo mi pomogłes ale to chyba jednak wina tego bałaganu w calym kodzie napisze chyba caly od nowa i mam nadzieję, że będzie o wiele lepiej smile.gif
gizmo1985
Powiem Ci tak, ja też jestem początkujący w tym temacie, aczkolwiek ja kończę już spory projekt na zaliczenie z PHP, również w dużej mierze dzięki forum. Przez bałagan w kodzie spędziłem spooooro czasu nad szukaniem błędów winksmiley.jpg

Postaraj się zachować czystość kodu i stosować się do tego co Ci napisałem winksmiley.jpg
A co formularzy, wedle mnie lepiej mieć dwa osobne pliki winksmiley.jpg doszedłem do tego po skończeniu projektu winksmiley.jpg

Pozdrawiam
Jak coś to pisz winksmiley.jpg
minolone
Witam. Jeżeli kolego dalej sobie z tym nie poradziłeś oto twój kod lekko zmodyfikowany
baza danych
  1. CREATE TABLE IF NOT EXISTS `uczniowie` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT,
  3. `imie` varchar(30) NOT NULL,
  4. `nazwisko` varchar(30) NOT NULL,
  5. `klasa` varchar(30) NOT NULL,
  6. `haslo` varchar(30) NOT NULL,
  7. PRIMARY KEY (`id`)
  8. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

form.php
  1. <form action="form.php" method="post">
  2. <p><label>Imie:</label><input type="text" name="imie"></p>
  3. <p><label>Nazwisko:</label><input type="text" name="nazwisko"></p>
  4. <p><label>Klasa:</label><input type="text" name="klasa"></p>
  5. <p><label>Haslo:</label><input type="password" name="haslo"></p>
  6. <p><input type="submit" name="submit" value="Zarejestruj"></p>
  7. </form>
  8.  
  9. <?php
  10.  
  11. $imie = $_POST['imie'];
  12. $nazwisko = $_POST['nazwisko'];
  13. $klasa = $_POST['klasa'];
  14. $haslo = $_POST['haslo'];
  15.  
  16. if(!$imie || !$nazwisko || !$klasa || !$haslo)
  17. {
  18. echo 'Wypełnij pola';
  19. }
  20.  
  21. @ $db = new mysqli('localhost', 'minolone', 'Memorone123', 'minolone_form');
  22.  
  23. if (mysqli_connect_errno())
  24. {
  25. echo 'Błąd: : Połączenie z bazą danych nie powiodło się. Spróbuj jeszcze raz później.';
  26. }
  27.  
  28. $zapytanie = "insert into uczniowie values (NULL, '".$imie."', '".$nazwisko."', '".$klasa."', '".$haslo."')";
  29. $wynik = $db->query($zapytanie);
  30. if ($wynik)
  31. echo ' Dodano.';
  32. ?>


Połączenie jest za pomocą modułu 'mysqli', i PHP 5, to raczej posiadasz biggrin.gif Jeżeli nie to lekka modyfikacja i po sprawie, pozdrawiam
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.