Foros del Web » Programando para Internet » PHP »

Problema con php y base de datos

Estas en el tema de Problema con php y base de datos en el foro de PHP en Foros del Web. Hola a todos. Mis conocimientos de SQL y PHP son muy flojitos pero poco a poco voy haciendo cositas...pero se me plantea el siguiente problema... ...
  #1 (permalink)  
Antiguo 18/12/2008, 15:46
 
Fecha de Ingreso: diciembre-2008
Mensajes: 11
Antigüedad: 15 años, 4 meses
Puntos: 0
Problema con php y base de datos

Hola a todos. Mis conocimientos de SQL y PHP son muy flojitos pero poco a poco voy haciendo cositas...pero se me plantea el siguiente problema...
Tengo un programa que te pide el nombre y un comentario.
Cuando escribes esos datos los introduce en una base de datos que he creado y luego los muestra en pantalla.
Tiene un Index en la base de datos llamado "N" y le va dando Numero 1 a la primera fila, luego 2, 3, etc..

Lo que me hace:
me devuelve en pantalla la muestra de datos de forma que la fila dos esta debajo de la 1, la 3 debajo de la 2 y asi sucesivamente...es decir en orden normal. De menor ID a mayor ID.



Lo que quiero hacer:
que la primera fila sea la última que se mete. Es decir primero se veria la ultima metida, luego la penultima, la antepenultima , etc..es decir en orden inverso de Mayor ID a menor ID.




os pongo el codigo del php del programita:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>
<body>
<H1>&nbsp;</H1>
<FORM ACTION="procesar.php">
<TABLE>
<TR>
<TD>Name:</TD>
<TD colspan="3">:
<input type="text" name="nombre" size="40" maxlength="60"> </TD>
<TD>Comment</TD>
<TD><textarea name="comen" cols="20" id="textarea"></textarea> </TD>

<TD colspan="3">&nbsp;</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
</TR>
</TABLE>
<INPUT TYPE="submit" NAME="accion" VALUE="Añadirme a la lista">
</FORM>
<hr>
<?php
include("conex.php");
$link=Conectarse();
$result=mysql_query("select * from prueba",$link);
?>
<TABLE BORDER=1 CELLSPACING=1 CELLPADDING=1>
<TR><TD>&nbsp;<B>__</B></TD><TD>&nbsp;<B>Nombre</B></TD> <TD>&nbsp;<B>Comentario</B>&nbsp;</TD></TR>
<?php

while($row = mysql_fetch_array($result)) {
printf("<tr><td>&nbsp;%s</td><td>&nbsp;%s</td><td>&nbsp;%s&nbsp;</td></tr>", $row["N"], $row["Nombre"], $row["comen"]);
}
mysql_free_result($result);
mysql_close($link);
?>
</table>
</body>
</html>


y aqui el codigo de procesar.php

<?php
include("conex.php");
$link=Conectarse();
$nombre=$_GET['nombre'];
$comen=$_GET['comen'];
mysql_query("insert into prueba (Nombre,comen) values ('$nombre','$comen')",$link);

header("Location: tevienes.php");
?>

Por favor podeis ayudarme?
Muchas gracias.
  #2 (permalink)  
Antiguo 18/12/2008, 15:55
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Problema con php y base de datos

Usa:
Código php:
Ver original
  1. $result=mysql_query("select * from prueba ORDER BY n DESC",$link);

Saludos.
  #3 (permalink)  
Antiguo 18/12/2008, 16:00
 
Fecha de Ingreso: diciembre-2008
Mensajes: 11
Antigüedad: 15 años, 4 meses
Puntos: 0
gracias funciona perfecto

eres un crack.

una pregunta mas...que no se si será sencillo...
como puedo añadir una columna mas en la que me la ponga de modo automatico la fecha del dia en la que se introducen los datos??

muchas gracias

Última edición por GatorV; 18/12/2008 a las 16:23
  #4 (permalink)  
Antiguo 18/12/2008, 16:15
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Problema con php y base de datos

Pues primero la agregas en tu BDD, luego la insertas tal y cual la tienes en tu archivo de procesar.php, para recoger el dato puedes usar date(), o time() y luego lo despliegas igual que los demas valores que tienes.

Saludos.
  #5 (permalink)  
Antiguo 18/12/2008, 16:16
 
Fecha de Ingreso: noviembre-2008
Ubicación: México
Mensajes: 26
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: Problema con php y base de datos

Puedes agregar la función Now() en el insert.

http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_now
  #6 (permalink)  
Antiguo 18/12/2008, 16:25
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Respuesta: Problema con php y base de datos

Mejor aún...

Código php:
Ver original
  1. CREATE TABLE example_default_now (
  2.   id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
  3.   data VARCHAR(100),
  4.   created TIMESTAMP DEFAULT NOW()
  5. );

Formas hay muchas, está en ti utilizar la que consideres

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #7 (permalink)  
Antiguo 18/12/2008, 16:37
 
