Nao consigo gravar dados nem exibilos (tinymce + php + mysql). AJUDEM PLEASE!!!

Fil__

Power Member
Malta, tenho o tinymce instalado para poderem meter texto, mas ao gravar ele cria na base de dados o registo mas nao grava o texto em si. E quando chamo para ver os registos ele indica-me que nao tem nenhum. O que tou a fazer de errado? Os meus codigos sao estes:

Ficheiro html onde se escreve o que se quer
Código:
<html>
<head>
<title>TinyMCE Test</title>
<script language="javascript" type="text/javascript" src="http://***.*****.***/tinymce/jscripts/tiny_mce/tiny_mce.js"></script>
<script language="javascript" type="text/javascript">
tinyMCE.init({
    mode : "textareas",
    theme : "advanced",
    plugins : "table,advhr,advimage,advlink,emotions,iespell,insertdatetime,zoom,searchreplace,contextmenu",
    theme_advanced_buttons1_add_before : "save,separator",
    theme_advanced_buttons1_add : "fontselect,fontsizeselect",
    theme_advanced_buttons2_add : "separator,insertdate,inserttime,preview,zoom,separator,forecolor,backcolor",
    theme_advanced_buttons2_add_before: "cut,copy,paste,separator,search,replace,separator",
    theme_advanced_buttons3_add_before : "tablecontrols,separator",
    theme_advanced_buttons3_add : "emotions,iespell,advhr,separator",
    theme_advanced_toolbar_location : "top",
    theme_advanced_toolbar_align : "center",
    /*theme_advanced_statusbar_location : "top",*/
    plugin_insertdate_dateFormat : "%Y-%m-%d",
    plugin_insertdate_timeFormat : "%H:%M:%S",
    extended_valid_elements : "a[name|href|target|title|onclick],img[class|src|border=0|alt|title|hspace|vspace|width|height|align|onmouseover|onmouseout|name],hr[class|width|size|noshade],font[face|size|color|style],span[class|align|style]",
    external_link_list_url : "example_data/example_link_list.js",
    external_image_list_url : "example_data/example_image_list.js",
    flash_external_list_url : "example_data/example_flash_list.js"
});
</script>
</head>
<body>
<form method="post" action="conteudo.php">
    <textarea name="content" cols="80" rows="15"></textarea>
    <input type="submit" value="Save" />
</form>
</body>
</html>
Ficheiro conteudo.php que supostamente e onde grava
Código:
<?php
$conexao = mysql_connect("********", "******", "*****")
or die ("Erro na ligação à banco de dados.");
$db = mysql_select_db("*******")
or die ("Erro ao selecionar a base de dados.");

$sql = "INSERT INTO paginas (
texto
) VALUES (
'".$_POST['texto']."'
)";

$sql = mysql_query($sql)
or die ("Houve erro na gravação dos dados.");
?>
Ficheiro noticias.php onde era para aparecerem as varias noticias
Código:
<?php
$conexao = mysql_connect("***********", "*******", "*******")
or die ("Erro na conexão à base de dados.");
$db = mysql_select_db("**********")
or die ("Erro ao selecionar a base de dados.");

$sql = "SELECT * 
FROM paginas 
WHERE ver = '1' 
ORDER BY id DESC 
LIMIT 1000";

$resultado = mysql_query($sql) 
or die ("Não foi possível realizar a consulta");
if (@mysql_num_rows($resultado) == 0)
   die('Nenhum registro encontrado');

while ($linha=mysql_fetch_array($resultado))
{
   echo "Notícia: {$linha['texto']} <br />";
}
?>
Esta é a minha base de dados
Código:
CREATE TABLE `paginas` (
  `id` int(11) NOT NULL auto_increment,
  `texto` text NOT NULL,
  `ver` tinyint(1) default '0',
  PRIMARY KEY  (`id`)
)
Podem ajudar-me :'( ?
 
