Foros del Web » Programando para Internet » PHP »

ingreso da datos a base de datos

Estas en el tema de ingreso da datos a base de datos en el foro de PHP en Foros del Web. Buenas estoy armando un formulario que cargue datos para agregar texto a una base de datos el form es <form method="post" action="carga.php"> Direccion :<input type="Text" ...
  #1 (permalink)  
Antiguo 08/08/2008, 14:29
Avatar de ale80262  
Fecha de Ingreso: junio-2008
Mensajes: 66
Antigüedad: 15 años, 10 meses
Puntos: 0
ingreso da datos a base de datos

Buenas estoy armando un formulario que cargue datos para agregar texto a una base de datos

el form es

<form method="post" action="carga.php">
Direccion :<input type="Text" name="source"><br>
Titulo:<input type="Text" name="title"><br>
Author :<input type="Text" name="author"><br>
Year :<input type="Text" name="year"><br>
Descripcion :<input type="Text" name="desc"><br>
<input type="Submit" name="enviar" value="Aceptar información">
</form>


y el php es

<?PHP

$link=mysql_connect("localhost","cl007_prueba","xx xx");
mysql_select_db("cl007_ejemplo");
$dberror="No se puede conectar a MySQL Server ";

$sql = "INSERT INTO videos (source, title, author, year, desc) ";

$sql .= "VALUES ('$source', '$title', '$author', '$year', '$desc')";

$result = mysql_query($sql);

echo "Se han cargado lso datos.\n";


?>

la db se llama videos y lso cmpos ademas de id son source, title, author, year y desc

muchas gracias
  #2 (permalink)  
Antiguo 08/08/2008, 14:33
Avatar de chitoso  
Fecha de Ingreso: mayo-2008
Ubicación: Montevideo, Uruguay
Mensajes: 205
Antigüedad: 15 años, 11 meses
Puntos: 5
Respuesta: ingreso da datos a base de datos

Y cuál es el problema?
Postea el error si es que te da alguno.
  #3 (permalink)  
Antiguo 08/08/2008, 15:33
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Respuesta: ingreso da datos a base de datos

Que tal ale80262, te da algún error el código? sim embargo puedes modificarlo sería algo como esto:

Código PHP:
<?php
$link 
mysql_connect("localhost","cl007_prueba","xx xx") or die("No se puede conectar a MySQL Server:" .mysql_error() );
mysql_select_db("cl007_ejemplo");
$source $_POST['source'];
$title $_POST['title'];
$author $_POST['author'];
$year $_POST['year'];
$desc $_POST['desc'];
$sql "INSERT INTO videos (source, title, author, year, desc) ";
$sql .= "VALUES ('$source', '$title', '$author', '$year', '$desc')";
if (
$result mysql_query($sql$link)){
     echo 
"Se han cargado lso datos.\n";}
else{
     die(
"Error en consulta $sql:"mysql_error() );}
?>

Saludos.
  #4 (permalink)  
Antiguo 08/08/2008, 16:34
Avatar de ale80262  
Fecha de Ingreso: junio-2008
Mensajes: 66
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: ingreso da datos a base de datos

muchas gracias a los dos ahora el codigo lo tengo asi

<?PHP
$link=mysql_connect("localhost","cl007_prueba","xx xx");
mysql_select_db("cl007_ejemplo");
$dberror='No se puede conectar a MySQL Server ';

$sql= "INSERT INTO videos (source,title,author,year,desc) VALUES ('$source', '$title', '$author', '$year', '$desc')";

$result = mysql_query($sql);
mysql_query($sql) or die("Eror en mysql".mysql_error());
echo "Todo bien chabon.\n";


?>


y el error que me tira es este

Eror en mysqlYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'desc) VALUES ('', '', '', '', '')' at line 1


muchas gracias de vuelta saludos!!
  #5 (permalink)  
Antiguo 08/08/2008, 16:52
Avatar de ale80262  
Fecha de Ingreso: junio-2008
Mensajes: 66
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: ingreso da datos a base de datos

y cuando hago una consulta en phpmyadmin me sale este error

Error

consulta SQL: Documentación

SELECT *
FROM `videos`
WHERE 1 `source` , `title` , `author` , `year` , `desc`
LIMIT 0 , 30

MySQL ha dicho: Documentación
#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 '`source` , `title` , `author` , `year` , `desc`
LIMIT 0, 30' a
  #6 (permalink)  
Antiguo 08/08/2008, 20:21
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: ingreso da datos a base de datos

Hola ale80262,

Te recomiendo leas urgentemente un manual de SQL, ya que la sintaxis de tu where esta mal.

Saludos.
  #7 (permalink)  
Antiguo 10/08/2008, 11:58
Avatar de ale80262  
Fecha de Ingreso: junio-2008
Mensajes: 66
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: ingreso da datos a base de datos

Cita:
Iniciado por GatorV Ver Mensaje
Hola ale80262,

