Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Wykonanie zapytania po kliknięciu
Forum PHP.pl > Forum > Przedszkole
apathedosheu
Mam problem z dodaniem odpowiednich wartości do bazy danych MySQL przy użyciu zapytania. Wypełniam formularz i klikam przycisk, wszystko działa dobrze, ale pojawia się problem przy wejściu na stronę na której znajduję się formularz tzn. wchodzę na admin.php i od razy dodaje puste rekordy...

  1. <form action="admin.php" method="post">
  2. Tytuł:<br> <input type="text" name="tytul"><br><br>
  3. Autor:<br> <input type="text" name="autor"><br><br>
  4. Treść:<br> <textarea name="tresc" rows="10" cols="50"></textarea><br><br>
  5. <input type="submit" value="Dodaj"></form>


  1. <?php
  2. $query = mysql_query("insert into news values('','".$_POST['tytul']."',now(),'".$_POST['autor']."','".$_POST['tresc']."')");
  3. ?>
poli25
W spróbuj sprawdzić czy masz coś w tych zmiennych przed dodaniem do bazy użyj funkcji echo.

p.s. sprobuj w phpmyadminie wsadzis wiersz do bazy z pusta kolumna pierwsza, tak chciales ? pierwsz a kolumne pusta?
-huberthc-
Sprawdź np funkcję isset().
apathedosheu
Zrobiłem tak, ale według mnie nie wydaje mi się on dobrym pomysłem, sami zobaczcie

  1. <form action="admin.php" method="post">
  2. Tytuł:<br> <input type="text" name="tytul"><br><br>
  3. Autor:<br> <input type="text" name="autor"><br><br>
  4. Treść:<br> <textarea name="tresc" rows="10" cols="50"></textarea><br><br>
  5. <input type="submit" value="Dodaj"></form>


  1. <?php
  2. $zmienna = ($_POST['tytul']);
  3. if( isset($zmienna) ) {
  4. echo '<br>Dodano, <a href="demo.php">kliknij aby zobaczyć newsa.</a>';
  5. $query = mysql_query("insert into news values('','".$_POST['tytul']."',now(),'".$_POST['autor']."','".$_POST['tresc']."')");
  6. }
  7. ?>
Novy.
  1. <form action="admin.php?act=dodaj" method="post">
  2. Tytuł:<br> <input type="text" name="tytul"><br><br>
  3. Autor:<br> <input type="text" name="autor"><br><br>
  4. Treść:<br> <textarea name="tresc" rows="10" cols="50"></textarea><br><br>
  5. <input type="submit" name="dodaj" value="Dodaj"></form>


  1.  
  2. <?php
  3. if($_GET['act'] == 'dodaj' && isset($_POST['dodaj'])){
  4. // jeśli tylko ty będziesz używał skryptu to filtorwanie danych jest nie potrzebne, bo raczej nie będziesz głupot wpisywał
  5. if(empty($_POST['tytul']) || empty($_POST['autor']) || empty($_POST['tresc'])){
  6. echo 'Wszystkie pola muszą być wypełnione';
  7. }
  8. else{
  9. $query = mysql_query("INSERT INTO `news` VALUES('','".$_POST['tytul']."',now(),'".$_POST['autor']."','".$_POST['tresc']."')");
  10. if($query){
  11. echo 'Dodano pomyślnie';
  12. }
  13. else{
  14. echo 'Błąd.';
  15. }
  16. }
  17. }
  18. ?>


Tak chyba jest dobrze smile.gif

Jeśli ktoś inny ma dostęp do formularza warto przefiltrować wszystkie dane.
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.