Autor Zpráva
sir_lamoid
Profil
Ahoj mám zas problém.
mám formular:
<form action="clanky_e.php" method="post">
<div id="formular">
<textarea name="nadpis"></textarea><textarea class="ckeditor" name="text"></textarea>
      <select size="1" name="kategorie">
	<option value="clanky">Články</option>
	<option value="videa">Videa</option>
	<option value="fotky">Fotky</option>
	<option value="odkazy">Odkazy</option>
</select>
      <input type="submit" value="ODESLAT"></div>
</form>


a skript clanky_e.php:
<form action="clanky_e.php" method="post">
<div id="formular">
<textarea name="nadpis"></textarea><textarea class="ckeditor" name="text"></textarea>
      <select size="1" name="kategorie">
	<option value="clanky">Články</option>
	<option value="videa">Videa</option>
	<option value="fotky">Fotky</option>
	<option value="odkazy">Odkazy</option>
</select>
      <input type="submit" value="ODESLAT"></div>
</form>


A co byto mnelo delat ?
Clovek si napise nadpis, text,
a vybere kategorii do ktré to vloží. Skript to pak vloží do databáze. Ale problém je že se tam vůbec nevloží..
Kontroloval jsem i velká a malá písmena radsi prikládám i struktůru:

V každé tabulce ty mají název clanky, videa, odkazy, fotky,. Jsou sloupce: Nadpis, Text, Datum(to se samgo generuje pomocí MySQL funkce timestamp.).........Kde je prosím chyba...
Sir Tom
Profil
sir_lamoid:
Ahoj, asi jsi se přepsal, protože oba dva kódy jsou stejné... Potřebujeme ten SQL kód.
panther
Profil
sir_lamoid:
Kde je prosím chyba...
njevětší chyba, kterou jsi udělal, že jsi sem nevložil obsah souboru clanky_e.php.
sir_lamoid
Profil
sry :D XD
<?php
$kategorie=$_POST['kategorie'];
$nadpis=$_POST['nadpis'];
$text=$_POST['text'];

include('../Login/DB_connect.php');
mysql_select_db($DBname);
mysql_query("insert INTO $kategorie (Nadpis, Text) VALUES ('$nadpis, $text')");
Header('Location: ../admin/admin.php');
?>


Blbne my KLAVESNICE
sir_lamoid
Profil
+ SQL jestli
-- phpMyAdmin SQL Dump
-- version 3.3.9
-- http://www.phpmyadmin.net
--
-- Počítač: localhost
-- Vygenerováno: Pátek 15. července 2011, 19:09
-- Verze MySQL: 5.1.53
-- Verze PHP: 5.3.4

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Databáze: `lamoviny`
--

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

--
-- Struktura tabulky `adresy`
--

