Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z dodaniem rekordu do bazy
Forum PHP.pl > Forum > PHP
jewel
Mam problem z dodaniem rekordu do bazy, ktory ma byc zczytany z formularza. Rekord dodaje sie , ale sa tylko puste miejsca. Moze ktos wie, dlaczego tak sie dzieje?

<a href="http://rudy.mif.pg.gda.pl/~ajuchnie/"></a>


Oto kody:
plik dod_ankiete.php

  1. <html>
  2. <head><title>Baza danych ANKIETY</title></head>
  3. <body bgcolor="3997D0">
  4. <div align="center">
  5.  
  6.  
  7. <br /><br /><br />
  8. <!--
  9. <?php
  10.  
  11. //dodawanie wpisu do bazy danych
  12. if($_POST['dodaj']=='on')
  13. {
  14. //obsluga formularza
  15.  
  16. // laczenie z baza 
  17. //$link = mysql_connect('localhost', 'root', '')  or die('Nie mozna polaczyc z baza bo: ' . mysql_error());
  18. //wybieramy baze danch
  19. //mysql_select_db('ajuchnie') or die('Nie mozna wybrac bazy');
  20.  
  21. if($dbc = @mysql_connect('localhost', 'root', '')){
  22. if (!@mysql_select_db ('ankieta')){
  23. die ('<p>Nie mozna wybrac bazy danych</p>');
  24. }
  25. }
  26.  
  27. else {
  28. die ('<p>Nie mozna sie polaczyc z mysql</p>');
  29. }
  30.  
  31.  
  32.  
  33. $tytul_ank=$_POST['tytul_ank'];
  34. $ilosc_pyt=$_POST['ilosc_pyt'];
  35. //zapytanie
  36.  
  37. $zapytanie="INSERT INTO ankieta VALUES ('',"$tytul_ank",$ilosc_pyt)";
  38. //$zapytanie="INSERT INTO ankieta VALUES ('', "$_POST['tytul_ank']"', '{$_POST['ilosc_pyt']}')";
  39.  
  40. //wykonanie zapytania
  41. if(@mysql_query ($zapytanie))
  42. {
  43. print '<p>Pozycja zostala dodana</p>';
  44. }
  45.  
  46. else
  47. {
  48. print '<p>Nie mozna dodac wpisu</p>';
  49. }
  50.  
  51. //zamkniecie polaczenia z baza
  52.  
  53. }
  54. ?>
  55. -->
  56.  
  57. <table border="1" border color="ffffff" widht="60%">
  58. <tr><td colspan=2 ><H2>Baza danych ANKIETY</H2></td></tr>





i plik dod_ankiete2.php

  1. <html>
  2. <head><title>Baza danych ANKIETY</title></head>
  3. <body bgcolor="3997D0">
  4. <div align="center">
  5.  
  6.  
  7. <br /><br /><br />
  8.  
  9. <table border="1" border color="ffffff" widht="60%">
  10. <tr><td colspan=2 ><H2>Witaj w bazie danych ANKIETY</H2></td></tr>
  11.  
  12. <tr><td><ul> 
  13. <LI><a href="dod_ankiete.php">Dodaj nowa ankiete</a>
  14. <LI><a href="dod_ankietera.php">Dodaj nowego ankietera</a>
  15. <LI><a href="dod_pytanie.php">Dodaj pytanie do ankiety</a>
  16. <LI><a href="dost_ankiety.php">Pokaz dostepne ankiety</a>
  17. <LI><a href="ankieterzy.php">Pokaz ankieterow</a> 
  18. <LI><a href="dost_ankiety.php">Wybierz ankiete do wypelnienia</a>
  19.  
  20.  </ul></td>
  21.  
  22. <td> 
  23.  
  24. <?php
  25.  
  26. // laczenie z baza 
  27. $link = mysql_connect('localhost', 'root', '')  or die('Nie mozna polaczyc z baza bo: ' . mysql_error());
  28.  
  29. //wybieramy baze danch
  30. mysql_select_db('ajuchnie') or die('Nie mozna wybrac bazy');
  31.  
  32. //echo "$tytul_ank";
  33.  
  34. //zapytanie
  35. //$zapyt = "INSERT INTO ankieta VALUES('', '{$_POST['tytul_ankiety']}', '{$_POST['ilosc_pytan']}')";
  36. //$wynik = mysql_query($zapyt);
  37.  
  38. //echo "Ankieta zostala dodana";
  39.  
  40. //zapytanie
  41.  
  42. $tytul_ankiety = AddSlashes($_POST['tytul_ank']);
  43. $ilosc_pytan = AddSlashes($_POST['ilosc_pyt']);
  44.  
  45. $zapytanie="INSERT INTO ankieta (tytul_ankiety, ilosc_pytan) VALUES 
  46. ('$tytul_ankiety', '$ilosc_pytan')";
  47.  
  48. //wykonanie zapytania
  49. if(@mysql_query ($zapytanie))
  50. {
  51. print '<p>Pozycja zostala dodana</p>';
  52. }
  53.  
  54. else
  55. {
  56. print '<p>Nie mozna dodac wpisu, poniewaz: <b>' . mysql_error() . '</b></p>';
  57. }
  58.  
  59.  
  60. mysql_close($link);
  61. ?>
  62.  
  63. </td></tr>
  64. </table>
  65.  
  66. <br/>
  67. <img src="pasek1.gif" width="500" height="20">
  68.  
  69.  
  70. </body>
  71. </html>



