Foros del Web » Programando para Internet » PHP »

Conexión

Estas en el tema de Conexión en el foro de PHP en Foros del Web. Buen día Os cuento, he creado una base de datos por medio de navicat conectado a mi localhost. Creé una base de datos llamada noticias ...
  #1 (permalink)  
Antiguo 08/01/2010, 14:35
Avatar de HHaru  
Fecha de Ingreso: octubre-2007
Mensajes: 36
Antigüedad: 16 años, 6 meses
Puntos: 0
Pregunta Conexión

Buen día

Os cuento, he creado una base de datos por medio de navicat conectado a mi localhost. Creé una base de datos llamada noticias con dos tablas título y contenido.

Tengo el siguiente código con el que pretendo verificar la conexión a la base de datos: Pero cuando lo ejectuo desde la carpeta local host no pasa nada, así que no sé si realmente conecta. Intenté colocarle una condición para que me diga si conectó o dio error pero pasa lo mismo, no me muestra nada.

Código PHP:
<?
$dbhost
="localhost";  
$dbusuario="root"// usuario
$dbpassword="prueba"// contraseña de acceso 
$db="noticias";        // Seleccionar la base de datos
$conexion mysql_connect($dbhost$dbusuario$dbpassword);
mysql_select_db($db$conexion);
?>
Este código lo tengo en un .php, que es el formulario que pide la información.

Código PHP:
<form name="webtaller" action="insertar_datos.php" method="post">
T&#237;tulo: <input type="text" name="titulo"><br>
Contenido: <textarea name="contenido"></textarea><br>
<
input type="enviar" value="Enviar">
</
form
Y este es el código en el que inserto la información a la base de datos, la ejecuto, me aparecen los campos para llenar la información pero no puedo enviarla a la base de dátos, nisiquiera genera algún error.

Código PHP:
<?php
    
// Verificar campos vacios
    
