Foros del Web » Programando para Internet » PHP »

Modificar registros, no me sale nada

Estas en el tema de Modificar registros, no me sale nada en el foro de PHP en Foros del Web. hola amigos estoy intentando crear una lista de resultados de mi base de datos (MySQL) y que pueda modificar estos registros, o el selecionando. La ...
  #1 (permalink)  
Antiguo 14/04/2004, 07:19
Avatar de benti  
Fecha de Ingreso: octubre-2001
Ubicación: Benidorm
Mensajes: 413
Antigüedad: 16 años, 1 mes
Puntos: 0
Modificar registros, no me sale nada

hola amigos estoy intentando crear una lista de resultados de mi base de datos (MySQL) y que pueda modificar estos registros, o el selecionando.
La lista de los registro aparecen por orden de ID automatico y adjunto este link para editarlas:
Código PHP:
<a href='display.php?".$row["id"]."'>Editar</a
entonces aqui me deveria de aparecer el contenido del resultado elegido en los imput, cosa que no hace, y como no da error, ya me he quedado atascado, os pongo el codigo del display.php
Código PHP:
//Fin conexiones DB

$sqlquery "SELECT * from anuncios where id='"$id"'";
$queryresult mysql_query ($sqlquery);

if (
$row mysql_fetch_array ($queryresult))
{

echo 
"<table border=\"0\" cellspacing=\"2\" cellpadding=\"2\">";
echo 
"        <tr>";
echo 
"            <td class=\"rotul_text_blanco\">Rotulo o nombre</td>";
echo 
"            <td><input type=\"text\" name=\"rotulo\" value=\" ".$row["rotulo"]." \" size=\"24\"></td>";
echo 
"        </tr>";
echo 
"        <tr>";
echo 
"            <td class=\"rotul_text_blanco\">Anuncio</td>";
echo 
"            <td><textarea name=\"texto\" rows=\"4\" value=\ ".$row["texto"]." \" cols=\"40\"></textarea></td>";
echo 
"        </tr>";
echo 
"        <tr>";
echo 
"            <td class=\"rotul_text_blanco\">Precio</td>";
echo 
"            <td><input type=\"text\" name=\"pvp\" value=\" ".$row["pvp"]." \" size=\"24\"></td>";
echo 
"        </tr>";
echo 
"        <tr>";
echo 
"            <td class=\"rotul_text_blanco\">Telefono</td>";
echo 
"            <td><input type=\"text\" name=\"telefono\" size=\"24\" value=\" ".$row["telefono"]." \" maxlength=\"9\"></td>";
echo 
"        </tr>";
echo 
"        <tr>";
echo 
"            <td class=\"rotul_text_blanco\">Provincia</td>";
echo 
"            <td><input type=\"text\" name=\"provincia\" value=\" ".$row["provincia"]." \" size=\"24\"></td>";
echo 
"        </tr>";
echo 
"        <tr>";
echo 
"            <td class=\"rotul_text_blanco\">web</td>";
echo 
"            <td><input type=\"text\" name=\"url\" value=\" ".$row["url"]." \" size=\"24\"></td>";
echo 
"        </tr>";
echo 
"        <tr>";
echo 
"            <td class=\"rotul_text_blanco\"></td>";
echo 
"            <td><input type=\"submit\" name=\"Enviar\"></td>";
echo 
"        </tr>";
echo 
"    </table>";

Gracias ;)
__________________
Seguro que ahora me sale mejor!
  #2 (permalink)  
Antiguo 14/04/2004, 08:41
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Te faltó la variable que usas en tu script de proceso:

Código PHP:
echo "<a href=\"display.php?id=".$row["id"]."\">Editar</a>"
y aquí sería bueno hacer (si usas PHP 4.1.0 o superior) por seguridad:

Código PHP:
$sqlquery "SELECT * from anuncios where id='"mysql_escape_string($_GET['id']). "'"
Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 14/04/2004 a las 08:45
  #3 (permalink)  
Antiguo 14/04/2004, 09:27
Avatar de benti  
Fecha de Ingreso: octubre-2001
Ubicación: Benidorm
Mensajes: 413
Antigüedad: 16 años, 1 mes
Puntos: 0
Tenias razon me faltaba la variable, puedes comentarme eso de la seguridad, aunek imagino ke sera para que los datos pasados se keden en esa pagina solo no ¿?
__________________
Seguro que ahora me sale mejor!
  #4 (permalink)  