Fecha de Ingreso: diciembre-2008
Mensajes: 11
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Problema con php y base de datos

comprendo la idea pero me falla la sintaxix...
ya he creado un campo en mi base que se llama fecha
pero algo falla ...supongo que no se pondrá asi..como os lo copio...lo he intentado pero asi evidentemente no es...

<?php
include("conex.php");
$link=Conectarse();
$nombre=$_GET['nombre'];
$comen=$_GET['comen'];
$pais=$_GET['pais'];
$fecha=$_GET['now()'];
mysql_query("insert into prueba (Nombre,comen,pais,fecha) values ('$nombre','$comen','$pais','$fecha')",$link);

header("Location: tevienes.php");
?>

gracias de antemano.
  #8 (permalink)  
Antiguo 18/12/2008, 16:39
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 19 años, 7 meses
Puntos: 18
Respuesta: Problema con php y base de datos

<?php
include("conex.php");
$link=Conectarse();
$nombre=$_GET['nombre'];
$comen=$_GET['comen'];
$pais=$_GET['pais'];

mysql_query("insert into prueba (Nombre,comen,pais) values ('$nombre','$comen','$pais')",$link);

header("Location: tevienes.php");
?>
prueba así
  #9 (permalink)  
Antiguo 18/12/2008, 16:41
 
Fecha de Ingreso: noviembre-2008
Ubicación: México
Mensajes: 26
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: Problema con php y base de datos

El problema es que el arreglo $_GET solo es para las variables enviadas por url, y la función Now() es una funcion de mysql.

Prueba esto:

Código PHP:
<?php
include("conex.php");
$link=Conectarse();
$nombre=$_GET['nombre'];
$comen=$_GET['comen'];
$pais=$_GET['pais'];

mysql_query("insert into prueba (Nombre,comen,pais,fecha) values ('$nombre','$comen','$pais',Now())",$link);

header("Location: tevienes.php");
?>
O hazlo de la manera que dijo Carxl, de esa forma el valor por default sera la fecha actual y no tendrás que ponerla en el insert.

Editado:
trasgukabi me gano :P. De cualquier forma, el código que puso trasgukabi te funcionara en caso de que la tabla la hayas hecho como dijo Carxl
  #10 (permalink)  
Antiguo 18/12/2008, 16:41
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Problema con php y base de datos

De hecho es asi:
Código php:
Ver original
  1. <?php
  2. include("conex.php");
  3. $link=Conectarse();
  4. $nombre=$_GET['nombre'];
  5. $comen=$_GET['comen'];
  6. $pais=$_GET['pais'];
  7. $fecha=time();
  8. mysql_query("insert into prueba (Nombre,comen,pais,fecha) values ('$nombre','$comen','$pais','$fecha')",$link);
  9.  
  10. header("Location: tevienes.php");

Saludos.
  #11 (permalink)  
Antiguo 18/12/2008, 16:51
 
Fecha de Ingreso: diciembre-2008
Mensajes: 11
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Problema con php y base de datos

he probado el metodo de Canastendo y Gator V...es algo mas sencillo para mi...
y el caso es que me devuelve un valor...pero es este : 1229640431
y segun añado mas filas va cambiando..es como si me estuviera poniendo la fecha pero en un modo numerico que no se entiende bien...

He dado de alta el campo fecha en mi database con
varchar(50) utf8_general_ci

alguna idea?...estoy haciendo algo mal?
lo siento que coñazo os estoy dando...
  #12 (permalink)  
Antiguo 18/12/2008, 16:56
 
Fecha de Ingreso: noviembre-2008
Ubicación: México
Mensajes: 26
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: Problema con php y base de datos

Deberías hacer el campo fecha de tipo Date o DateTime. Estos tipos de datos aceptaran el formato de la función Now() sin ningún problema.

http://dev.mysql.com/doc/refman/5.0/en/datetime.html
  #13 (permalink)  
Antiguo 18/12/2008, 16:56
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Problema con php y base de datos

De hecho es el valor correcto, a la hora de imprimirlo solo usa echo date("Y-m-d", $row['fecha']);

Lo que se esta insertando es el TIMESTAMP.

Saludos.
  #14 (permalink)  
Antiguo 18/12/2008, 17:06
 
Fecha de Ingreso: diciembre-2008
Mensajes: 11
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Problema con php y base de datos

eleeeee¡¡¡¡¡

al final lo hice asi:
<?php
include("conex.php");
$link=Conectarse();
$nombre=$_GET['nombre'];
$comen=$_GET['comen'];
$pais=$_GET['pais'];

mysql_query("insert into prueba (Nombre,comen,pais,fecha) values ('$nombre','$comen','$pais', Now())",$link);
header("Location: tevienes.php");
?>

y el campo fecha DATETIME...

gracias otra vez...

y otra.
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 15:45.