Te recomiendo leas urgentemente un manual de SQL, ya que la sintaxis de tu where esta mal.

Saludos.
Gracias por la recomendacion ya estuve viendo, te referis es a la consulta que hice en phpmyadin?? no? pero me podrias decir donde me equivoco en la sintaxis de la carga de los datos que provienen del formulario??
  #8 (permalink)  
Antiguo 10/08/2008, 12:08
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: ingreso da datos a base de datos

Cita:
SELECT *
FROM `videos`
WHERE 1 `source` , `title` , `author` , `year` , `desc`
LIMIT 0 , 30
Te equivocas en todo el WHERE.
Primero, que se supone que signifique? En el WHERE estableces una condicion para filtrar los datos de una tabla. Si lo que quieres es mostrar todos los datos, elimina la linea de WHERE completamente.

Sobre el problema inicial, si lo intentabas de la siguiente forma:

Código PHP:
$sql "INSERT INTO videos (source, title, author, year, desc) ";

$sql .= "VALUES ('$source', '$title', '$author', '$year', '$desc')"
Puede ser que tu servidor no tenga las Register Globals activadas.

¿Ya intentaste la solucion que te dio chitoso?
  #9 (permalink)  
Antiguo 10/08/2008, 12:14
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: ingreso da datos a base de datos

No es propiamente un error de sintaxis, sino de conceptos

Cita:
Iniciado por okram Ver Mensaje
@todos,el problema es la palabra DROP (En este tema, es la palabra desc como columna de la tabla, tomando en cuenta que se usa para indicar el orden en una claúsula ORDER BY columna DESC/ASC). En la tabla hace referencia a un campo, pero en realidad es mucho más que eso.Es parte de varias sentencias (DROP TABLE, DROP USER, DROP DATABASE, etc etc..). Por eso no puedes usarlo así directamente en una consulta SQL. Lo mismo sucede cuando hay campos llamados desc, order, select, etc. La solución está en indicarle a MySQL que estás referenciando a una columna y no a una instrucción SQL.

En estos casos el nombre del campo "problema" debe ir entre signos de tilde [``]:

Código PHP:
$query "UPDATE juego.user SET `drop`='$drop', slice ='$slice' WHERE id='$id'"
Lo de la coma no está demás, ya que también habría producido error.

Algo práctico en estos casos es fijarse en el error en sí que se produce:

Cita:
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 'desc) VALUES ('', '', '', '', '')' at line 1
Lo que está entre comillas simples después de ...for the right sintax to use near es la parte que está produciendo el error, generalmente es lo primero que aparece, en este caso, el desc.

Un saludo,
Tu consulta debiera ser:

Código PHP:
$sql"INSERT INTO videos (source,title,author,year,`desc`) VALUES ('$source', '$title', '$author', '$year', '$desc')"
Saludos.

Última edición por okram; 10/08/2008 a las 12:21
  #10 (permalink)  
Antiguo 10/08/2008, 13:45
Avatar de ale80262  
Fecha de Ingreso: junio-2008
Mensajes: 66
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: ingreso da datos a base de datos

muchisimas gracias por la informacion ahora funcion la carga, pero me duplica los registros en la base de datos.
digo qeu es lo que estoy experimentando

tego un flash con playlist de videos donde cargo los datos por medio de un xml en realidad php que me lo genera desde la base de datos el formulario de carga era para modificar la base de datos por lo cual el archivo se actualiza y por ende el flash

entonces tengo un formulario de carga

ingreso1.php

<form method="post" action="carga.php">
Direccion :<input type="Text" name="source"><br>
Titulo:<input type="Text" name="title"><br>
Author :<input type="Text" name="author"><br>
Year :<input type="Text" name="year"><br>
Descripcion :<input type="Text" name="desc"><br>
<input type="Submit" name="enviar" value="Aceptar información">
</form>

Estos datos son enviados a carga.php

$link=mysql_connect("localhost","cl007_prueba","xx xx");
mysql_select_db("cl007_ejemplo");
$dberror='No se puede conectar a MySQL Server ';
$sql = 'SELECT * FROM `videos` LIMIT 0, 30 ';

$source = $_POST['source'];
$title = $_POST['title'];
$author = $_POST['author'];
$year = $_POST['year'];
$desc = $_POST['desc'];

$sql= "INSERT INTO videos (source,title,author,year,`desc`) VALUES ('$source', '$title', '$author', '$year', '$desc')";

$result = mysql_query($sql);
mysql_query($sql) or die("Eror en mysql".mysql_error());
echo "Enviado con exito.\n";

una vez lso datos en la base actualizo el php que me toma el flash

videos.php

$link=mysql_connect("localhost","cl007_prueba","xx xx");
mysql_select_db("cl007_ejemplo");


$query = 'SELECT * FROM videos';
$results = mysql_query($query);

