Foros del Web » Programando para Internet » PHP »

Problema mysql_nums_rows(), mysql_fetch_array, mysql_free_result

Estas en el tema de Problema mysql_nums_rows(), mysql_fetch_array, mysql_free_result en el foro de PHP en Foros del Web. Buenas de nuevo... Me surgio otro problema con la base de datos y el codigo php. Me aparece esto: Warning: mysql_num_rows(): supplied argument is not ...

  #1 (permalink)  
Antiguo 12/09/2006, 07:58
 
Fecha de Ingreso: enero-2006
Ubicación: Asturias
Mensajes: 61
Antigüedad: 18 años, 3 meses
Puntos: 0
Problema mysql_nums_rows(), mysql_fetch_array, mysql_free_result

Buenas de nuevo... Me surgio otro problema con la base de datos y el codigo php. Me aparece esto:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /www/sites/1/iespana.es/e/x/exmacris/site/noticias.php on line 8

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /www/sites/1/iespana.es/e/x/exmacris/site/noticias.php on line 13

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in /www/sites/1/iespana.es/e/x/exmacris/site/noticias.php on line 18

¿que es pq no me devuelve los datos y esta alguna conexion fallida? pq mire y me aprece q esta todo correcto, que es lo que me suele pasar... Puede a ver alguna forma apra saber en que falla? o reviso algo especial?