Última edição:
Não é:
PHP:
$_POST['texto']
mas sim:
PHP:
$_POST['content']

provavelmente copiaste de uns tutoriais, mas com nomes diferentes é normal que não funcione. Para debug podes utilizar o echo, exemplo:
PHP:
echo $sql;
Isto depois de teres definido a query, ele vai mostrar como fica, e aí percebes logo o que foi inserido ou vai ser inserido.
 
Nao copiei anjo2, li e fui tentando fazer alguma coisa que funcionasse. Mas tava convencido que naquele post devia ir o campo texto, porque se houvesse mais campos como se distinguia? Mas brigadao pela liçao. Abraço
 
Código:
<textarea name="[U][B][COLOR=Red]content[/COLOR][/B][/U]" cols="80" rows="15"></textarea>
onde tu defines o "name", vai ser o que ele envia
 
Nop anjo2, nao funciona. Continua a gravar para a base de dados e grava o conteudo em si. Mas depois quando o chamo ele nao encontra registo nenhum. Nao percebo porque
 
Última edição:
Ja consegui. Fiz o que penso ser uma batota mas gostava que me explicassem se fiz bem ou nao

Código:
<?php
$conexao = mysql_connect("***********", "*******", "*******")
or die ("Erro na conexão à base de dados.");
$db = mysql_select_db("**********")
or die ("Erro ao selecionar a base de dados.");

$sql = "SELECT * 
FROM paginas 
WHERE ver = '1' 
ORDER BY id DESC 
LIMIT 1000";

$resultado = mysql_query($sql) 
or die ("Não foi possível realizar a consulta");
if (@mysql_num_rows($resultado) == 0)
   die('Nenhum registro encontrado');

while ($linha=mysql_fetch_array($resultado))
{
   echo "Notícia: {$linha['texto']} <br />";
}
?>

Na linha if (@mysql_num_rows($resultado) == 0 substitui o 0 por 1 e
na linha WHERE ver = '1' substitui o 1 por 0
Deste modo ele ja me acha os registos que tavam na base dados. Esta "batota e correcta" ou nem por isso? Pode ser prejudicial ao codigo?
 
Normal que não funcione, e essa alteração é simplesmente sem nexo.

Na tabela, tens como default a tabela ver como 0, logo inseres tudo com 0, assim ao ir buscar os que teem ver=1 não te aparece nenhum...
 
if (@mysql_num_rows($resultado) == 0)

Se não houver resultado, ele faz aquela acção, como tu puseste, se ele tiver 1 resultado, diz que não tem nenhum, por isso deixa a 0

Estás a inserir todos os resultados com ver=0, se pedes os que teem ver=0, ele mostra todos, tens é de mudar o default da tabela para 1, ou ao colocar indicar que o ver vai ser 1.
 
Ja percebi anjo2. Isto ja ta a funcionar porreiro. Mas agora tenho outra questao, como é que faço para que os varios registos que sao chamados, sejam chamados no editor de texto tinymce em vez de aparecerem na pagina atraves da funçao echo? Sabes? Brigadao
 
Sim anjo2, mas que sejam editados no tinymce. No fundo e como se fosse um gestor de conteudos em que a pessoa escreve o que quer na pagina especifica (mas todas as paginas para escrever terao o tinymce). Nao sei se me consegui explicar bem anjo2
 
Eu não sei bem o que pretendes, mas há-de ser algo assim:
Código:
<form method="post" action="conteudo.php">
    <textarea name="content" cols="80" rows="15"><?= $texto ?></textarea>
    <input type="submit" value="Save" />
</form>
O texto é o que está na base de dados
 
Isso vai retornar o texto que ta na base de dados no tinymce? Portanto o que pretendo e mesmo isso, os textos serem escritos no tinymce, gravados para a base de dados e depois exibidos (quando se esta no gestor de conteudos) no tinymce
 
Back
Topo