CREATE TABLE IF NOT EXISTS `adresy` (
  `adresa` text NOT NULL,
  PRIMARY KEY (`adresa`(100))
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

--
-- Vypisuji data pro tabulku `adresy`
--

INSERT INTO `adresy` (`adresa`) VALUES
('127.0.0.1');

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

--
-- Struktura tabulky `clanky`
--

CREATE TABLE IF NOT EXISTS `clanky` (
  `Nadpis` text NOT NULL,
  `Text` longtext NOT NULL,
  `Datum` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

--
-- Vypisuji data pro tabulku `clanky`
--


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

--
-- Struktura tabulky `fotky`
--

CREATE TABLE IF NOT EXISTS `fotky` (
  `Nadpis` text NOT NULL,
  `Text` longtext NOT NULL,
  `Datum` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

--
-- Vypisuji data pro tabulku `fotky`
--


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

--
-- Struktura tabulky `hlavni`
--

CREATE TABLE IF NOT EXISTS `hlavni` (
  `text` longtext CHARACTER SET utf8 NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin2;

--
-- Vypisuji data pro tabulku `hlavni`
--

INSERT INTO `hlavni` (`text`) VALUES
('<h3>\r\n	<img src="../image/MY.png" style="margin-right: 10px; float: left; width: 203px; height: 117px;" />V&iacute;tej</h3>\r\n<p>\r\n	Ahojky. Drah&yacute; uživately pr&aacute;vì ses dostal na str&aacute;nky hr&aacute;èe s nick name: sir_lamoid. Èasem tady budou pøib&yacute;vat videa, fotky atd. z minecraftu. Pùjde zejm&eacute;na o n&aacute;vody jak sprovoznit server, ale i o LET's play videa z rùzn&yacute;ch&nbsp; serverù. Jsem r&aacute;d že jsi sem zav&iacute;tal.</p>\r\n');

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

--
-- Struktura tabulky `odkazy`
--

CREATE TABLE IF NOT EXISTS `odkazy` (
  `Nadpis` text NOT NULL,
  `Text` longtext NOT NULL,
  `Datum` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

--
-- Vypisuji data pro tabulku `odkazy`
--

INSERT INTO `odkazy` (`Nadpis`, `Text`, `Datum`) VALUES
('ěščřžýáíéúů', 'ĚŠČŘŽÝÁÍÉÚŮ', '2011-07-15 19:56:13');

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

--
-- Struktura tabulky `videa`
--

CREATE TABLE IF NOT EXISTS `videa` (
  `Nadpis` text NOT NULL,
  `Text` longtext NOT NULL,
  `Datum` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

--
-- Vypisuji data pro tabulku `videa`
--

panther
Profil
sir_lamoid:
vypiš si mysql_error() a budeš moudřejší. Máš v dotazu syntaktickou chybu.

Jinak máš špatný návrh DB, vše jde řešt jednou tabulkou. Každá kategorie nemusí mít svojí. S přidáním další kategorie nebude třeba zásah do DB, ale i se bude s daty lépe pracovat.
sir_lamoid
Profil
Mam kod
<?php
$kategorie=$_POST['kategorie'];
$nadpis=$_POST['nadpis'];
$text=$_POST['text'];

include('../Login/DB_connect.php');
mysql_select_db($DBname) or die(".mysql_error()");
mysql_query("insert INTO $kategorie (Nadpis, Text) VALUES ('$nadpis, $text')");
?>

Ale nevipisuje mi to chybu
LOL
panther
Profil
sir_lamoid:
máš chybu v dotazu, který vkládá do databáze, ne v dotazu, kterým se k DB připojuješ.

Navíc, mysql_error() je funkce, i tady máš chybu (syntakticky je to správně, ale vždy ti to vypíše jen zadaný string).
sir_lamoid
Profil
BÁDÁM....
<?php
$kategorie=$_POST['kategorie'];
$nadpis=$_POST['nadpis'];
$text=$_POST['text'];

include('../Login/DB_connect.php');
mysql_select_db($DBname) or die(".mysql_error()");
mysql_query("insert INTO 'lamoviny'.'$kategorie' ('Nadpis, Text, Datum') VALUES ('$nadpis, $text, CURRENT_TIMESTAMP')");
?>
sir_lamoid
Profil
píše i to:
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 ''clanky' ('Nadpis, Text, Datum') VALUES ('fdsfs,

sfsf
, CURRENT_TIMES' at line 1
sir_lamoid
Profil
JINAK
<?php
$kategorie=$_POST['kategorie'];
$nadpis=$_POST['nadpis'];
$text=$_POST['text'];

include('../Login/DB_connect.php');
mysql_select_db($DBname);
mysql_query("insert INTO '$kategorie' ('Nadpis, Text, Datum') VALUES ('$nadpis, $text, CURRENT_TIMESTAMP')");
echo mysql_error();
?>
panther
Profil
sir_lamoid:
zjistit si syntaxi INSERTu tě nenapadlo?
mysql_query ("INSERT INTO " . $kategorie . " VALUES ('" . mysql_real_escape_string($nadpis) . "', '" . mysql_real_escape_string($text) . "', NOW())")

Kolem názvů tabulek se dělají zpětné apostrofy, když už nějaké (stejně jako kolem názvů sloupců), hodnoty se ukládají každá do vlastních apostrofů (stejně jako všechny stringy).
sir_lamoid
Profil
pročto
 mysql_real_escape_string
?? to nestačí jen ty $nadpis atd kdy to mám ošeteno pomocí
$kategorie=$_POST['kategorie'];
$nadpis=$_POST['nadpis'];
$text=$_POST['text'];
??
panther
Profil
sir_lamoid:
přečti si něco o (ne)bezpečnosti neošetřených SQL dotazů.
sir_lamoid
Profil
aha takdik lidi....zase jsem o něco chytřejší
Toto téma je uzamčeno. Odpověď nelze zaslat.

0