echo "<?xml version=\"1.0\"?>\n";
echo "<videos>\n";

while($line = mysql_fetch_assoc($results)) {


echo "<video source=\"" .$line[source]."\" title=\"".$line[title]."\" author=\"".$line[author]."\"year=\"".$line[year]."\"desc=\"".$line[desc]."\"/>\n";
}
echo "</videos>\n";

mysql_close($link);


por ahora voy hasta aca y funciona (salvo la duplicacion de los registros) pero la idea es que en el flash el aspecto sea como una galeria de tres columnas por tresfilas y que alli se cargue una imgaen (miniatura) y una descripcion y titulo pero al hacerla clic sobre la imagen o bien se abra un ligthbox con el flv y la descripcion o un specia de pop up con el flv y la descripcin

bueno sigo intentando investigando aprendiendo muchas gracias por la ayuda y la valiosa informacion
  #11 (permalink)  
Antiguo 10/08/2008, 13:49
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: ingreso da datos a base de datos

El problema esta en la siguiente linea de codigo:

Código PHP:
$result mysql_query($sql);
mysql_query($sql) or die("Eror en mysql".mysql_error()); 
Solo elimina la variable $result, en el archivo carga.php, que en este caso no la necesitas.
  #12 (permalink)  
Antiguo 10/08/2008, 14:39
Avatar de ale80262  
Fecha de Ingreso: junio-2008
Mensajes: 66
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: ingreso da datos a base de datos

uchas gracias si le habia escripto para ver cual era el error que tenia ahora estoy investigando $_FILE para subir imagenes

estes el codigo que deduje segun algunos foros

if($_POST){
// Creamos la cadena aletoria
$str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvw xyz1234567890";
$cad = "";
for($i=0;$i<12;$i++) {
$cad .= substr($str,rand(0,62),1);
}
// Fin de la creacion de la cadena aletoria
$tamano = $_FILES [ 'file' ][ 'size' ]; // Leemos el tamaño del fichero
$tamaño_max="50000000000"; // Tamaño maximo permitido
if( $tamano < $tamaño_max){ // Comprovamos el tamaño
$destino = 'uploaded' ; // Carpeta donde se guardata
$sep=explode('image/',$_FILES["file"]["type"]); // Separamos image/
$tipo=$sep[1]; // Optenemos el tipo de imagen que es
if($tipo == "gif" || $tipo == "jpeg" || $tipo == "bmp"){ // Si el tipo de imagen a subir es el mismo de los permitidos, segimos. Puedes agregar mas tipos de imagen
move_uploaded_file ( $_FILES [ 'file' ][ 'tmp_name' ], $destino . '/' .$cad.'.'.$tipo); // Subimos el archivo

}
else echo "el tipo de archivo no es de los permitidos";// Si no es el tipo permitido lo desimos
}
else echo "El archivo supera el peso permitido.";// Si supera el tamaño de permitido lo desimos
}


bueno este codigo lo probe y subo la imagen en este caso a una carpeta en mi servidor ahora como hago para que esos datos queden en los registros de mi db por ejemplo en nombre_archivo para despues poder consultarlo y sumarlo a mi archivo qeu actualiza el flash

en resumen queisiera cargar en mi formulario un archivo el cual se aloje en una carpeta en mi servidor pero que los datos el nombre del archivo con su extension en la base para que pueda ser consultado.

los pasos que estoy realizando son
modificar mi formulario para obtener el archivo que seriasn dos uno flv y el otro una imagen
luego los datos de texto com hasta el momento he realizado

luego seguiria el mismo camino que lo anterior este formulario enviaria los datos a mi archivo carga que separaria la direccion de los archivos a la base de datos y enviaria el archivo y la imagen subida ala carpetas correspondientes en mi servidor luego el archivo que actualiza los datos tomando los de la DB actualizaria el flash

bueno otra vez muchas gracias es qeu soy autodidacta como imagino algunos de ustedes y aveces no tener ninguna referencia para consultar entre los manuales y los foros voy deducionedo aprendiendo

saludos
  #13 (permalink)  
Antiguo 10/08/2008, 14:54
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: ingreso da datos a base de datos

Lo ideal seria luego de que se hacen todas las comprobaciones (si el archivo pesa lo correcto y si el archivo es un gif, jpeg o bmp) tomar los valores e introducirlos a la BD mediante un INSERT INTO.
Ahora mismo no te puedo mostrar un ejemplo porque no me estoy sintiendo muy bien. Cuando me sienta mejor vuelvo y te doy un ejemplo.

O si lo puedes hacer tu mismo aun mejor, asi aprendes mas :P
  #14 (permalink)  
Antiguo 10/08/2008, 15:20
Avatar de ale80262  
Fecha de Ingreso: junio-2008
Mensajes: 66
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: ingreso da datos a base de datos

muchisimas gracias si lo estoy intentando, muchas gracias!!

espero que te mejores

saludos
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 18:31.