Ver la versión completa : [Ayuda] Conectarse a BD MySQL con PHP (ubuntu 10.4)
PiZZaCaT
17/06/2010, 15:38
Hola, a ver si alguien me puede echar una mano. Resulta que tengo que realizar un proyecto en php + mysql de las siguientes características: crear una base de datos por ejemplo de películas, con una tabla y dentro varias filas, 3 en mi caso de nombre 'titulo', 'año' y 'género' y después conectarme a ella a través de un html que me permita tanto consultar dicha base, como introducir o eliminar registros. He montado una máquina virtual con ubuntu 10.4, instalado los paquetes necesarios para el servidor LAMP, además del paquete mysql-gui-common-tools que me proporciona el Query Browser y el Admin así como el webmin. He creado dicha base de datos, e introducido varios registros sin problemas, y he añadido al usuario 'usuario' con su correspondiente contraseña y los permisos pertinentes que será a través del cual me conectaré a la BD. Hasta aquí todo bien. El problema viene cuando a la hora de probar el sitio web, ubicado en /var/www y a través de la url http://127.0.0.1/peliculas.html al pulsar el botón dentro del formulario me manda a una nueva pantalla totalmente en blanco, sin decirme si se ha conectado o no con la BD, a parte del hecho de que ninguna consulta me funciona, y no obtengo ningún tipo de error. A continuación os dejo el código dentro del archivo conexion.php al que llamo a través del formulario con action="conexion.php"
<?php
$host = "localhost"
$user = "usuario"
$password = "abc123.."
mysql_connect($host, $user, $password)
or exit("No se pudo conectar con el servidor");
?>
¿Alguna sugerencia? A este paso me veo repitiendo curso por una mierda de ejercicio, dado que si no lo presento mañana antes del exámen no me dejará hacerlo. Un saludo.
Ñuño Martínez
17/06/2010, 16:03
Si no devuelve nada es porque ha conectado. ¿No ves que sólo le dices que escriba algo si no ha conectado?
Mejor sería:
if (!mysql_connect (...))
die ('No se pudo conectar con el servidor');
die ('Se conectó con el servidor');
Aquí sí escribiría algo si se conecta.
Hola, a ver si alguien me puede echar una mano. Resulta que tengo que realizar un proyecto en php + mysql de las siguientes características: crear una base de datos por ejemplo de películas, con una tabla y dentro varias filas, 3 en mi caso de nombre 'titulo', 'año' y 'género' y después conectarme a ella a través de un html que me permita tanto consultar dicha base, como introducir o eliminar registros. He montado una máquina virtual con ubuntu 10.4, instalado los paquetes necesarios para el servidor LAMP, además del paquete mysql-gui-common-tools que me proporciona el Query Browser y el Admin así como el webmin. He creado dicha base de datos, e introducido varios registros sin problemas, y he añadido al usuario 'usuario' con su correspondiente contraseña y los permisos pertinentes que será a través del cual me conectaré a la BD. Hasta aquí todo bien. El problema viene cuando a la hora de probar el sitio web, ubicado en /var/www y a través de la url http://127.0.0.1/peliculas.html al pulsar el botón dentro del formulario me manda a una nueva pantalla totalmente en blanco, sin decirme si se ha conectado o no con la BD, a parte del hecho de que ninguna consulta me funciona, y no obtengo ningún tipo de error. A continuación os dejo el código dentro del archivo conexion.php al que llamo a través del formulario con action="conexion.php"
¿Alguna sugerencia? A este paso me veo repitiendo curso por una mierda de ejercicio, dado que si no lo presento mañana antes del exámen no me dejará hacerlo. Un saludo.
No veo porque tienes que usar Linux para esto, pero bueno. Aun asi, ami el XAMPP me va mucho mejor (tanto Linux como Windows).
Como te han dicho, cuando realices la conexion muestra algo por pantalla usando un 'echo' pej. En el ejemplo que has puesto tu no muestras nada si se conecta correctamente.
Yo tambien capturaria el identificador de conexion para despues cerrar la conexion:
$conexion = mysql_connect(...) or die ("Imposible realizar conexion:".mysql_error());
echo "Se ha conectado correctamente <br />";
...
mysql_close($conexion); //Cierro la conexion cuando ya no vaya a usarla
Pon tambien el código de la consulta que dices que te falla.
Un saludo
:brindis:
PiZZaCaT
17/06/2010, 16:31
Gracias a ambos. Estoy usando Ubuntu porque antes he probado con EasyPHP y Xamppy 3/4 de lo mismo, a parte de que me resulta infinitamente más comodo crear y modificar tablas con el webmin o el propio mysql query browser que con el php myadmin. Sé que solamente debería mostrar un mensaje por pantalla en caso de que no se pudiese conectar, pero he probado con un echo "Conexion realizada" y nada, además de que tal y como dije antes ninguna consulta posterior funciona.
Ñuño Martínez
17/06/2010, 16:35
Ahora que me fijo:
$host = "localhost"
$user = "usuario"
$password = "abc123.."
¿Te has olvidado de los puntos y comas del final?
PiZZaCaT
17/06/2010, 16:47
Ahora que me fijo:
$host = "localhost"
$user = "usuario"
$password = "abc123.."
¿Te has olvidado de los puntos y comas del final?
Ahora al menos me muestra el echo :brindis: Voy a realizar algunas consultas para saber si ahora por fin se ha conectado.
Ahora que me fijo:
$host = "localhost"
$user = "usuario"
$password = "abc123.."
¿Te has olvidado de los puntos y comas del final?
Con la configuración por defecto que traen estos paquetes (LAMP,WAMP...) deberia saltarle el error de "sintax error" o "missing semicolon".
Aunque todo es posible. A ver que nos comenta.
< - >
NINJA EDIT:
:brindis:
¿¿Era ese el problema??? ¿Y no te da ha dado ningun tipo de error? :confused:
PiZZaCaT
17/06/2010, 17:31
Con la configuración por defecto que traen estos paquetes (LAMP,WAMP...) deberia saltarle el error de "sintax error" o "missing semicolon".
Aunque todo es posible. A ver que nos comenta.
< - >
NINJA EDIT:
¿¿Era ese el problema??? ¿Y no te da ha dado ningun tipo de error? :confused:
Precisamente ese es mi razonamiento, pero no, ni me dice fu ni me dice fa. Falsa alarma, sigue sin funcionar. Acabo de añadir lo siguiente:
<?php
$host = "localhost";
$user = "usuario";
$password = "abc123..";
$query = "SELECT titulo, año, genero FROM peliculas";
$result = mysql_db_query("ejemplo", $query);
/*Conectando al servidor local de MySQL*/
@ mysql_connect($host, $user, $password)
or exit("No se ha podido conectar con el servidor")
?>
<html>
<head>
</head>
<body>
<table border="1">
<tr>
<td>Titulo</td>
<td>Año</td>
<td>Autor</td>
</tr>
<?php while($fila = mysql_fetch_object($result)) :?>
<tr>
<td><?=$fila->titulo?></td>
<td><?=$fila->año?></td>
<td><?=$fila->genero?></td>
</tr>
<?php endwhile; ?>
</table>
</body>
</html>
Se supone que debería mostrarme el resultado de la consulta en un tabla de 3 campos, pues bien, aparecen los 3 campos, pero de los datos ni rastro. La BD se llama ejemplo y la tabla peliculas.
PharaOnyx
17/06/2010, 17:41
Quita la @ del mysql_connect
Saludos, Alex
edito: por cierto, antes de hacer la consulta te tienes que conectar, no al revés (que es lo que estás haciendo)
$enlaceBD=mysql_connect($host, $user, $password);
mysql_db_query('ejemplo','$query,'$enlaceBD);
Y no uses mysql_db_query, es un método desaconsejado
Prueba asi:
<?php
$host = "localhost";
$user = "usuario";
$password = "abc123..";
$query = "SELECT titulo, año, genero FROM peliculas";
//Conecto al servidor
$conexion = mysql_connect($host, $user, $password) or
die("No se ha podido conectar con el servidor:".mysql_error());
//selecciono la base de datos
mysql_select_db("ejemplo");
//Realizo la consulta
$result = mysql_query($query) or
die("Error realizando consulta:".mysql_error());
<html>
<head>
</head>
<body>
<table border="1">
<tr>
<td>Titulo</td>
<td>Año</td>
<td>Autor</td>
</tr>
<?php while($fila = mysql_fetch_array($result)){?>
<tr>
<td><?php echo $fila['titulo'];?></td>
<td><?php echo $fila['ano'];?></td>
<td><?php echo $fila['genero'];?></td>
</tr>
<?php }//cierro while ?>
</table>
</body>
</html>
<?php
mysql_close($conexion); //libero la conexion
?>
Por cierto, yo no te aconsejo usar la letra Ñ en temas de programación web.
EDITO: te pongo unos comentarios por si te pierdes...
PiZZaCaT
17/06/2010, 17:52
Prueba asi:
<?php
$host = "localhost";
$user = "usuario";
$password = "abc123..";
$query = "SELECT titulo, año, genero FROM peliculas";
//Conecto al servidor
$conexion = mysql_connect($host, $user, $password) or
die("No se ha podido conectar con el servidor:".mysql_error());
//selecciono la base de datos
mysql_select_db("ejemplo")
//Realizo la consulta
$result = mysql_query($query) or
die("Error realizando consulta:".mysql_error());
<html>
<head>
</head>
<body>
<table border="1">
<tr>
<td>Titulo</td>
<td>Año</td>
<td>Autor</td>
</tr>
<?php while($fila = mysql_fetch_array($result)){?>
<tr>
<td><?php echo $fila['titulo'];></td>
<td><?php echo $fila['ano'];></td>
<td><?php echo $fila['genero'];></td>
</tr>
<?php }//cierro while ?>
</table>
</body>
</html>
<?php
mysql_close($conexion); //libero la conexion
?>
Por cierto, yo no te aconsejo usar la letra Ñ en temas de programación web.
EDITO: te pongo unos comentarios por si te pierdes...
Acabo de probarlo y... nada, incluso desaparece la tabla :( Esto tiene que ser mal karma, sinó no me lo explico. Ya me lo advirtieron, pero en este caso...
PharaOnyx
17/06/2010, 17:56
Acabo de probarlo y... nada, incluso desaparece la tabla :( Esto tiene que ser mal karma, sinó no me lo explico. Ya me lo advirtieron, pero en este caso...
En lo que ha escrito Karkayu falta un punto y coma en el mysql_select_db
Saludos, Alex
edito: y el mysql_query ponlo como mysql_query($query,$conexion)
En lo que ha escrito Karkayu falta un punto y coma en el mysql_select_db
Saludos, Alex
edito: y el mysql_query ponlo como mysql_query($query,$conexion)
Solucionado!!
El que no te avise de los errores de sintaxis es un coñ.azo. Prueba a llamar a la funcion error_reporting en la primera linea del script:
error_reporting(E_ALL); (aunque lo suyo seria mirar en el PHP.INI a ver que valor tienes por defecto)
Ñuño Martínez
17/06/2010, 18:08
Ya me lo advirtieron, pero en este caso...
La letra "ñ" es una abreviatura tipográfica que corresponde a la doble ene "nn". Yo suelo poner dobles enes cuando uso nombres con eñe y molan: Anno, Ninno, Pequenno, ...
PiZZaCaT
17/06/2010, 18:09
He cambiado lo del mysql_query y también añadido el ; y nada, la tabla sigue en paradero desconocido. A parte, ¿no se debería poner ?> antes del </html>?
PharaOnyx
17/06/2010, 18:10
He cambiado lo del mysql_query y también añadido el ; y nada, la tabla sigue en paradero desconocido.
A ver. ¿Cómo estás creando la tabla en el servidor MySQL?. Suena a chuminada pero... ¿tienes arrancado el mysqld?
Saludos, Alex
edito:
<td><?php echo $fila['titulo'];></td>
<td><?php echo $fila['ano'];></td>
<td><?php echo $fila['genero'];></td>
faltan los ?> de cierre de PHP. Cámbialos
<td><?php echo $fila['titulo'];></td>
<td><?php echo $fila['ano'];></td>
<td><?php echo $fila['genero'];></td>
faltan los ?> de cierre de PHP. Cámbialos
Solucionado again!!!
A ver. ¿Cómo estás creando la tabla en el servidor MySQL?. Suena a chuminada pero... ¿tienes arrancado el mysqld?
Saludos, Alex
En ese caso tambien deberia saltar el error de que no ha sido posible realizar la conexion.
PiZZaCaT
17/06/2010, 18:21
Os dejo un par de capturas de pantalla:
PharaOnyx
17/06/2010, 18:22
En ese caso tambien deberia saltar el error de que no ha sido posible realizar la conexion.
Claro, si tuviera los warnings activos y/o no tuviera la @ delante del mysql_connect x'D
Creo que lo primero que deberías hacer es activar los warnings y reiniciar el servidor, a ver si nos enteramos en qué falla, porque hasta el momento sólo estamos dando palos de ciego
Saludos, Alex
edito: ¿desde ese frontend la consulta te funciona tal cual?. Lo mismo le vendrían bien un par de `` alrededor de 'año', tal que así: `año`
Vamos a empezar por lo mas simple ¿Te funciona bien el PHP? :D
Haz el tipico script de 'Hola mundo':
echo "Hola Mundo";
y prueba a ver si sale
He cambiado lo del mysql_query y también añadido el ; y nada, la tabla sigue en paradero desconocido. A parte, ¿no se debería poner ?> antes del </html>?
Creo que si, ya que una cosa son las sentencias php y otras las html, no?
Lo digo desde la ignorancia, que yo lo mas parecido que he tocado al php es jsp...
PiZZaCaT
17/06/2010, 18:32
Vamos a empezar por lo mas simple ¿Te funciona bien el PHP? :D
Haz el tipico script de 'Hola mundo':
echo "Hola Mundo";
y prueba a ver si sale
Del PHP sé fijo que no es, de hecho cuando no está funcionando el servidor te hace lo tipíco de abrirte un diálogo de descarga del archivo php. De lo que no estoy yo tan seguro es del MySQL, aunque en teoría del modo en que los instalé no debería necesitar tocar nada, y en el webmin me sale el botón de parar el servidor, lo que al menos en mi lógica es que ya esta iniciado.
Pon lo del error_reporting(E_ALL) al principio para activar los errores y pruebalo con mi codigo.
Suponiendo que tengas bien configurado todo el entorno LAMP/WAMP y que el usuario de BB.DD. tenga acceso local a MySQL y al esquema de BB.DD. en concreto al que quieres acceder... podrías poner una captura de la salida completa de:
<?php phpinfo(INFO_MODULES); ?>
Puedes hacerlo con las extensiones Screengrab o FireShot para Firefox, vamos, es para ver si tienes activo el soporte de la extensión 'mysql', así que si lo prefieres compruébalo tu mismo y nos dices.
PiZZaCaT
17/06/2010, 20:43
Suponiendo que tengas bien configurado todo el entorno LAMP/WAMP y que el usuario de BB.DD. tenga acceso local a MySQL y al esquema de BB.DD. en concreto al que quieres acceder... podrías poner una captura de la salida completa de:
<?php phpinfo(INFO_MODULES); ?>
Puedes hacerlo con las extensiones Screengrab o FireShot para Firefox, vamos, es para ver si tienes activo el soporte de la extensión 'mysql', así que si lo prefieres compruébalo tu mismo y nos dices.
Acabo de hacerlo, adjunto html con toda la información obtenida, que creo que es más cómodo que pegar 20 pantallazos :D
PharaOnyx
17/06/2010, 21:10
Resumo: Client API version 5.1.41
¿Puedes entrar al servidor MySQL escribiendo 'mysql' en la consola y hacer la consulta que tienes puesta?
Saludos, Alex
PiZZaCaT
18/06/2010, 00:01
Bueno, no me pregunteis cómo pero de repente acaba de funcionar, ahora 'solo' me queda poder borrar y añadir cosas a través de un vínculo en cada fila, ponerlo más o menos bonito y hacer un informe detallado y que llegue a clase, enchufe el disco duro con la máquina virtual y no se pete, lo cual es como una lotería, en fin, muchas gracias a todos por la ayuda.
PharaOnyx
18/06/2010, 00:16
Pues nada, suerte. Si te atascas, pregunta :)
Saludos, Alex
si kieres te paso varios scrips para conects de msql las variables prefiero meterlas en un script y llamarlo desde php con includes.... manías de la programación????
PharaOnyx
18/06/2010, 01:34
¿Puedes poner el código que usas para el formulario?. Imagino que será algo estilo
<form action="loquesea.php" method="get">
<input type="text" />
</form>
Saludos, Alex
PiZZaCaT
18/06/2010, 11:26
¿Puedes poner el código que usas para el formulario?. Imagino que será algo estilo
<form action="loquesea.php" method="get">
<input type="text" />
</form>
Saludos, Alex
<html>
<head>
<title></title>
</head>
<body>
<form action="consultar.php">
<fieldset>
<legend>Consultar</legend>
<input type="submit" value="Consultar">
</fieldset>
</form>
<br>
<form method="post" action="insertar.php" >
<fieldset>
<legend>Insertar</legend>
Titulo <input type="text" name="titulo" maxlength="25" id="titulo"><br><br>
Ano <input type="text" name="ano" maxlength="4" id="ano"><br><br>
Genero <input type="text" name="genero" maxlength="10" id="genero"><br><br>
<br>
<input type="submit" value="Insertar">
<input type="reset" value="Borrar">
</fieldset>
</form>
</body>
</html>
Este me falla justo aquí:
<?php
$titulo = $_POST["titulo"];
$ano = $_POST["ano"];
$genero = $_POST["genero"];
//Conexion con la base
mysql_connect("localhost", "usuario", "abc123..")
or die("No se ha podido realizar la conexion con el servidor");
//selección de la base de datos con la que vamos a trabajar
mysql_select_db("ejemplo")
or die("No se ha podido seleccionar la base de datos");
//Ejecucion de la sentencia SQL
mysql_query("INSERT INTO peliculas (titulo, ano, genero) VALUES('$titulo', $ano, '$genero')
or die("No se ha podido realizar la consulta SQL");
echo "Se han insertado los siguientes datos: $titulo, $ano, $genero";
//Fin de la conexion con la base
mysql_close("localhost", "usuario", "abc123..");
?>
Creo que no tengo ningún error de sintaxis, he revisado de nuevo la base de datos por si era tema de los permisos pero todo parece estar bien, el caso es que no me introduce los valores a pesar de que los reconoce, ya que he probado el tipico echo "Has introducido: $titulo, $ano, $genero" y efectivamente me imprime por pantalla lo que hay en los input, y para variar no me da ningún tipo de error.
PharaOnyx
18/06/2010, 11:29
La expresión no está balanceada. Prueba así:
mysql_query("INSERT INTO peliculas (titulo, ano, genero) VALUES ('$titulo', $ano, '$genero')")
or die("No se ha podido realizar la consulta SQL");
Saludos, Alex
La expresión no está balanceada. Prueba así:
mysql_query("INSERT INTO peliculas (titulo, ano, genero) VALUES ('$titulo', $ano, '$genero')")
or die("No se ha podido realizar la consulta SQL");
Saludos, Alex
Una pregunta, existe algun editor de texto a modo de ide para todo estos temas web?
Que te avise de que tienes mal cerradas sentencias, que las etiquetas no esten en el orden correcto de apertura y cierre, etc?
Saludos y gracias
PharaOnyx
18/06/2010, 11:36
Una pregunta, existe algun editor de texto a modo de ide para todo estos temas web?
Que te avise de que tienes mal cerradas sentencias, que las etiquetas no esten en el orden correcto de apertura y cierre, etc?
Saludos y gracias
Cualquier IDE genérico con los plugins adecuados te hace todo eso (y más). Lo más corriente es poner que cuando abras una comilla (por ejemplo) él automáticamente te ponga la de cierre, así escribes entre ellas y no se te olvida ponerla. Yo personalmente uso Eclipse para todo lo que programo -casi una docena de lenguajes diferentes- y lo primero que hago es configurarlo para quitarle ese comportamiento :lol:
No te sé decir editores más sencillos, aunque cualquiera un poco avanzado debería valerte (UltraEdit, PSPad, EditPad y demás familia)
Saludos, Alex
PiZZaCaT
18/06/2010, 11:38
La expresión no está balanceada. Prueba así:
mysql_query("INSERT INTO peliculas (titulo, ano, genero) VALUES ('$titulo', $ano, '$genero')")
or die("No se ha podido realizar la consulta SQL");
Saludos, Alex
Gracias, ahora ya funciona :brindis:
PharaOnyx
18/06/2010, 11:41
Gracias, ahora ya funciona :brindis:
No hay de qué. Uno se gana la vida con esto y está acostumbrado a ciertas cosas :lol:
Saludos, Alex
^MiSaTo^
18/06/2010, 11:50
Una pregunta, existe algun editor de texto a modo de ide para todo estos temas web?
Que te avise de que tienes mal cerradas sentencias, que las etiquetas no esten en el orden correcto de apertura y cierre, etc?
Saludos y gracias
Para Mac yo uso Coda que me parece lo mejorcito en ese tema. Sino tienes Aptana Studio, a mi no me gusta porque está basado en eclipse y para hacer algo en PHP hasta que arranca y demás.... Eso sí, es multiplataforma.
Ojalá saliese el coda en más plataformas porque es ligerito y muy completo: integra SVN, acceso SSH, FTP, una especie de libros de ayuda para PHP y demás, lo de la sintaxis que comentas, etc. En serio que para web, lo mejor de lo mejor.
PiZZaCaT
18/06/2010, 11:57
Una pregunta, existe algun editor de texto a modo de ide para todo estos temas web?
Saludos y gracias
Prueba con el bluefish (http://bluefish.openoffice.nl/download.html), te cierra automáticamente las etiquetas y además te colorea todo el código con colores distintos según el tipo de etiqueta. Es lo más parecido que se me ocurre.
< - >
Ok. he añadido parte del código de consultar.php y ahora a parte de mostrarte los valores que has introducido también te muestra la tabla actualizada con los nuevos valores:
<?php
$titulo = $_POST["titulo"];
$ano = $_POST["ano"];
$genero = $_POST["genero"];
//Conexion con la base
mysql_connect("localhost", "usuario", "abc123..")
or die("No se ha podido realizar la conexion con el servidor");
//selección de la base de datos con la que vamos a trabajar
mysql_select_db("ejemplo")
or die("No se ha podido seleccionar la base de datos");
//Ejecucion de la sentencia SQL
mysql_query("INSERT INTO peliculas (titulo, ano, genero) VALUES ('$titulo', $ano, '$genero')")
or die("No se ha podido realizar la consulta SQL");
echo "Se han insertado los siguientes datos: $titulo, $ano, $genero";
$query = "SELECT titulo, ano, genero FROM peliculas";
$result = mysql_db_query("ejemplo", $query);
//Fin de la conexion con la base
mysql_close("localhost", "usuario", "abc123..");
?>
<html>
<head>
<title>Informe Peliculas</title>
</head>
<body>
<h3>Peliculas</h3>
<table border="1">
<tr>
<td>Titulo</td>
<td>Ano</td>
<td>Genero</td>
</tr>
<?php while($fila = mysql_fetch_object($result)) :?>
<tr>
<td><?=$fila->titulo?></td>
<td><?=$fila->ano?></td>
<td><?=$fila->genero?></td>
</tr>
<?php endwhile; ?>
</table>
</body>
</html>
Ahora lo único que me queda es que aparezca un vínculo al lado de cada fila tanto para borrar como para actualizar los datos mediante sendos php. Se supone que tengo que usar <a href=borrar.php?id= > ¿alguna idea?
^MiSaTo^
18/06/2010, 12:01
Prueba con el bluefish (http://bluefish.openoffice.nl/download.html), te cierra automáticamente las etiquetas y además te colorea todo el código con colores distintos según el tipo de etiqueta. Es lo más parecido que se me ocurre.
< - >
Ok. he añadido parte del código de consultar.php y ahora a parte de mostrarte los valores que has introducido también te muestra la tabla actualizada con los nuevos valores:
Ahora lo único que me queda es que aparezca un vínculo al lado de cada fila tanto para borrar como para actualizar los datos mediante sendos php. Se supone que tengo que usar <a href=borrar.php?id= > ¿alguna idea?
Métetodo en un form así por ejemplo:
<form action="borrar.php" method="post">
<?php while($fila = mysql_fetch_object($result)) :?>
<tr>
<td><?=$fila->titulo?></td>
<td><?=$fila->ano?></td>
<td><?=$fila->genero?></td>
<td><input type="submit" value="borrar"><input type="hidden" name="id" value="idquesea"></td>
</tr>
<?php endwhile; ?>
</form>
En el hidden metes la id que quieras borrar ;)
Lo del autocierre de etiquetas no me va mucho, pero si que me diga si ve cosas raras, como anidacion de etiquetas sin cerrar, etc.
Tendre que ver algo ligerito, que para el pfc, si me da tiempo, me molaria crear un panel web, y no quiero complicarme con el ide.
PharaOnyx
18/06/2010, 12:04
Lo del autocierre de etiquetas no me va mucho, pero si que me diga si ve cosas raras, como anidacion de etiquetas sin cerrar, etc.
Tendre que ver algo ligerito, que para el pfc, si me da tiempo, me molaria crear un panel web, y no quiero complicarme con el ide.
Eclipse + PHPeclipse = flawless victory
Saludos, Alex
^MiSaTo^
18/06/2010, 12:07
Eclipse + PHPeclipse = flawless victory
Saludos, Alex
Eso es como el Aptana no?
PharaOnyx
18/06/2010, 12:09
Eso es como el Aptana no?
No, Aptana está MUCHO más recargado
Saludos, Alex
^MiSaTo^
18/06/2010, 12:10
No, Aptana está MUCHO más recargado
Saludos, Alex
OK entonces lo pondré en el otro PC porque te juro que ODIO aptana studio xD
PharaOnyx
18/06/2010, 12:14
OK entonces lo pondré en el otro PC porque te juro que ODIO aptana studio xD
Aptana está orientado a hacer una web entera con Eclipse (HTML, CSS, JavaScript y demás lindezas), por eso son 18 millones de plugins embebidos y demás cosas adicionales. Con Eclipse normal tú eliges los plugins que quieras, PHPeclipse es sólo para PHP, al igual que PDT
Saludos, Alex
^MiSaTo^
18/06/2010, 12:16
Aptana está orientado a hacer una web entera con Eclipse (HTML, CSS, JavaScript y demás lindezas), por eso son 18 millones de plugins embebidos y demás cosas adicionales. Con Eclipse normal tú eliges los plugins que quieras, PHPeclipse es sólo para PHP, al igual que PDT
Saludos, Alex
No, si eclipse llevo mucho tiempo usándolo y me gusta. Lo cierto es que sólo lo he usado para Java, y alguna vez para C/C++
nunca probé el plugin de PHP porque para webs uso el coda que es AMOR. XD
PharaOnyx
18/06/2010, 12:24
No, si eclipse llevo mucho tiempo usándolo y me gusta. Lo cierto es que sólo lo he usado para Java, y alguna vez para C/C++
nunca probé el plugin de PHP porque para webs uso el coda que es AMOR. XD
Yo llevo muchos años con Eclipse porque normalmente me meten en fregados con varios lenguajes a la vez (por ejemplo, una web en PHP generando código HTML/CSS/JavaScript con algunos applets de Java y varias docenas de scripts Perl y Python, todo unido a una base de datos MySQL) y me resulta comodísimo cambiar de perspectiva con sólo un click en el sitio oportuno. ¿Que lo mismo te tarda 5 segundos en arrancar?. Pues también, para qué negarlo
Y bueno, además me he podido hacer plugins nuevos para mis cositas. Impagable ^__^
Saludos, Alex
Ojalá saliese el coda en más plataformas porque es ligerito y muy completo: integra SVN, acceso SSH, FTP, una especie de libros de ayuda para PHP y demás, lo de la sintaxis que comentas, etc. En serio que para web, lo mejor de lo mejor.Ya te digo, no tengo un Mac pero un editor tan completo y a la vez tan minimalista como Coda pero multiplataforma sería genial.
Una pregunta, existe algun editor de texto a modo de ide para todo estos temas web?
Que te avise de que tienes mal cerradas sentencias, que las etiquetas no esten en el orden correcto de apertura y cierre, etc?
Saludos y gracias
En Windows, en el curro más que nada, tiro normalmente de Notepad++, bien configurado y con los plugins (http://sourceforge.net/apps/mediawiki/notepad-plus/index.php?title=Plugin_Central) adecuados (FTP, SVN, explorador, comparador, etc) es bastante potente aun siendo muy ligero, además es libre y totalmente gratuito.
Otra opción, aunque algo menos ligera, es NetBeans, en ciertos aspectos lo considero más comodo y completo que Eclipse (aunque estoy dispuesto a evaluar argumentos que puedan hacerme cambiar de opinión ;)), además tiene soporte para PHP de serie y el plugin de SVN no tiene precio, indicandote, con un color de fondo diferente entre otras señales las lineas cambiadas o añadidas a un archivo actual con respecto a la versión que tienes del repositorio, lo que te permite no "perder el hilo" si estás editando tropecientos ficheros a la vez (cosa, en mi caso, bastante normal xD) y tampoco lo considero muy pesado teniendo en cuenta que es un IDE muy completo, además libre, gratuito y multiplataforma.
^MiSaTo^
18/06/2010, 12:26
Yo llevo muchos años con Eclipse porque normalmente me meten en fregados con varios lenguajes a la vez (por ejemplo, una web en PHP generando código HTML/CSS/JavaScript con algunos applets de Java y varias docenas de scripts Perl y Python, todo unido a una base de datos MySQL) y me resulta comodísimo cambiar de perspectiva con sólo un click en el sitio oportuno. ¿Que lo mismo te tarda 5 segundos en arrancar?. Pues también, para qué negarlo
Y bueno, además me he podido hacer plugins nuevos para mis cositas. Impagable ^__^
Saludos, Alex
En eso sí te doy tooooda la razón. Lo de las perspectivas es la leche ^^
A mi eclipse me gusta mucho de verdad que sí. Sobre todo porque esos fregaos tb me los he encontrado yo xD :brindis:
PiZZaCaT
18/06/2010, 12:27
Métetodo en un form así por ejemplo:
<form action="borrar.php" method="post">
<?php while($fila = mysql_fetch_object($result)) :?>
<tr>
<td><?=$fila->titulo?></td>
<td><?=$fila->ano?></td>
<td><?=$fila->genero?></td>
<td><input type="submit" value="borrar"><input type="hidden" name="id" value="idquesea"></td>
</tr>
<?php endwhile; ?>
</form>
En el hidden metes la id que quieras borrar ;)
Acabo de probarlo y me gusta como queda, pero sigo un poco perdido con respecto de decirle 'borra ESTA fila concreta', además por lo que veo solamente hay un input, así que ¿cómo hacer que cada uno borre una cosa distinta?
^MiSaTo^
18/06/2010, 12:29
Ya te digo, no tengo un Mac pero un editor tan completo y a la vez tan minimalista como Coda pero multiplataforma sería genial.
¿Verdad que es una caña de IDE? Yo en serio no se por qué no lo hacen multiplataforma por dios... Para webs para mi es lo más cómodo.
En Windows, en el curro más que nada, tiro normalmente de Notepad++, bien configurado y con los plugins (http://sourceforge.net/apps/mediawiki/notepad-plus/index.php?title=Plugin_Central) adecuados (FTP, SVN, explorador, comparador, etc) es bastante potente aun siendo muy ligero, además es libre y totalmente gratuito.
Otra opción, aunque algo menos ligera, es NetBeans, en ciertos aspectos lo considero más comodo y completo que Eclipse, además tiene soporte para PHP de serie y el plugin de SVN no tiene precio, indicandote, con un color de fondo diferente entre otras señales las lineas cambiadas o añadidas a un archivo actual con respecto a la versión que tienes del repositorio, lo que te permite no "perder el hilo" si estás editando tropecientos ficheros a la vez (cosa, en mi caso, bastante normal xD) y tampoco lo considero muy pesado teniendo en cuenta que es un IDE muy completo, además libre, gratuito y multiplataforma.
A mi netbeans cuando me mandaron el 6, me empezaba a hacer cosas raras como que de repente se cerraba sólo. O cuando mete librerías porque sí... o cosas así. Asíque decidí cambiar a Eclipse, y como la seda hoygan!
< - >
Acabo de probarlo y me gusta como queda, pero sigo un poco perdido con respecto de decirle 'borra ESTA fila concreta', además por lo que veo solamente hay un input, así que ¿cómo hacer que cada uno borre una cosa distinta?
Porque cada fila de tu BBDD debería tener un ID único como PK. Si tu en el value de ese input metes ese ID, luego en el borrar.php lo recuperas y borras esa fila en concreto ;)
PharaOnyx
18/06/2010, 12:33
A mi netbeans cuando me mandaron el 6, me empezaba a hacer cosas raras como que de repente se cerraba sólo. O cuando mete librerías porque sí... o cosas así. Asíque decidí cambiar a Eclipse, y como la seda hoygan
En mi caso, NetBeans lo 'sufrí' cuando me tocó hacer unas aplicaciones para PDA con J2ME, y aquello no había por donde cogerlo. Hacía cosas extrañísimas y funcionaba como y cuando le daba la gana. En fin, una alegría. Imagino que hoy día será más estable, pero en aquellos tiempos (hablo como de hace 3 o 4 años) era una completa odisea trabajar con él
Saludos, Alex
A mi netbeans cuando me mandaron el 6, me empezaba a hacer cosas raras como que de repente se cerraba sólo. O cuando mete librerías porque sí... o cosas así. Asíque decidí cambiar a Eclipse, y como la seda hoygan!
En mi caso, NetBeans lo 'sufrí' cuando me tocó hacer unas aplicaciones para PDA con J2ME, y aquello no había por donde cogerlo. Hacía cosas extrañísimas y funcionaba como y cuando le daba la gana. En fin, una alegría. Imagino que hoy día será más estable, pero en aquellos tiempos (hablo como de hace 3 o 4 años) era una completa odisea trabajar con él
Saludos, Alex
Sin duda, NetBeans hasta la versión 6.5 o así no lo consideraba como una opción teniendo otras similares, incluido Eclipse, la versión 6.8, que es la que más he usado me ha resultado, además de comoda, bastante estable, no se me ha cerrado solo nunca ni me ha hecho nada "raro" (de hacerlo habría sido enviado al quinto pino en 0.2 segundos xDD).
Con Eclipse, aunque lo uso para mis proyectos personales, lo tengo un poco abandonado, ya que, por algún motivo, no llego a encontrarme del todo cómodo, aunque cierto es que tampoco me pongo a configurarlo ni a buscar plugins extras que puedan mejorar mi experiencia de uso con este IDE, esto se debe a que soy de los que, si pueden, evitan la complejidad en el uso de sus herramientas de trabajo (si hasta prefiero abrir el nano antes que el VIM, imaginad xD), prefiero algo sencillo, potente y bien configurado de serie que me permita hacer mi trabajo sin liarla demasiado :D
PiZZaCaT
18/06/2010, 13:36
He cambiado la tabla para que ahora también aparezca un campo cod_pelicula que es pk. Del codigo de borrar.php tengo esto:
<?php
//Declaracion de variables
$identificador =
//Conexion con la base
mysql_connect("localhost", "usuario", "abc123..")
or die("No se ha podido realizar la conexion con el servidor");
//selección de la base de datos con la que vamos a trabajar
mysql_select_db("ejemplo")
or die("No se ha podido seleccionar la base de datos");
//Ejecucion de la sentencia SQL
mysql_query("DELETE from peliculas WHERE cod_pelicula = $identificador")
or die("No se ha podido realizar la consulta SQL");
?>
¿Que me falta a parte de conseguir que la variable $identificador tome el valor cod_pelicula de la fila correspondiente?
Código de la tabla peliculas:
CREATE TABLE `ejemplo`.`peliculas` (
`cod_pelicula` tinyint(3) NOT NULL AUTO_INCREMENT,
`titulo` varchar(50) NOT NULL,
`ano` varchar(4) DEFAULT NULL,
`genero` varchar(15) DEFAULT NULL,
PRIMARY KEY (`cod_pelicula`)
) ENGINE=MyISAM AUTO_INCREMENT=7 DEFAULT CHARSET=latin1
^MiSaTo^
18/06/2010, 13:38
He cambiado la tabla para que ahora también aparezca un campo cod_pelicula que es pk. Del codigo de borrar.php tengo esto:
¿Que me falta a parte de conseguir que la variable $identificador tome el valor cod_pelicula de la fila correspondiente?
Código de la tabla peliculas:
Pues fácil, si lo capturas por post:
$identificador = $_POST['id']; // el nombre del input hidden que hayas puesto
Por get, lo mismo pero en vez de $_POST, $_GET.
Te recomiendo que lo hagas por post para que no se vea ;)
PiZZaCaT
18/06/2010, 13:56
Pues fácil, si lo capturas por post:
$identificador = $_POST['id']; // el nombre del input hidden que hayas puesto
Por get, lo mismo pero en vez de $_POST, $_GET.
Te recomiendo que lo hagas por post para que no se vea ;)
<?php
//Declaracion de variables I
$identificador = $_POST['id'];
//Conexion con la base
mysql_connect("localhost", "usuario", "abc123..")
or die("No se ha podido realizar la conexion con el servidor");
//selección de la base de datos con la que vamos a trabajar
mysql_select_db("ejemplo")
or die("No se ha podido seleccionar la base de datos");
//Ejecucion de la sentencia SQL
mysql_query("DELETE from peliculas WHERE cod_pelicula = $identificador")
or die("No se ha podido realizar la consulta SQL");
//Declaracion de las variables II
$query = "SELECT cod_pelicula, titulo, ano, genero FROM peliculas";
$result = mysql_db_query("ejemplo", $query);
//Fin de la conexion con la base
mysql_close("localhost", "usuario", "abc123..");
?>
<html>
<head>
<title>Informe Peliculas</title>
</head>
<body bgcolor="#90a9ae">
<h3>Peliculas</h3>
<table border="1" bgcolor="#ffffff" frame="box">
<tr>
<td bgcolor="#e5e5e5">Cod_Pelicula</td>
<td bgcolor="#e5e5e5">Titulo</td>
<td bgcolor="#e5e5e5">Ano</td>
<td bgcolor="#e5e5e5">Genero</td>
</tr>
<form action="borrar.php" method="post">
<?php while($fila = mysql_fetch_object($result)) :?>
<tr>
<td><?=$fila->cod_pelicula?></td>
<td><?=$fila->titulo?></td>
<td><?=$fila->ano?></td>
<td><?=$fila->genero?></td>
<td><input type="submit" value="borrar"><input type="hidden" name="id" value="idquesea"></td>
</tr>
<?php endwhile; ?>
</form>
</table>
</body>
</html>
Lo siento, sigo sin pillarlo, quizás se debe a que apenas he dormido 4 horas, ¿te importaría simplemente corregir el código? ¿Sería algo como <hidden id valor=<?$fila->id?>?
PharaOnyx
18/06/2010, 14:00
Lo siento, sigo sin pillarlo, quizás se debe a que apenas he dormido 4 horas, ¿te importaría simplemente corregir el código?
<td><input type="submit" value="borrar"><input type="hidden" name="id" value="<?=$fila->cod_pelicula?>"></td>
¿Lo estás haciendo todo en un único PHP?
Saludos, Alex
^MiSaTo^
18/06/2010, 14:02
Lo siento, sigo sin pillarlo, quizás se debe a que apenas he dormido 4 horas, ¿te importaría simplemente corregir el código?
Sin problemas ;)
<?php
//Declaracion de variables I
$identificador = $_POST['id'];
//Conexion con la base
mysql_connect("localhost", "usuario", "abc123..")
or die("No se ha podido realizar la conexion con el servidor");
//selección de la base de datos con la que vamos a trabajar
mysql_select_db("ejemplo")
or die("No se ha podido seleccionar la base de datos");
//Ejecucion de la sentencia SQL
mysql_query("DELETE from peliculas WHERE cod_pelicula = $identificador")
or die("No se ha podido realizar la consulta SQL");
//Declaracion de las variables II
$query = "SELECT cod_pelicula, titulo, ano, genero FROM peliculas";
$result = mysql_db_query("ejemplo", $query);
//Fin de la conexion con la base
mysql_close("localhost", "usuario", "abc123..");
?>
<html>
<head>
<title>Informe Peliculas</title>
</head>
<body bgcolor="#90a9ae">
<h3>Peliculas</h3>
<table border="1" bgcolor="#ffffff" frame="box">
<tr>
<td bgcolor="#e5e5e5">Cod_Pelicula</td>
<td bgcolor="#e5e5e5">Titulo</td>
<td bgcolor="#e5e5e5">Ano</td>
<td bgcolor="#e5e5e5">Genero</td>
</tr>
<form action="" method="post">
<?php while($fila = mysql_fetch_object($result)) :?>
<tr>
<td><?=$fila->cod_pelicula?></td>
<td><?=$fila->titulo?></td>
<td><?=$fila->ano?></td>
<td><?=$fila->genero?></td>
<td><input type="submit" value="borrar"><input type="hidden" name="id" value="<?=$fila->cod_pelicula?>"></td>
</tr>
<?php endwhile; ?>
</form>
</table>
</body>
</html>
Simplemente le he dicho que el action del form, sea si mismo (ya que estás borrando al principio del script) y he metido en el hidden el valor de cod_película para luego poder recogerlo por POST como hemos visto antes.
Si tienes más dudas dímelas :brindis:
< - >
<td><input type="submit" value="borrar"><input type="hidden" name="id" value="<?=$fila->cod_pelicula?>"></td>
¿Lo estás haciendo todo en un único PHP?
Saludos, Alex
Lo está, xD
Yo lo haría separado o al menos pondría una variable de control al principio rollo
if $action == 'borrar'
else loquesea.
Porque ahora si no pulsa nadie en el botón de borrar seguramente cascará al intentar borrar nada cuando cargue la página.
PharaOnyx
18/06/2010, 14:05
Yo lo haría separado o al menos pondría una variable de control al principio rollo
if $action == 'borrar'
else loquesea.
Precisamente por esto lo pregunto
Saludos, Alex
^MiSaTo^
18/06/2010, 14:11
Precisamente por esto lo pregunto
Saludos, Alex
Bueno una manera de arreglarlo es eso, poner un hidden de nombre action y de value borrar y arriba del todo justo antes de la sentencia de borrar de la bbdd mirar con un if si ha llegado por post ese action.
O ver si ha llegado algo por post directamente con $_POST > 0 o algo así (de memoria ahora mismo no me acuerdo, que llevo 1 mes sólo con cocoa xD)
PiZZaCaT
18/06/2010, 14:13
Ok, creo que debería ser suficiente con esto. Muchas gracias otra vez a todo el mundo :)
PharaOnyx
18/06/2010, 14:14
O ver si ha llegado algo por post directamente con $_POST > 0 o algo así (de memoria ahora mismo no me acuerdo, que llevo 1 mes sólo con cocoa xD)
count($_POST)>0
Saludos, Alex
pd: :p
Vaya cacao bueno tienes PizzaCat :brindis:
¿De verdad te vas a examinar de esto?
Hazlo todo en varias partes (divide y venceras). Una pagina con el formulario, otra para borrar, otra para insertar... Te salen muchas paginas, si, pero es mucho mas claro. Sobre todo cuando no se domina del todo bien el PHP.
En cuanto al tema de llevarte valores de una pagina a otra, puedes usar lo que te ha dicho Misato, o puedes pasarlas por la URL:
borrar.php?id=<?php =$fila->cod_pelicula ?>
y capturandolo en la otra pagina con $_GET['id']. Aunque te ahorras el campo hidden del formulario, si usas esta forma ,como ya te han dicho, se ve por la URL el valor que te estas llevando (que, una vez mas, pienso que para gente que empieza queda mas claro).
Un saludo
:brindis:
^MiSaTo^
18/06/2010, 14:46
count($_POST)>0
Saludos, Alex
pd: :p
Me sonaba un count por algún lado pero sólo me salía poner [$_POST count] y no, eso es obj-C mezclado con php y... en fin que tengo un cacao en la cabeza vaya xD
PharaOnyx
19/06/2010, 12:23
Exijo saber cómo ha acabado la historia :D
Saludos, Alex
Ñuño Martínez
21/06/2010, 08:59
Estoy con PharaOnys. KEREMOX ZAVER!
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions Inc. All rights reserved.