Antiguo 14/04/2004, 10:10
Avatar de benti  
Fecha de Ingreso: octubre-2001
Ubicación: Benidorm
Mensajes: 413
Antigüedad: 16 años, 1 mes
Puntos: 0
2 problemas mas

hola otra vez, a ver el primero el contenido del la variable tecto que es el anincio no me lo pasa para modificarlo lo tengo en un text area:

Código PHP:
echo "        <tr>";
echo 
"            <td class=\"rotul_text_blanco\">Anuncio</td>";
echo 
"            <td><textarea name=\"texto\" rows=\"4\" value=\" ".$row["texto"]." \" cols=\"40\"></textarea></td>";
echo 
"        </tr>"
Y el otro problema es que aun modificando no puedo meterlo en la base de datos :S

Código PHP:
$sqlquery "UPDATE anuncios SET rotulo='$rotulo', texto='$texto', provincia='$provincia', telefono='$telefono', pvp='$pvp', nivel='$nivel', url='$url' where id = $id";
$result mysql_query($sqlquery)
or die (
"<spam=\"text_blanco\">NO se ha podido modificar el registro con ID: $id <br><A HREF=\"#back\" OnClick=\"volver()\">[Volver atras]</a></spam>"); 
__________________
Seguro que ahora me sale mejor!
  #5 (permalink)  
Antiguo 14/04/2004, 13:10
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
1) Un textarea de HTML no tiene "value" .. su valor predefinido se define en:

Código PHP:
echo "            <td><textarea name=\"texto\" rows=\"4\"  cols=\"40\">".$row["texto"]."</textarea></td>"
2) Usa los arrays superglobales preferentemente por tu seguridad (de las primeras FAQ's hablan del tema).

Y por mientras revisa si obtienes los valores esperados de tus variables antes de atacar tu mysql_query() .. Puedes usar:

Código PHP:
echo $sqlquery
para comprobar si tu sentencia SQL está tomando los valores esperados ..

El tema de la seguridad usando la función msyql_escape_string() lo puedes ver en www.php.net/mysql_escape_string .. Pero en su base se usa para evitar "SQL injection" .. es decir .. que no te "monten" sentencias SQL peligrosas en tu sentencia SQL que formas para ejecutarla y así poder realizar acciones como borrado de registros, pasar validaciones .. etc que puedas hacer.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 14/04/2004, 13:56
Avatar de benti  
Fecha de Ingreso: octubre-2001
Ubicación: Benidorm
Mensajes: 413
Antigüedad: 16 años, 1 mes
Puntos: 0
Bien he solucionado lo del campo de texto.
lo de las arrays superglobales he estado mirando por aki por el foro pero aun me lio.

Si tengo un formulario cuando inserto las variables en que momento las pongo superglobales ¿? al proncipio del fomulario o al final, o en la pagina que supuestamente tiene que recibir esas variables ?

Gracias!
__________________
Seguro que ahora me sale mejor!
  #7 (permalink)  
Antiguo 14/04/2004, 15:57
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Los arrays superglobales los crea PHP en el momento que propagas variabels a un script según el método que usastes en tus formularios (GET o POST) o si llegan por el URL (sería GET en ese caso) o si son variables de sesión/cookies las que quiers acceder entre otras cosas.

Tu tan solo necesitas acceder a tus variables comunes externas (las de tus formularios .. URL .. etc) por el array asociado al método que usastes par hacerle llegar esas variables al script que va a procesar esas variables ..

Ejemplos:
Si usas un formulario con method="POST" en el script de proceso que indicas en: action="script.php" tendras que recogerlas por:

$_POST['nombre_variable_formulario_input_select_o_lo_que_ sea']

Si es GET el método .. lo mismo pero con $_GET ..

Son arrays recuerdalo y por ende se accede a sus "elementos" como cualquier array .. incluso puedes aplicar funciones de arrays a estos arrays "superglobales" como foreach() por ejemplo ..

El echo que se llamen "arrays superglobales" no quiere decir que tengas que declarar como "superglobal" estos arrays sino que ya no lo són y te indican que puedes acceder a sus elementos (tus variables discriminando el método por el cual llegan o se han de obtener) desde cualquier parte de un script (ambito/scope) incluido desde dentro de funciones sin necesidad de declararlas como globales (gloabal $variable) por qué ya lo són.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 21:58.