Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: No i znowu dodawanie rekordów... Pomocy !
Forum PHP.pl > Forum > Bazy danych > MySQL
warliker
Witam. Uczę się samodzielnie (bez żadnych kursów czy książek), oczywiście oprócz podstaw. Wszystko mi pięknie szło, aż w końcu doszedłem do bariery której pomimo dłuuugiego studiowania wszelkich for i tutorialach pokonać nie zdołałem. Otóż mam sobie takie coś (jest w tym fragment kodu dostępny na tym forum chyba):
plik admin.php

Kod
<BODY bgcolor=black>
<?
  echo ("<form method=POST action=admin.php>");
  echo ("<p><input type=text name=data size=20 style=background-color: #000000; color: #FFFFFF; border: 1 solid #FFFFFF>");
  echo ("<b><font size=1 face=Verdana color=#FFFFFF>Data</font></b></p>");
  echo ("<p><input type=text name=Title size=93 style=background-color: #000000; color: #FFFFFF; border: 1 solid #FFFFFF>&nbsp;");
  echo ("<font size=1 face=Verdana color=#FFFFFF><b>Tytuł newsa</b></font></p>");
  echo ("<p><b><font size=1 face=Verdana color=#FFFFFF>Treść Newsa</font></b></p>");
  echo ("<p><textarea rows=12 name=long cols=62 style=background-color: #000000; color: #FFFFFF; border: 1 solid #FFFFFF></textarea></p>");
  echo ("<font size=1 face=Verdana color=#FFFFFF><b>Autor</b></font></p>");  
  echo ("<input type=text name=autor size=93 style=background-color: #000000; color: #FFFFFF; border: 1 solid #FFFFFF>");
  echo ("<p><input type=submit value=Submit name=POST><input type=reset value=Reset name=B2></p>");
  echo ("</form>")
?>
<?
mysql_connect ("localhost", "me_gangsta") or die ("Błąd przy łączeniu!");
mysql_select_db("megangsta_uk_db") or die("Błąd przy wybieraniu DB");
$ask="INSERT
INTO `news`
( `data` , `Title` , `long` , 'autor' )
VALUES ('$data', '$Title', '$long', '$autor' );" or die("Kupa");
$make=mysql_query($ask);

?>

Nie wywala mi żadnego błędu przy uruchomieniu skryptu ale nie dodaje mi rekordu... O co chodzi questionmark.gif Z góry dziękuję za pomoc !
crash
Spróbuj użyć tablicy _POST do odczytywania danych z formularza.
  1. <?php
  2. $data = $_POST['data'];
  3. ?>

A druga sprawa to po co cały ten kod HTML wyświetlasz przez echo?
warliker
A nie wiem smile.gif... Chciałem sprawdzić czy nie pomoże biggrin.gif.

No niestety to co mi dałeś mi nie pomogło... Zrobiłem skrypcik

  1. /////// FORMULARZ ///////
  2.  
  3. <?
  4. $data = $_POST['data'];
  5. $Title = $_POST['Title'];
  6. $long = $_POST['long'];
  7. $autor = $_POST['autor'];
  8. mysql_connect (&#092;"localhost\", \"me_gangsta\") or die (\"Błąd przy łączeniu!\");
  9. mysql_select_db(&#092;"megangsta_uk_db\") or die(\"Błąd przy wybieraniu DB\");
  10. $ask=&#092;"INSERT
  11. INTO `news`
  12. ( `data` , `Title` , `long` , 'autor' )
  13. VALUES ('$data', '$Title', '$long', '$autor' );&#092;" or die(\"Nie dziala... as always\");
  14. $make=mysql_query($ask);
  15. ?>


I znowu to samo... Żadnych błędów ale nie dodaje rekordu.... ;(
crash
Zobacz co zwraca mysql_error" title="Zobacz w manualu PHP" target="_manual() po wykonaniu tego zapytania.
warliker
A jak ? Bo nigdy tego nie używałem smile.gif

EDITED:

Oooo... Niebywałą metodą dedukcji (niczym Sherlock Holmes) wpisałem
echo mysql_error()

I mi wywaliło takie cudo:

You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ''autor' ) VALUES ('sdadsa', 'dsaadsads', 'sdadsasad', 'dsadsas

Te dsadasdas i inne ambitne teksty to dzieło moje biggrin.gif
Marusz
Wydaje mi sie, ze zmienna $ask powinna wygladac nastepujaco:

  1. <?php
  2.  
  3. $ask = &#092;"INSERT INTO `news` ( `data` , `Title` , `long` , `autor` ) VALUES ('\" . mysql_escape_string( $data ) . \"', '\" . mysql_escape_string( $Title ) . \"', '\" . mysql_escape_string( $long ) . \"', '\" . mysql_escape_string( $autor) . \"' )\";
  4.  
  5.  
  6. ?>


Pozniej zas wywolujesz to zapytanie:
  1. <?php
  2.  
  3.  
  4. ?>


Pamietaj, aby zawsze zabezpieczac zmienne, bo bez tego SQL injection murowany...

Edit:
Cytat
A jak ? Bo nigdy tego nie używałem

Tak (manual wskazany):
http://pl.php.net/manual/en/function.mysql-error.php
warliker
Działa exclamation.gif Ave Wam php'owcy ! Dziękuję bardzo 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.