[+] edit
Do wstawiania kodu na forum służą odpowiednie
tagi BB Code. Tym razem poprawiłem, ale
na przyszłość proszę o tym pamiętać.
---
~strife
gszesiek
dodajesz: VALUES ('', \"$_PO
spróbuj: VALUES ('', '" . $_PO

musisz wstawić kropkę, aby połączyć smile.gif

-----------------
a może ty chciałeś wstawić tam cudzysłów? wtedy brakuje ci tylko apostrofu

to wywal { winksmiley.jpg
jewel
po przeksztalceniu na:

$zapytanie="INSERT INTO ankieta VALUES (' ', '".{$_POST['tytul_ank']}"', '".{$_POST['ilosc_pyt']}"')";

dostaje tylko blad:

Parse error: syntax error, unexpected '{' in C:\wamp\www\dod_ankiete.php on line 38
Mazur_pl
$zapytanie="INSERT INTO ankieta (tytul, ilosc_pyt) VALUES ('" . $_POST['tytul_ank'] . "', '" . $_POST['ilosc_pyt'] . "')";
jewel
niestety nadal dodaje puste rekordy
gszesiek
1. sprawdzałeś czy zapisuje coś do zmiennych ( echo "...")
2. pokaż dokładnie, o który insert Ci chodzi
3. pokaż tabelę lub kod jak ją tworzyłeś
Mazur_pl
Pokaż tabelę:

Zapytanie powinno być w takim sensie:
  1. INSERT INTO nazwa_tabeli (pole1, pole2) VALUES ('dla pola 1', 'dla pola 2');


Na przykład:

  1. <?php
  2. $zapytanie = "INSERT INTO tabela (`pole`) VALUES ('to jest pole 1');";
  3.  
  4. mysql_query($zapytanie);
  5. ?>
jewel
tabele tworzylem w konsoli, wyglada tak:

<html>
<a href="http://rudy.mif.pg.gda.pl/~ajuchnie/"></a>
</html>
Mazur_pl
  1. <?php
  2. $zapytanie = "INSERT INTO nazwa_tabeli (`tytul_ankiety`, `ilosc_pytan`) VALUES ('TYTUL', 'ILOSC PYTAN');";
  3.  
  4. mysql_query($zapytanie);
  5. ?>
jewel
Majac kod:
  1. <?php
  2. $zapytanie="INSERT INTO ankieta (tytul_ankiety, ilosc_pytan) VALUES ('" . $_POST['tytul_ank'] . "', '" . $_POST['ilosc_pyt'] . "')";
  3.  
  4. if(@mysql_query($zapytanie))
  5. {
  6. print '<p>Pozycja zostala dodana</p>';
  7. }
  8.  
  9. else
  10. {
  11. print '<p>Nie mozna dodac wpisu, poniewaz: <b>' . mysql_error() . '</b></p>';
  12. }
  13. ?>

nadal zostaje z pustymi rekordami tiredsmiley.gif
Mazur_pl
  1. <?php
  2. $zapytanie="INSERT INTO ankieta (`tytul_ankiety`, `ilosc_pytan`) VALUES ('" . $_POST['tytul_ank'] . "', '" . $_POST['ilosc_pyt'] . "')";
  3.  
  4. if(mysql_query($zapytanie)) {
  5. print '<p>Pozycja zostala dodana</p>';
  6. } else {
  7. print '<p>Nie mozna dodac wpisu, poniewaz: <b>' . mysql_error() . '</b></p>';
  8. }
  9. ?>

A tak?
jewel
niestety dalej to samo
Mazur_pl
  1. <?php
  2. $zapytanie="INSERT INTO ankieta (`tytul_ankiety`, `ilosc_pytan`) VALUES ('" . $_POST['tytul_ank'] . "', '" . $_POST['ilosc_pyt'] . "')";
  3.  
  4. mysql_query($zapytanie);
  5. print '<p>Pozycja zostala dodana</p>';
  6. ?>
jewel
to samo...
A to moze byc wina tego, ze w jakis sposob cos zle zrobilem tworzac tabele?
Mazur_pl
Tak. Najlepiej jakbyś zainstalował to: www.webserv.pl
jewel
a moze zobaczycie jak wyglada moja tabela i co w niej moze byc zle?

http://rudy.mif.pg.gda.pl/~ajuchnie/2.bmp



------------------------

Juz po problemie biggrin.gif
Nie mialem ustawionego pola POST w poczatku formularza

<form action="dod_ankiete2.php" method="post">

dzieki wszystkim za pomoc smile.gif
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.