if(isset($_POST['titulo']) && !empty($_POST['titulo']) &&
    isset(
$_POST['contenido']) && !empty($_POST['contenido'])) {
        
// Correcto
        
$link mysql_connect("localhost","root","prueba");
        
mysql_select_db("webdb",$link);
        
// Inserción a la base de datos
        
mysql_query("INSERT INTO noticias (titulo,contenido)
        VALUES ('{$_POST['titulo']}','{$_POST['contenido']}')"
,$link);
        
// Correcto
        
$my_error mysql_error($link);
        if(!empty(
$my_error) {
            echo 
"Ha habido un error al insertar los valores. $my_error"
        } else {
             echo 
"Los datos han sido introducidos satisfactoriamente";
         }
     } else {
         echo 
"Error, no ha introducido todos los datos";
    }

?>
Podría alguien orientarme en qué estoy haciendo mal. Saludos y muchas gracias.

Saludos

P.D. Intenté con otro tipo de funciones para comprobar la conexión con la base de datos igual no hacen ni arroja algún mensaje (aunque está configurada esa condición en varios de los códigos que probé).

Última edición por HHaru; 08/01/2010 a las 14:41 Razón: Adicionar información
  #2 (permalink)  
Antiguo 08/01/2010, 14:45
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Conexión

Por favor, no coloque código de programación en la sección de bases de datos.
Véase: http://www.forosdelweb.com/f21/funci...-datos-413499/
Traslado el tema a PHP.

Si no muestra ningún mensaje, es posible que el servidor no esté interpretando el código PHP.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 08/01/2010, 15:56
Avatar de HHaru  
Fecha de Ingreso: octubre-2007
Mensajes: 36
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: Conexión

Cita:
Iniciado por David Ver Mensaje
Por favor, no coloque código de programación en la sección de bases de datos.
Véase: [url]http://www.forosdelweb.com/f21/funcion-seccion-base-datos-413499/[/url]
Traslado el tema a PHP. Si no muestra ningún mensaje, es posible que el servidor no esté interpretando el código PHP.
Buen día.

Vale, compredo. Siento el error, asumí que como lo que intento hacer es realizar la conexión con la bases de datos correspondía el tema a esa sección, my bad.

Cita:
Iniciado por David Ver Mensaje
Si no muestra ningún mensaje, es posible que el servidor no esté interpretando el código PHP.
Exacto, pero me parece extraño que con ningún código pueda logar establecer la conexión con la base de datos.
  #4 (permalink)  
Antiguo 08/01/2010, 19:31
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Conexión

Si el servidor no está interpretando el código PHP, no podrás realizar nada. Haz una prueba:
Código PHP:
Ver original
  1. <?php
  2.     echo 'Hola mundo';
  3. ?>
Si no te devuelve solamente la cadena es porque efectivamente no está interpretando.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 08/01/2010, 19:34
 
Fecha de Ingreso: enero-2007
Ubicación: Los Angeles, Chile
Mensajes: 28
Antigüedad: 17 años, 3 meses
Puntos: 2
Respuesta: Conexión

puede que las comillas simples del metodo post interfieran con la consulta

Código PHP:
mysql_query("INSERT INTO noticias (titulo,contenido) VALUES ('{$_POST['titulo']}','{$_POST['contenido']}')",$link); 
prueba asi
Código PHP:
mysql_query("INSERT INTO noticias (titulo,contenido) VALUES ('".$_POST['titulo']."','".$_POST['contenido']."')",$link); 
o asi

Código PHP:
$titulo $_POST['titulo'];
$contenido $_POST['contenido'];
mysql_query("INSERT INTO noticias (titulo,contenido) VALUES ('$titulo','$contenido')",$link); 
  #6 (permalink)  
Antiguo 08/01/2010, 20:44
Avatar de HHaru  
Fecha de Ingreso: octubre-2007
Mensajes: 36
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: Conexión

Cita:
Iniciado por David Ver Mensaje
Si el servidor no está interpretando el código PHP, no podrás realizar nada. Haz una prueba:
Código PHP:
Ver original
  1. <?php
  2.     echo 'Hola mundo';
  3. ?>
Si no te devuelve solamente la cadena es porque efectivamente no está interpretando.
David estás en lo cierto, no devuelve nada y lo copié en la carpeta htdocs. El apache y el mysql están activos. ¿Será que re instalo el Xampp?. O modifico algún archivo.

Alex en lo que logre hacer que muestre el código que me indica David probaré lo que me sugieres.

Gracias.
  #7 (permalink)  
Antiguo 08/01/2010, 20:46
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Conexión

Con XAMPP debería funcionar sin necesitar cambiar la configuración, ¿estás guardando el archivo con extensión .php? ¿Estás accediendo al archivo usando http://localhost/archivo.php?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #8 (permalink)  
Antiguo 08/01/2010, 21:25
Avatar de HHaru  
Fecha de Ingreso: octubre-2007
Mensajes: 36
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: Conexión

Cita:
Iniciado por David Ver Mensaje
Con XAMPP debería funcionar sin necesitar cambiar la configuración, ¿estás guardando el archivo con extensión .php? ¿Estás accediendo al archivo usando http://localhost/archivo.php?
El archivo tiene la extensión .php y sí lo llamo desde la http://localhost/htdocs/archivo.php

Estaba revisando php.ini a ver si hay que dar algún permiso especial.
  #9 (permalink)  
Antiguo 08/01/2010, 23:49
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Conexión

Cita:
Iniciado por HHaru Ver Mensaje
El archivo tiene la extensión .php y sí lo llamo desde la http://localhost/htdocs/archivo.php

Estaba revisando php.ini a ver si hay que dar algún permiso especial.
estas accediendo al archivo en una carpeta llamada htdocs ???

por lo general esa ruta no la debes de poner para explorar localhost

intenta abrir la raíz de tu servidor, osea http://localhost/

¿que resulta??
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #10 (permalink)  
Antiguo 09/01/2010, 07:34
Avatar de HHaru  
Fecha de Ingreso: octubre-2007
Mensajes: 36
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: Conexión

Cita:
Iniciado por pateketrueke Ver Mensaje
estas accediendo al archivo en una carpeta llamada htdocs ???

por lo general esa ruta no la debes de poner para explorar localhost

intenta abrir la raíz de tu servidor, osea [url]http://localhost/[/url]

¿que resulta??
Pues trae el menú de Xampp, pruedo entrar a phpmydmin. El archivo lo tengo en esa carpeta por probar pero no importa de donde lo llame siempre me tira la hoja en blanco. Leí un comentario sobre alguien que tuvo un problema parecido pero y lo solventó modificando algunos datos en el php.ini pero no dice exactamentes cuales, estoy buscando.
  #11 (permalink)  
Antiguo 09/01/2010, 08:47
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Conexión

es que no tiene sentido lo que dices... XAMPP viene preparado para funcionar, solo instalas y bingo!!

hay algo que estas haciendo mal de seguro... porque si se ve el panel de administración de XAMPP es obvio que el PHP si se está interpretando...

PDTA: ya has intentado hacer el script de "Hola mundo"??

como nota adicional, es lógico que guardes tus scripts en la carpeta de htdocs que proporciona XAMPP, pero no necesitas anteponer dicha ruta en la URL.... porque dicha ruta es la raíz de tus documentos, por ende, intenta accesar al script desde la raíz

http://localhost/script.php
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #12 (permalink)  
Antiguo 09/01/2010, 14:13
Avatar de HHaru  
Fecha de Ingreso: octubre-2007
Mensajes: 36
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: Conexión

Ok.. Probé con esto:

Código PHP:
<?php
    
echo 'Hola mundo';
?>
Lo copié en htdocs. Re instalé el xampp y ahora continua abriendo el localhost sin problemas y phpmyadmin. Pero cuando intento abrir el archivo que contiene el código me muestra el siguiente error.

Cita:
Object not found!

The requested URL was not found on this server. If you entered the URL manually please check your spelling and try again.

If you think this is a server error, please contact the webmaster.
Error 404
localhost
09/01/2010 04:10:38 p.m.
Apache/2.2.12 (Win32) DAV/2 mod_ssl/2.2.12 OpenSSL/0.9.8k mod_autoindex_color PHP/5.3.0 mod_perl/2.0.4 Perl/v5.10.0
Estoy buscando sobre el error.
  #13 (permalink)  
Antiguo 09/01/2010, 14:15
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Conexión

el error es que no existe el archivo que intentas cargar...

que nombre tiene?? ¿como lo has cargado??
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #14 (permalink)  
Antiguo 09/01/2010, 14:36
Avatar de HHaru  
Fecha de Ingreso: octubre-2007
Mensajes: 36
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: Conexión

Cita:
Iniciado por pateketrueke Ver Mensaje
el error es que no existe el archivo que intentas cargar...

que nombre tiene?? ¿como lo has cargado??
Si tengo claro que no encuentra el archivo. Pero estoy buscando si alguien le sucedió algo parecido.

Escribo localhost en el navegador. El me trae la siguiente dirección: http://localhost/xampp/ y seguido de eso escribo el nombre del .php.

Saludos, muy amable y gracias por responder.
  #15 (permalink)  
Antiguo 09/01/2010, 14:45
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Conexión

si el archivo lo colocas en la raiz de tus documentos, debes evitar anteponer xampp/

intenta asi: http://localhost/nombre_de_tu_script.php
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #16 (permalink)  
Antiguo 09/01/2010, 15:05
Avatar de HHaru  
Fecha de Ingreso: octubre-2007
Mensajes: 36
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: Conexión

Cita:
Iniciado por pateketrueke Ver Mensaje
si el archivo lo colocas en la raiz de tus documentos, debes evitar anteponer xampp/

intenta asi: [url]http://localhost/nombre_de_tu_script.php[/url]
Ya lo probé y arroja el mismo error.
  #17 (permalink)  
Antiguo 09/01/2010, 15:18
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Conexión

bien, vamos a hacer lo siguiente:

- coloca la ruta completa del archivo en tu PC
- coloca la URL tal cual la estas cargando
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #18 (permalink)  
Antiguo 09/01/2010, 15:28
Avatar de HHaru  
Fecha de Ingreso: octubre-2007
Mensajes: 36
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: Conexión

Ok. Probé nuevamente desinstalando el Xampp, borrando los archivos que deja, reinicié, instalé y ya funciona. Muchísimas gracias pateketrueke... Puedo ver sin problemas el resultado del pequeño código.

Con respecto al código que os comenté en un principio tengo en un .php el formulario que llama al insertar_datos.php. Y me da un errror en la línea número dos.

Parse error: syntax error, unexpected '<' in C:\xampp\htdocs\proyecto\001.php on line 2

Wow, cuando no es una cosa es la otra. Con el navicat puedo entrar sin problemas para administrar la pequeña base de datos que cree para probar.
  #19 (permalink)  
Antiguo 09/01/2010, 15:30
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Conexión

bueno, pues coloca las primeras 5 lineas de dicho archivo... ;)
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #20 (permalink)  
Antiguo 09/01/2010, 16:06
Avatar de HHaru  
Fecha de Ingreso: octubre-2007
Mensajes: 36
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: Conexión