Código PHP:
<html>
<head>
<title>Sistema de noticias</title>
<?
$connect
=mysql_connect("imysql00","i3796761","gd47xg1oyawgs270"); 
mysql_select_db("noticias",$connect); 
$result=mysql_query("select * from noticias order by fecha Desc"$connect);
$totalregistros=mysql_num_rows($result); //8
?>
</head>
<body>
<? 
while($row=mysql_fetch_array($result)) //13
{
echo 
'<h2>'.$row[titulo].'</h2><br><p>'.$row[articulo].'</p><br><tudiv>'.$row[autor].'|'.$row[fecha].'| '.$row[categoria].' | <a href="ver.php?id='.$row[id_noticia].'">comentarios()</a> | 
<a href="editar.php?id='
.$row[id_noticia].'">editar</a></tu div>';
}
mysql_free_result($result//18
?> 
</body>
</html>

Un saludo y gracias.
  #2 (permalink)  
Antiguo 12/09/2006, 08:08
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Cuando realices una consulta sql comprueba que el resultado sea correcto (mira que no se false, por ejemplo. Consulta la documentación aquí).
Por otro lado, no sé por qué te da el ese error. Puede que haya algun problema con la estructura de la base de datos. Si tienes acceso al phpmyadmin, prueba de hacer esa misma consulta en la pestaña sql.

Un saludo
  #3 (permalink)  
Antiguo 12/09/2006, 08:50
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
hay 3 lugares donde puede estar el error

1.- en la conexión a mysql.
2.- en la selección de la base de datos, y
3.- en la consulta sql.
prueba utilizando esto:

Código PHP:
$connect=mysql_connect("imysql00","i3796761","gd47xg1oyawgs270"); 
if(!
$connect)
   {die(
"Error al Conectar".mysql_errno()." - ".mysql_error())}
mysql_select_db("noticias",$connect) or die("Error al Selecionar la Bd".mysql_errno()." - ".mysql_error()); 
$result=mysql_query("select * from noticias order by fecha Desc"$connect);
if(!
$result)
  {die(
"Error en la consulta".mysql_errno()." - ".mysql_error())}
$totalregistros=mysql_num_rows($result); 
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #4 (permalink)  
Antiguo 12/09/2006, 12:33
 
Fecha de Ingreso: enero-2006
Ubicación: Asturias
Mensajes: 61
Antigüedad: 18 años, 3 meses
Puntos: 0
Parse error: syntax error, unexpected '}' in ... on line 8

Tiene un fallo el código.

¿Este código que sirve apora comprobar cualquier fallo en cualquier página que se conecte a la base de datos? Si es así me voy a aficionar a el.

Gracias.
  #5 (permalink)  
Antiguo 12/09/2006, 12:41
 
Fecha de Ingreso: enero-2006
Ubicación: Asturias
Mensajes: 61
Antigüedad: 18 años, 3 meses
Puntos: 0
Por cierto, puse ahora eso en phpmiadmin en sql, la parte del 2º <?php y me devolvio esto:

consulta SQL:

while(

$row = mysql_fetch_array(
$result
)
){echo '<h2>'.$row[titulo]. '</h2><br><p>'.$row[articulo]. '</p><br><tudiv>'.$row[autor]. '|'.$row[fecha]. '| '.$row[categoria]. ' | <a href="ver.php?id='.$row[id_noticia]. '">comentarios()</a> | <a href="editar.php?id='.$row[id_noticia]. '">editar</a></tu div>';

MySQL ha dicho:

#1064 - 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 'while($row=mysql_fetch_array($result))
{
echo '<h2>'.$row[titulo].'</h2><br><p' at line 1

P.D.: Aqui que se pone solo el código, nada de conectar, funciones y eso?

Gracias.

Última edición por Diablo_Cris; 12/09/2006 a las 12:43 Razón: para añadir la consulta que relaice.
  #6 (permalink)  
Antiguo 12/09/2006, 16:50
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
lo único que debes de poner en el sql de phpMyAdmin es la consulta

select * from noticias order by fecha Desc

si te marca error es que ahi esta el problema, de lo contrario tu problema esta en la conexión o en la seleccion de la base de datos.

en cuanto a esto
Cita:
Iniciado por Diablo_Cris Ver Mensaje
Parse error: syntax error, unexpected '}' in ... on line 8

Tiene un fallo el código.
puede que tengas una llave ( } ) de mas.
saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.

Última edición por eits; 12/09/2006 a las 16:57
  #7 (permalink)  
Antiguo 13/09/2006, 01:29
 
Fecha de Ingreso: enero-2006
Ubicación: Asturias
Mensajes: 61
Antigüedad: 18 años, 3 meses
Puntos: 0
Pues en el sql lo muestra bien. Vere ahroa la conexion a ver que tal.
  #8 (permalink)  
Antiguo 13/09/2006, 02:26
 
Fecha de Ingreso: enero-2006
Ubicación: Asturias
Mensajes: 61
Antigüedad: 18 años, 3 meses
Puntos: 0
Ok, ya esta, era un error al conectar en la base de datos, gracias!
  #9 (permalink)  
Antiguo 13/09/2006, 03:29
 
Fecha de Ingreso: enero-2006
Ubicación: Asturias
Mensajes: 61
Antigüedad: 18 años, 3 meses
Puntos: 0
Parse error: syntax error, unexpected '<', expecting ',' or ';'

La otra página ya va a pesar de que aun no me graba las noticias, tg que revisarla, pero en la siguiente, que es etsa, que es para editarlas me da el error:

Parse error: syntax error, unexpected '<', expecting ',' or ';' in ... on line 18

Supongo que el error l oque viene a decir es: inesperado <, esperando , o ; Pero revise y mire segun otras páginas de este estilo que tengo y funcionan y compare y no soy capaz de arreglarlo...

Código PHP:
    //Una vez seleccionados los registros los mostramos para su edición
    
while($row=mysql_fetch_array($result))
    {
    echo <
form action="edit.php" method="post"//18
    
<input type="hidden" name="id" value="'.$row[id_noticia].'"><br>
    
Título noticia:<br>
    <
input type="text" name="titulo" value="'.$row[titulo].'"><br>
    
Autor:<br>
    <
input type="text" name="autor" value="'.$row[autor].'"><br>
    
Categoría:<br>
    <
input type="text" name="categoria" value="'.$row[categoria].'"><br>
    
Escriba el articulo<br>
    <
textarea name="articulo" cols="50" rows="10">'.$row[articulo].'</textarea>
    <
br>
    < 
input type="submit" value="Editar"><br>
    </
form>
    }
    
mysql_free_result($result)
    
mysql_close($connect)
    
?> 
Un saludo y gracias.
  #10 (permalink)  
Antiguo 13/09/2006, 03:43
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 17 años, 10 meses
Puntos: 0
Faltan las comillas simples despues del comando echo y al final cerrarlo y el punto y coma correspondiente.

Código PHP:
echo '<form action="edit.php" method="post"> //18 
    <input type="hidden" name="id" value="'
.$row['id_noticia'].'"><br> 
    Título noticia:<br> 
    <input type="text" name="titulo" value="'
.$row['titulo'].'"><br> 
    Autor:<br> 
    <input type="text" name="autor" value="'
.$row['autor'].'"><br> 
    Categoría:<br> 
    <input type="text" name="categoria" value="'
.$row['categoria'].'"><br> 
    Escriba el articulo<br> 
    <textarea name="articulo" cols="50" rows="10">'
.$row['articulo'].'</textarea> 
    <br> 
    < input type="submit" value="Editar"><br> 
    </form>'

Saludos.
__________________
La muerte es un camino que todos debemos recorrer...
  #11 (permalink)  
Antiguo 13/09/2006, 04:38
 
Fecha de Ingreso: enero-2006
Ubicación: Asturias
Mensajes: 61
Antigüedad: 18 años, 3 meses
Puntos: 0
Ok, gracias, aun ando algo liado con las comillas y los cierres. Ahora eso va bien, lo que me falla ahroa es el final de la página:

Parse error: syntax error, unexpected T_STRING in /www/sites/1/iespana.es/e/x/exmacris/site/editar_noticia.php on line 32

Código PHP:
    mysql_free_result($result)
    
mysql_close($connect
Se corresponde con la desconexion de la base, pero si le pongo ; entonces me da el mismo error con la anterior linea... Que pasa hay? Puede venir el error de much oantes en el codigo?
  #12 (permalink)  
Antiguo 13/09/2006, 04:41
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 17 años, 10 meses
Puntos: 0
Hombre, ambos deben llevar el ;

Es posible q con anterioridad hayas olvidao algún ; o " o ' y eso provoque q te dé el error en la línea posterior al olvido...

Revisa eso.

Saludos.
__________________
La muerte es un camino que todos debemos recorrer...
  #13 (permalink)  
Antiguo 13/09/2006, 05:07
 
Fecha de Ingreso: enero-2006
Ubicación: Asturias
Mensajes: 61
Antigüedad: 18 años, 3 meses
Puntos: 0
Pues lo revise, puse los dos ; y me da el error:

Parse error: syntax error, unexpected $end in ... on line 35

Si quito todo el codigo html, me da el error siempre en la ultima linea que seria ?>, si solo pongo punto y coma al final de la conexio nme da el error en la anterior de los resultados... No se, pos mas que mire y prove no encontre la solucion...

Código PHP:
<html>
<head>
</head>
<BODY leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" link="#666699" bgcolor="#009999">
<?
    
//recibimos la variable id enviada en el enlace por GET
    
$id=$_GET[id];
    
//conectamos a la base
    
$connect=mysql_connect("imysql00","i3796761","gd47xg1oyawgs270");
    
//Seleccionamos la base
    
mysql_select_db("i3796761",$connect);  
    
//hacemos las consultas
    
$result=mysql_query("select * from noticias where id_noticia='$id'"
    
,$connect);
    
//Una vez seleccionados los registros los mostramos para su edición
    
while($row=mysql_fetch_array($result))
    {
    echo 
'<form action="edit_noticia.php" method="post">
    <input type="hidden" name="id" value="'
.$row['id_noticia'].'"><br>  
    Título noticia:<br>  
    <input type="text" name="titulo" value="'
.$row['titulo'].'"><br>  
    Autor:<br>  
    <input type="text" name="autor" value="'
.$row['autor'].'"><br>  
    Categoría:<br>  
    <input type="text" name="categoria" value="'
.$row['categoria'].'"><br>  
    Escriba el articulo<br>  
    <textarea name="articulo" cols="50" rows="10">'
.$row['articulo'].'</textarea>  
    <br>  
    <input type="submit" value="Editar"><br>  
    </form>'
;
    
mysql_free_result($result);
    
mysql_close($connect);
    
?>
</body>
</html>
  #14 (permalink)  
Antiguo 13/09/2006, 05:19
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 17 años, 10 meses
Puntos: 0
Pues te comento... te aconsejo usar siempre <?php para entrar en php si desarrollas para servidores externos x si cambian la configuracion del ini.

Luego en el código mostrado falta la llave de cierre del bucle while.

También poner $id=$_GET['id']; aunque no creo q el fallo venga de ahí.

Saludos.
__________________
La muerte es un camino que todos debemos recorrer...
  #15 (permalink)  
Antiguo 13/09/2006, 07:21
 
Fecha de Ingreso: enero-2006
Ubicación: Asturias
Mensajes: 61
Antigüedad: 18 años, 3 meses
Puntos: 0
Perfecto! era el cierre del while lo que me fallaba, que n oestaba. Muchas gracias! A ver si empiezo pronto a ver estos fallucos pq todos los que me pasan son así, gracias!
  #16 (permalink)  
Antiguo 13/09/2006, 11:49
 
Fecha de Ingreso: enero-2006
Ubicación: Asturias
Mensajes: 61
Antigüedad: 18 años, 3 meses
Puntos: 0
No ingresa los datos en la BD

Buenas, tg el problema de que los datos que meto en el formulari ono los ingresa en la base de datos, pero los que tengo dentro de ella y que meti con el phpmyadmin si me los muestra. En cambio no me da ningun problema de conexion ni nada, relleno el formulario, lo envio y me enseña los que habia dentro pero no ingresa nada. Lo mismo para al editar, saca el que quiero editar pero no lo edita, lo muestra como estaba. ¿En que puede fallar?

create table noticias (
id_noticia int(4) auto_increment not null,
titulo varchar(255),
autor varchar(255),
categoria varchar(255),
fecha datetime not null,
noticia text, key(id_noticia)
)
  #17 (permalink)  
Antiguo 13/09/2006, 11:56
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 17 años, 10 meses
Puntos: 0
Muestra el código q usas para actualizar... cómo recoges los nuevos datos...
Asegúrate de usar comillas simples para los campos de texto y fecha y sin comillas para los numéricos...

Con la definición de la tabla y sin el código no se puede determinar qué falla.

Saludos.
__________________
La muerte es un camino que todos debemos recorrer...
  #18 (permalink)  
Antiguo 13/09/2006, 12:34
 
Fecha de Ingreso: enero-2006
Ubicación: Asturias
Mensajes: 61
Antigüedad: 18 años, 3 meses
Puntos: 0
Pues los códigos son estos, perdon por no ponerlos.

--procesanoticia.php
Código PHP:
<?php
//recibimos las variables enviadas por el formulario 
$titulo=$_POST[titulo]; 
$autor=$_POST[autor]; 
$categoria=$_POST[categoria]; 
$articulo=$_POST[articulo]; 
//conectamos a la base 
$connect=mysql_connect("imysql00","i3796761","gd47xg1oyawgs270"); 
//Seleccionamos la base 
mysql_select_db("i3796761",$connect); 
//insertamos los registros almacenados en las variables 
mysql_query("insert into noticias(titulo,autor,categoria,articulo,fecha)
values('$titulo','$autor','$categoria','$articulo',NOW()"
,$connect);
header("location: noticias.php");
?>
--noticias.php
Código PHP:
<html>
<head>
<title>Sistema de noticias</title>
<?php
//conectamos a la base
$connect=mysql_connect("imysql00","i3796761","gd47xg1oyawgs270");  
mysql_select_db("i3796761",$connect);  
$result=mysql_query("select * from noticias order by fecha Desc"$connect); 
$totalregistros=mysql_num_rows($result);
?> 
</head>
<BODY leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" link="#666699" bgcolor="#009999">
<?php
//Recogemos las consultas en un array y las mostramos
while($row=mysql_fetch_array($result))
{
   echo 
'<h2>'.$row[titulo].'</h2><br><p>'.$row[articulo].'</p><br><div id="noticia">'.$row[autor].' | '.$row[fecha].' | '.$row[categoria].' | <a href="ver_noticia.php?id='.$row[id_noticia].'">comentarios</a> | <a href="editar_noticia.php?id='.$row[id_noticia].'">editar</a>| <a href="borrar_noticia.php?id='.$row[id_noticia].'">borrar</a> </div>';
//Hemos puesto los enlaces para "Comentarios" y "Editar" cosa que ocuparemos más adelante como se puede ver el id nos servirá para casi todo.
}
mysql_free_result($result)
?> 
</body>
</html>
--formunoticia.php
Código PHP:
<style type="text/css">
<!--
body {
    
background-color#009999;
}
-->
</
style>

<
center>
<
form action="procesanoticia.php" method="post">
Título noticia:<br>
<
input type="text" name="titulo"><br>
Autor:<br>
<
input type="text" name="autor"><br>
Categoría:<br>
<
input type="text" name="categoria"><br>
Escriba el articulo<br>
<
textarea name="articulo" cols="50" rows="10"></textarea><br>
<
input type="submit" value="Publicar"><br>
</
form
</
center
--editar_noticia.php
Código PHP:
<html>
<head>
</head>
<BODY leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" link="#666699" bgcolor="#009999">
<?php
    
//recibimos la variable id enviada en el enlace por GET
    
$id=$_GET['id'];
    
//conectamos a la base
    
$connect=mysql_connect("imysql00","i3796761","gd47xg1oyawgs270");
    
//Seleccionamos la base
    
mysql_select_db("i3796761",$connect);  
    
//hacemos las consultas
    
$result=mysql_query("select * from noticias where id_noticia='$id'"
    
,$connect);
    
//Una vez seleccionados los registros los mostramos para su edición
    
while($row=mysql_fetch_array($result))
    {
    echo 
'<form action="edit_noticia.php" method="post">
    <input type="hidden" name="id" value="'
.$row['id_noticia'].'"><br>  
    Título noticia:<br>  
    <input type="text" name="titulo" value="'
.$row['titulo'].'"><br>  
    Autor:<br>  
    <input type="text" name="autor" value="'
.$row['autor'].'"><br>  
    Categoría:<br>  
    <input type="text" name="categoria" value="'
.$row['categoria'].'"><br>  
    Escriba el articulo<br>  
    <textarea name="articulo" cols="50" rows="10">'
.$row['articulo'].'</textarea>  
    <br>  
    <input type="submit" value="Editar"><br>  
    </form>'
;
    }
    
mysql_free_result($result);
    
mysql_close($connect);
    
?>
</body>
</html>
Pues son estos, als 4, pq el otro es de comentarios y el d eborrar, pero todos me fallan en lo mismo, sacan los datos pero no los ingresan.

Gracias por ayudarme, Saludos!
  #19 (permalink)  
Antiguo 13/09/2006, 12:37
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 17 años, 10 meses
Puntos: 0
No está de más q donde pongas los mysql_query les añadas al final:

mysql_query ("SENTENCIA",$connect) or die ("La consulta falló. El error fue: ".mysql_error());

donde SENTENCIA es el UPDATE, INSERT o lo q sea... de esta manera podrás quizás ver de donde viene el problema.

Saludos.

AÑADO: Fíjate en los campos q tienes en la definición y en la sentencia... hay uno (artículo) q no está en ambas. Además, no veo sentencia de UPDATE en el de edición, así q como sobreescribes la nueva información?
__________________
La muerte es un camino que todos debemos recorrer...

Última edición por djreficul; 13/09/2006 a las 12:51 Razón: Falta de datos
  #20 (permalink)  
Antiguo 13/09/2006, 12:59
 
Fecha de Ingreso: enero-2006
Ubicación: Asturias
Mensajes: 61
Antigüedad: 18 años, 3 meses
Puntos: 0
La consulta falló. El error fue: 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 '' at line 2

Ahora si que me mató... la linea 2 n ose cual es, pq en uno es html y en el otro un comentario...

P.D.: Veo esto que me dijiste muy util, empezare a incorporarlo a los scripts que realiace e itnente que funcionen.
  #21 (permalink)  
Antiguo 13/09/2006, 14:00
Avatar de omegafunky  
Fecha de Ingreso: diciembre-2003
Ubicación: Tabasco, Mexico
Mensajes: 3.534
Antigüedad: 20 años, 4 meses
Puntos: 33
Hola

jajaja donde te fallo pon el codigo para checar.
  #22 (permalink)  
Antiguo 13/09/2006, 14:24
 
Fecha de Ingreso: enero-2006
Ubicación: Asturias
Mensajes: 61
Antigüedad: 18 años, 3 meses
Puntos: 0
Lo del (articulo)
que me dices no soy capaz de localizarlo, debo de estar quedandome medi ociego o por hoy quede saturado de arreglar tantas , ; y " que no veo nada mas... A ver si mñn lo localizo.

Lo del editar, disculpame, t copie el formulario de editar que reenvia los datos a este otro código, que contiene el comando update:
Código PHP:
<?
//recibimos las variables enviadas por el formulario
$id=$_POST[id];
$titulo=$_POST[titulo];
$autor=$_POST[autor];
$categoria=$_POST[categoria];
$articulo=$_POST[articulo];
    
//conectamos a la base
    
$connect=mysql_connect("imysql00","i3796761","gd47xg1oyawgs270");
    
//Seleccionamos la base
    
mysql_select_db("i3796761",$connect); 
    
//modificamos los datos de la base según variables recibidas
    
mysql_query("update noticias Set articulo='$articulo',categoria='$categoria',titulo='$titulo' where id_noticia='$id'"$link);
    
header("location: index.php");
      
?>
Un saludo!
  #23 (permalink)  
Antiguo 14/09/2006, 02:01
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 17 años, 10 meses
Puntos: 0
Ésta es la definición de la tabla q me diste:

Cita:
Iniciado por Diablo_Cris Ver Mensaje
create table noticias (
id_noticia int(4) auto_increment not null,
titulo varchar(255),
autor varchar(255),
categoria varchar(255),
fecha datetime not null,
noticia text, key(id_noticia)
)
Según la definición no existe el campo artículo, así q no sé de donde lo sacas a la hora de usar tus sentencias:

update noticias Set articulo='$articulo',categoria='$categoria',titulo='$titulo' where id_noticia='$id'

insert into noticias(titulo,autor,categoria,articulo,fecha)
values('$titulo','$autor','$categoria','$articulo',NOW()

Asegúrate de q el fallo no está ahí. Y también puedes sustituir lo q te dije, para ser más claros, del mysql_query:

Código PHP:
$sql="insert into noticias(titulo,autor,categoria,articulo,fecha) 
values('$titulo','$autor','$categoria','$articulo',NOW()"
mysql_query ($sql,$connect) or die ("La consulta $sql falló. El error fue: ".mysql_error()); 
Así verás los datos q entraron en la consulta y podrías ejecutarla manualmente desde phpMyAdmin para ver qué fallo puede haber exactamente (en realidad no lo sé xq uso SQL Server 2000 y cuando una consulta me falla la ejecuto allí para q me diga el error más aproximado q el q a veces dá PHP).

Saludos.

EDITO Y AÑADO: Recuerda q los campos numéricos no deben llevar comillas simples:

update noticias Set articulo='$articulo',categoria='$categoria',titulo ='$titulo' where id_noticia='$id'

Esto debería ser así:

update noticias Set articulo='$articulo',categoria='$categoria',titulo ='$titulo' where id_noticia=$id
__________________
La muerte es un camino que todos debemos recorrer...

Última edición por djreficul; 14/09/2006 a las 02:46 Razón: [ b ] y [ / b ] sobraban, ejem...
  #24 (permalink)  
Antiguo 14/09/2006, 02:31
 
Fecha de Ingreso: enero-2006
Ubicación: Asturias
Mensajes: 61
Antigüedad: 18 años, 3 meses
Puntos: 0
la definicion de la tabla la cambie por articulo, asi que ahoraesta todo igual y me seguia dando este error:

La consulta falló. El error fue: 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 '' at line 2

Asi que cambie lo que tenia:
Código PHP:
mysql_query("INSERT INTO noticias(titulo,autor,categoria,articulo,fecha)
values('$titulo','$autor','$categoria','$articulo',NOW()"
,$connect) or die ("La consulta $sql falló. El error fue: ".mysql_error()); //14 
Por lo que me pusiste y ahora me da:

Parse error: syntax error, unexpected T_STRING in ... on line 14
Código PHP:
$sql="insert into noticias(titulo,autor,categoria,[b]articulo[/b],fecha)  
values('$titulo','$autor','$categoria',[b]'$articulo'[/b],NOW()" 
mysql_query ($sql,$connect) or die ("La consulta $sql falló. El error fue: ".mysql_error()); //14 
parece que ahora eso esta bien y solo es localizar ahora el error de sintaxis.

Que diferencia hay entre como lo llamaba yo y como lo llamas tu? pq primero preguntas $sql y después ya pones el query, mientras yo ponia todo en el query...
  #25 (permalink)  
Antiguo 14/09/2006, 02:45
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 17 años, 10 meses
Puntos: 0
No hay diferencia, pero asi puedes poner en el die "La consulta $sql falló", directamente la variable sin tener q copiar la consulta entera para ver si están correctas las variables q introduces.

El error que te dá es porque te falta el ; en la línea donde asignas la variable $sql. Aún así eso no quita que te vuelva a dar el mismo error q antes. Y no pongas el [ b ] y [ /b ] porque los puse para que salieran en negrita y por lo visto al meterlo dentro de codigo no se ve en negrita.

Código PHP:
$sql="insert into noticias(titulo,autor,categoria,articulo,fecha)   
values('$titulo','$autor','$categoria','$articulo',NOW()"

EDITO: Agrego, si te vuelve a decir q la consulta falla mira si las variables de la consulta son correctas y si puedes pruébala directamente sobre la base de datos (con PHPMyAdmin x ejemplo) a ver qué te dice si el error q te muestra no te lo deja claro.

Saludos.
__________________
La muerte es un camino que todos debemos recorrer...
  #26 (permalink)  
Antiguo 14/09/2006, 03:18
 
Fecha de Ingreso: enero-2006
Ubicación: Asturias
Mensajes: 61
Antigüedad: 18 años, 3 meses
Puntos: 0
Segun lo que me puso el error de la pagina y el del phpmyadmin debe de ser el NOW() si no me equivoco, pero no se pq. Lo que hace es ingresar la hora y fecha actualez del servidor no?

El error fue: 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 '' at line 2

---
consulta SQL:

INSERT INTO noticias( titulo, autor, categoria, articulo, fecha )
VALUES (

'$titulo', '$autor', '$categoria', '$articulo', NOW( ) ;



MySQL ha dicho:

#1064 - 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 '' at line 2
---

saludos y gracias.
  #27 (permalink)  
Antiguo 14/09/2006, 03:30
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 17 años, 10 meses
Puntos: 0
Prueba con GETDATE() en lugar de NOW()

Saludos.
__________________
La muerte es un camino que todos debemos recorrer...
  #28 (permalink)  
Antiguo 14/09/2006, 03:48
 
Fecha de Ingreso: enero-2006
Ubicación: Asturias
Mensajes: 61
Antigüedad: 18 años, 3 meses
Puntos: 0
La consulta insert into noticias(titulo,autor,categoria,articulo,fecha) values('omoimoimo','miooimiom','oimiomoimoim','imo imoimo',GETDATE() falló. El error fue: 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 '' at line 2

---

Falla tb el gerdate, no entiendo pq no va, creo que todo lo otro esta correcto...
  #29 (permalink)  
Antiguo 14/09/2006, 03:56
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 17 años, 10 meses
Puntos: 0
Ya lo he visto... llamas a la función (sea NOW() o GETDATE(), no sé cual es el correcto en MySQL pero no cierras el paréntesis del VALUES).

Código PHP:
$sql="insert into noticias(titulo,autor,categoria,articulo,fecha)    
values('$titulo','$autor','$categoria','$articulo',NOW())"

A ver si por fin vamos solucionando estas cosas, jejeje. Qué poca vista tenemos ambos, jajaja.

Saludos.
__________________
La muerte es un camino que todos debemos recorrer...
  #30 (permalink)  
Antiguo 14/09/2006, 04:03
 
Fecha de Ingreso: enero-2006
Ubicación: Asturias
Mensajes: 61
Antigüedad: 18 años, 3 meses
Puntos: 0
Pfff.f..... t lo digo yo, y mira que mire y requete mire el codigo comprobando comillas y apostrofes y mire lso parantesis y cierres y n oveo ese... es mala idea el poner el NOW() justo donde cierra, ese parentesis engaña jejeje.

Parece ser que es NOW() pq el GETDATE() me decia que no existia.

Gracias por la ayuda, espero no tener mas fallos hasta dentor de un par de día spq me matan jeje.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:31.