Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: księga gości php => mySQL
Forum PHP.pl > Forum > Gotowe rozwiązania
kowal1122
a wiec mam problemik najprawdopodobniej z kodem php...

mam plik dodaj.html i dodaj2.php

  1. //dodaj.html
  2.  
  3. <form name="form1" mehod="post" action="dodaj2.php">
  4. <table border="1">
  5. <tr>
  6. <td>imię/ksywa:</td>
  7. <td><input type="text" name="gosc"></td>
  8. </tr><tr>
  9. <td>dodaj wpis:</td>
  10. <td><textarea name="tekst" cols="100" rows="5"></textarea></td>
  11. </tr><tr>
  12. <td><input type="submit" name="submit" value="dodaj wpis "></td>
  13. <td>&nbsp;</td>
  14. </tr>
  15. </form>


  1. <?php
  2.  
  3. //dodaj2.php
  4.  
  5. include_once(&#092;"./db-init.php\");
  6.  
  7.  
  8. $mresult = mysql_connect('localhost','','') 
  9. or die(&#092;"Nie można się poł&plusmn;czyć z serwerem MySQL...\");
  10. $ksiazka = mysql_select_db(ksiazka)
  11. or die(&#092;"Nie można wybrać bazy danych...\"); 
  12.  
  13. $query = &#092;"INSERT INTO ksiazka (data, gosc, tekst) VALUES (NOW(), '$gosc', '$tekst')\";
  14.  
  15. $qresult = mysql_query($query, $mresult);
  16. if ($qresult != 1) {
  17. die(&#092;"Problem z wykonaniem zapytania do bazy danych\");
  18. };
  19.  
  20. mysql_close($mresult);
  21.  
  22. echo &#092;"dzięki za dodanie wpisu!\";
  23.  
  24.  
  25.  
  26. ?>



no a jak otwieram phpmyadmina to pokazuje mi w zapisie tylko date...
co zrobilem zle...
tiraeth
zamien $gosc na $_POST['gosc'] i tak dalej.. zmienne globalne....
kowal1122
  1. <?php
  2. $query = &#092;"INSERT INTO ksiazka (data, gosc, tekst) VALUES (NOW(), '$_POST['gosc']', '$_POST['tekst']')\";
  3. ?>


jeśli zrobie superglobalne to mi wyskakuje:

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in d:\wamp\www\dodaj2.php on line 16
dr_bonzo
OMG:

"....VALUES (NOW(), '" . $_POST['gosc'] . "'........"
kowal1122
  1. <?php
  2. $query = &#092;"INSERT INTO ksiazka (data, gosc, tekst) VALUES (NOW(), '\" . $_POST['gosc'] . \"','\" . $_POST['tekst'] . \"')\";
  3. ?>


tak?
jesli tak, to pisze ze wszystko oki ale cały czas nie ma wpisów w bazie danych.
SongoQ
Zrob sobie echo $query i zobacz czy prawidlowo generuje SQLa.
militis
  1. <?php
  2.  
  3. mysql_query($query) or die($query. &#092;"<BR>n\" . mysql_error());
  4.  
  5. ?>
kowal1122
dzięki za dodanie wpisu!INSERT INTO ksiazka (data, gosc, tekst) VALUES (NOW(), '','')
No database selected


wyskakuje taki napis blink.gif
Liko
RTFM: http://pl2.php.net/mysql


BIG ROTFL
kowal1122
nierozumiem co cie tak śmieszy?
nospor
no database selected oznacza, ze nie wybrales bazy w jakiej znajduje sie tabela.
musisz użyc funkcji mysql_select_db, która min. znajduje się w linku , który podal ci @liko
kowal1122
przykladzik prosze...
nospor
rozbrajasz mnie @kowal. Toć w linku @liko jest przyklad. Oto on (bo ty chyba nie masz internetu i nie możesz wejść w ten link; ale nie czekaj, ty masz internet bo wchodzisdz na to forum tongue.gif)
  1. <?php
  2. /* Łączenie i wybranie bazy */
  3. $link = mysql_connect(&#092;"localhost\", \"uzytkownik\", \"haslo\")
  4.  or die (&#092;"Nie można się połączyć\");
  5. print (&#092;"Połączenie nawiązane\");
  6. mysql_select_db (&#092;"baza\") or die (\"Nie mozna wybrać bazy danych\");
  7.  
  8. /* Wysyłanie zapytania SQL */
  9. $query = &#092;"SELECT * FROM tabela\";
  10. $result = mysql_query ($query) or die (&#092;"Zapytanie zakończone niepowodzeniem\");
  11.  
  12. /* Wyświetlenie wyników w HTML */
  13. print &#092;"<table>n\";
  14. while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
  15.  print &#092;"t<tr>n\";
  16.  foreach ($line as $col_value) { 
  17.  print &#092;"tt<td>$col_value</td>n\"; 
  18.  }
  19.  print &#092;"t</tr>n\";
  20. }
  21. print &#092;"</table>n\";
  22.  
  23. /* Zwalnianie pamięci */
  24. mysql_free_result($result); 
  25.  
  26. /* Rozłączanie */
  27. mysql_close($link);
  28. ?>
tongue.gif
kowal1122
czyli mam juz taki kod:

  1. <?php
  2.  
  3. include_once(&#092;"db-init.php\");
  4.  
  5. $mresult = mysql_connect('localhost','','') 
  6. or die(&#092;"Nie można się poł&plusmn;czyć z serwerem MySQL...\");
  7. $ksiazka = mysql_select_db(ksiazka)
  8. or die(&#092;"Nie można wybrać bazy danych...\"); 
  9.  
  10. $query = &#092;"INSERT INTO ksiazka (data, gosc, tekst) VALUES (NOW(), '\" . $_POST['gosc'] . \"','\" . $_POST['tekst'] . \"')\";
  11. $result = mysql_query ($query) or die (&#092;"Zapytanie zakończone niepowodzeniem\");
  12.  
  13. $qresult = mysql_query($query, $mresult);
  14. if ($qresult != 1) {
  15. die(&#092;"Problem z wykonaniem zapytania do bazy danych\");
  16. };
  17.  
  18. mysql_close($mresult);
  19.  
  20. echo &#092;"dzięki za dodanie wpisu!\";
  21. ?>


pisze ze wszystko ok. ale w bazie mySQL'a dalej nic nie ma po za datą...
nospor
a nie powinno byc tak? $ksiazka = mysql_select_db('ksiazka')

ale co, w tabeli ksiazka masz rekord a wnim tylko data?jesli tak to wartosci z posta są puste.
popraw to co podalem.
kowal1122
poprawilem ale bez zmian...

zauważylem tez że do bazy dochodzą 2 wpisy... za jednym razem.
nospor
no bo dwa razy wywolujesz mysql_query, wiec sie nie dziw że masz dwa wpisy.
A patrzyles te zmienne $_POST? Daj echo $_POST['gosc'] i zobacz czy cos jest. Bo to niemożliwe zeby wstwial datę a innych wartości nie
kowal1122
  1. <?php
  2.  
  3. include_once(&#092;"db-init.php\");
  4.  
  5. $mresult = mysql_connect('localhost','','') 
  6. or die(&#092;"Nie można się poł&plusmn;czyć z serwerem MySQL...\");
  7. $ksiazka = mysql_select_db('ksiazka')
  8. or die(&#092;"Nie można wybrać bazy danych...\"); 
  9.  
  10. $query = &#092;"INSERT INTO ksiazka (data, gosc, tekst) VALUES (NOW(), echo'\" . $_POST['gosc'] . \"',echo'\" . $_POST['tekst'] . \"')\";
  11. $result = mysql_query ($query) or die (&#092;"Zapytanie zakończone niepowodzeniem\");
  12.  
  13. $qresult = mysql_query($query, $mresult);
  14. if ($qresult != 1) {
  15. die(&#092;"Problem z wykonaniem zapytania do bazy danych\");
  16. };
  17.  
  18. mysql_close($mresult);
  19.  
  20. echo &#092;"dzięki za dodanie wpisu!\";
  21. ?>

jesli zrobie to to w koncu sie pokazuje "Zapytanie zakończone niepowodzeniem".
a wiec co zle zrobilem?
nospor
No dobra, spokojnie i pokolei.
Czy wiesz do czego służy echo? Echo sluzy do wpisania textu z php to przeglądarki (powiedzmy). Z tegoż to powodu echa nie daje się w zapytaniu!!!!
Mialeś dać echo gdzieś inddziej, np na początku skryptu:
  1. <?php
  2.  
  3. echo 'zawartosc gosc to: '.$_POST['gosc'];
  4. ///reszta skryptu
  5.  
  6. ?>
kowal1122
nierozumiem... sad.gif

podaj to w całym skrypcie...
nospor
Toć pisze wyrażnie. Na początku skryptu masz dać echo ....
  1. <?php
  2.  
  3. echo 'zawartosc gosc to: '.$_POST['gosc'];
  4. include_once(&#092;"db-init.php\");
  5.  
  6. $mresult = mysql_connect('localhost','','') 
  7. or die(&#092;"Nie można się poł&plusmn;czyć z serwerem MySQL...\");
  8. $ksiazka = mysql_select_db(ksiazka)
  9. or die(&#092;"Nie można wybrać bazy danych...\"); 
  10.  
  11. $query = &#092;"INSERT INTO ksiazka (data, gosc, tekst) VALUES (NOW(), '\" . $_POST['gosc'] . \"','\" . $_POST['tekst'] . \"')\";
  12. $result = mysql_query ($query) or die (&#092;"Zapytanie zakończone niepowodzeniem\");
  13.  
  14. $qresult = mysql_query($query, $mresult);
  15. if ($qresult != 1) {
  16. die(&#092;"Problem z wykonaniem zapytania do bazy danych\");
  17. };
  18.  
  19. mysql_close($mresult);
  20.  
  21. echo &#092;"dzięki za dodanie wpisu!\";
  22.  
  23. ?>
kowal1122
zawartosc gosc to: INSERT INTO ksiazka (data, gosc, tekst) VALUES (NOW(), '','')dzięki za dodanie wpisu!

ja juz nic z tego nie rozumiem...
nospor
dzięki za dodanie wpisu! wyskakuje ci bo masz na koncu echo "dzięki za dodanie wpisu!"
ale czemu zapytanie ci wyswietla to nie mam pojecia. Aczkolwiek w zapytaniu widać ze masz gosc pustego. Pokaż caly kod wlacznie z formularzem. Napisz co skąd pobierasz itp

edit: moze to glupie pytanie, ale czy ty wogóle wypelniasz te pola formularza?
kowal1122
no to najpierw

dodaj.php

  1. <?php 
  2. // Ustaw tytul strony i naglowek HTML.
  3. $page_title = 'księga go&para;ci';
  4. include ('szablony/naglowek.inc');
  5. ?>
  6.  
  7. <form name=\"form1\" mehod=\"post\" action=\"dodaj2.php\">
  8. <table border=\"1\">
  9. <tr>
  10. <td>imię/ksywa:</td>
  11. <td><input type=\"text\" name=\"gosc\"></td>
  12. </tr><tr>
  13. <td>dodaj wpis:</td>
  14. <td><textarea name=\"tekst\" cols=\"100\" rows=\"5\"></textarea></td>
  15. </tr><tr>
  16. <td><input type=\"submit\" name=\"submit\" value=\"dodaj wpis \"></td>
  17. <td>&nbsp;</td>
  18. </tr>
  19. </form>
  20. </table>
  21.  
  22. <?php
  23. include ('szablony/stopka.inc'); // Dolacz stopke HTML.
  24. ?>


teraz plik
dodaj2.php
  1. <?php 
  2.  
  3. // Ustaw tytul strony i naglowek HTML.
  4. $page_title = 'księga go&para;ci';
  5. include ('szablony/naglowek.inc');
  6. ?>
  7. <?php
  8. include_once(&#092;"db-init.php\");
  9.  
  10. $mresult = mysql_connect('localhost','','') 
  11. or die(&#092;"Nie można się poł&plusmn;czyć z serwerem MySQL...\");
  12. $ksiazka = mysql_select_db('ksiazka')
  13. or die(&#092;"Nie można wybrać bazy danych...\"); 
  14.  
  15. echo $query = &#092;"INSERT INTO ksiazka (data, gosc, tekst) VALUES (NOW(), '\" . $_POST['gosc'] . \"','\" . $_POST['tekst'] . \"')\";
  16. $result = mysql_query ($query) or die (&#092;"Zapytanie zakończone niepowodzeniem\");
  17.  
  18. $qresult = mysql_query($query, $mresult);
  19. if ($qresult != 1) {
  20. die(&#092;"Problem z wykonaniem zapytania do bazy danych\");
  21. };
  22.  
  23. mysql_close($mresult);
  24.  
  25. echo &#092;"dzięki za dodanie wpisu!\";
  26.  
  27.  
  28. include ('szablony/stopka.inc'); // Dolacz stopke HTML.
  29. ?>


teraz plik
db-ini.php

  1. <?php
  2.  
  3.  
  4. // adres hosta z baz&plusmn; danych
  5. $DB_HOST=&#092;"localhost\";
  6.  
  7. // nazwa bazy
  8. $DB_NAME=&#092;"ksiazka\";
  9.  
  10. // użytkownik bazy
  11. $DB_USER=&#092;"root\";
  12.  
  13. // hasło użytkownika bazy danych
  14. $DB_PASSWD=&#092;"\";
  15.  
  16.  
  17. ?>

i to juz wszystko bo pliku otwierającego dodane wpisy niezrobiłem. :roll2:
militis
Wy chyba jestescie niepowazni. Koles nie ma zielonego pojecia na temat php, rozumiem, mozna mu _pomóc_, ale tylko pomóc a nie przepisywac mu skrypty! Niech poczyta manuala, bo narazie to kopiuje to co Wy napiszecie w ogole tego nie rozumiejac, a nie rozumie samych podstaw. Ehh...
nospor
jest blad: hihi
popraw:
<form name="form1" method="post" action="dodaj2.php">

dales mehod zamiast method
kowal1122
dziwne dziwne...

zaczęło działać :] smile.gif smile.gif smile.gif

podziękowania wszystkim w szczególności tobie nospor.

można zamknąć topic
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.