Cita:
Iniciado por pateketrueke Ver Mensaje
bueno, pues coloca las primeras 5 lineas de dicho archivo... ;)
Ah es que los había colocado en el primer post, acá los dejo.

Cita:
Iniciado por HHaru Ver Mensaje

Código PHP:
<?
$dbhost
="localhost";  
$dbusuario="root"// usuario
$dbpassword="prueba"// contraseña de acceso 
$db="noticias";        // Seleccionar la base de datos
$conexion mysql_connect($dbhost$dbusuario$dbpassword);
mysql_select_db($db$conexion);
?>
Este código lo tengo en un .php, que es el formulario que pide la información.

Código PHP:
<form name="webtaller" action="insertar_datos.php" method="post">
T&#237;tulo: <input type="text" name="titulo"><br>
Contenido: <textarea name="contenido"></textarea><br>
<
input type="enviar" value="Enviar">
</
form
Y este es el código en el que inserto la información a la base de datos.

Código PHP:
<?php
    
// Verificar campos vacios
    
if(isset($_POST['titulo']) && !empty($_POST['titulo']) &&
    isset(
$_POST['contenido']) && !empty($_POST['contenido'])) {
        
// Correcto
        
$link mysql_connect("localhost","root","prueba");
        
mysql_select_db("webdb",$link);
        
// Inserción a la base de datos
        
mysql_query("INSERT INTO noticias (titulo,contenido)
        VALUES ('{$_POST['titulo']}','{$_POST['contenido']}')"
,$link);
        
// Correcto
        
$my_error mysql_error($link);
        if(!empty(
$my_error) {
            echo 
"Ha habido un error al insertar los valores. $my_error"
        } else {
             echo 
"Los datos han sido introducidos satisfactoriamente";
         }
     } else {
         echo 
"Error, no ha introducido todos los datos";
    }

?>
Ok. Le hice algunos cambios al primer código para corroborar que establezca conexión con la base de datos. No me arroja ningún error, por lo que asumo que está bien. Así que le agregaré una condición para que muestre un mensaje.

El código del formulario aún me da aviso de error en al segunda línea, aunque le edité el código del acento, por si era eso.
  #21 (permalink)  
Antiguo 09/01/2010, 16:21
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Conexión

ahora veo... es extraño el error que comentas con el script del formulario...

si lo puedes colocar el script 001.php completo??
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #22 (permalink)  
Antiguo 09/01/2010, 16:31
Avatar de HHaru  
Fecha de Ingreso: octubre-2007
Mensajes: 36
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: Conexión

Cita:
Iniciado por pateketrueke Ver Mensaje
ahora veo... es extraño el error que comentas con el script del formulario...
si lo puedes colocar el script 001.php completo??
Código PHP:
<?php
<form name="webtaller" action="insertar_datos.php" method="post">
Titulo: <input type="text" name="titulo"><br>
Contenido: <textarea name="contenido"></textarea><br>
<
input type="enviar" value="Enviar">
</
form>  
?>
Es todo, es bastante simple. Y el insertar_datos.php lo llamo para guardar en la base de datos. El error no lo da en la primera línea así que no tiene inconveniente con usar el archivo insertar_datos.php.
  #23 (permalink)  
Antiguo 09/01/2010, 18:55
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Conexión

ahora si se entiende tu error.... (:

Código PHP:
<?php
// aqui solo debe ir codigo PHP no HTML
echo 'a veces es necesario imprimir <strong>HTML</strong>';
?><span style="color:red!important">pero puedes hacerlo de una u otra forma</span>
así de sencillo!!

mientras aprendas dicha diferencia desde ahora no tendrás conflictos en un futuro...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #24 (permalink)  
Antiguo 09/01/2010, 21:43
Avatar de HHaru  
Fecha de Ingreso: octubre-2007
Mensajes: 36
Antigüedad: 16 años, 6 meses
Puntos: 0
Pregunta Respuesta: Conexión

Cita:
Iniciado por pateketrueke Ver Mensaje
ahora si se entiende tu error.... (:

Código PHP:
<?php
// aqui solo debe ir codigo PHP no HTML
echo 'a veces es necesario imprimir <strong>HTML</strong>';
?><span style="color:red!important">pero puedes hacerlo de una u otra forma</span>
así de sencillo!!

mientras aprendas dicha diferencia desde ahora no tendrás conflictos en un futuro...
Wow, estás en lo cierto. Muchas gracias. ¡Que pena!

Ahora lo coloqué así:

Código PHP:
<html>
<
form name="webtaller" action="insertar_datos.php" method="post">
Titulo: <input type="text" name="titulo"><br>
Contenido: <textarea name="contenido"></textarea><br>
<
input type="button" value="Enviar">
</
form>  
</
html
Y le modifiqué un error al código del insertar_datos.php, todo compila :). Que bien, gracias nuevamente.

Pero no funciona como creí, obviamente el formulario llama a el código para insertar datos, pero no los inserta. ¿Qué instrucción podría darle al botó "enviar" para que realmente los inserte en la base de datos?.

¿Podría poner todo el código junto?.

Saludos, gracias de antemano.

Etiquetas: Ninguno
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 08:15.