Refrescar datos

Iniciado por bgnumis, 2 Abril 2015, 20:03 PM

0 Miembros y 1 Visitante están viendo este tema.

bgnumis

Hola he conseguido enviar datos por hidden y parto de esta "salida"

Código (html4strict) [Seleccionar]


http://holamundo.es/actrfi.php?medad=10&clave=254219&enviar=Insertar+Datos




Intento recuperar los datos de

Código (php) [Seleccionar]
$cla=$_GET['clave'];
$edad=$_GET['medad'];


para ejecutar

Código (php) [Seleccionar]
$qry=mysql_query("UPDATE alumnos SET Edad=$edad WHERE MATRICULA=$cla ");

Pero no me modifica el registro MATRICULA del alumno "$cla" con el valor $edad en el campo Edad de la tabla alumnos.

¿Estoy procediendo mal?

Sé por otras preguntas que debo utilizar mysqli pero necesito un tiempo para mirarlo y adaptar los codigos que ya me van.

Mod: Temas sobre PHP al subforo de PHP. Utilizar etiquetas GeSHi para códigos.

engel lex

estás usando la funciones de mysql_error para ver si hay error en la petición?
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

bgnumis

he añadido esto pero no me aparece nada:

Código (php) [Seleccionar]
echo mysql_error($qry) . ": " . mysql_error($qry) . "\n";

pero nada no sale nada.

engel lex

y mysql_affected_rows te da 0?

si es así el where está mal
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

bgnumis

Nada no me ejecuta nada...creo que estoy un poco "bloqueado" hoy.

Solo una cosa:

Código (php) [Seleccionar]


http://holamundo.es/actrfi.php?medad=10&clave=254219&enviar=Insertar+Datos



Quisiera poner que me "sacara" los valores de medad y clave con echo

No debería ser así?

Código (php) [Seleccionar]


include("conexion.php");

$cla=$_GET['clave'];
$edad=$_GET['medad'];

<?php
$conexion
=mysql_connect("localhost","osc","@due1111") or die("Problemas en la conexion");
mysql_select_db("osc",$conexion) or die("Problemas en la selección de la base de datos");   

echo 
$cla;
echo 
$edad;
?>




Si consigo sacar (que se vean) los datos entonces sé que donde lo que estoy fallando es el UPDATE.

A ver si me podeis dar un capón y a yudarme.

Gracias mil por adelantado.

Pablo Videla

#5
al WHERE de la matricula le faltan las comillas.

Código (php) [Seleccionar]


$qry=mysql_query("UPDATE alumnos SET Edad=$edad WHERE MATRICULA='$cla' ");


A todo esto de donde rayos saca el $cla? xD asumi que era un string   :xD

bgnumis

Perdonad,

No encuentro el modo.

Reformulo la duda a ver si así me conseguís ayudar (mil gracias de antemano):

Yo "envio" datos y me sale esta página:

Código (html4strict) [Seleccionar]


http://blif.eu/holamundo.php?medad=10&clave=2542&enviar=Insertar+Datos



Y quiero "cogiendo" para el usuario con clave "2542" cambiarle la Edad a 10


Mi base de datos se llama aldef

Y la tabla donde está el registro que quiero actualizar alumnos

Yo conecto a la base de datos....y....


Código (php) [Seleccionar]


$sql="UPDATE alumnos SET Edad='$_GET["medad"]' WHERE MATRICULA='$_GET["clave"]' ";



NAda, tampoco con esto
Código (php) [Seleccionar]


$sql="UPDATE alumnos SET Edad='htmlspecialchars($_GET["medad"])' WHERE MATRICULA='htmlspecialchars($_GET["clave"])' ";



¿Cómo debiera hacerlo?



#!drvy

#7
Código (php) [Seleccionar]
$edad  = (int) $_GET['medad'];
$clave = (int) $_GET['clave'];

$sql = "UPDATE alumnos SET Edad='$edad' WHERE MATRICULA='$clave'";



NO USAR mysql_, ESTA OBSOLETO.
http://php.net/manual/en/function.mysql-connect.php

Saludos

DarK_FirefoX

#8
El primer problemita que vi fue lo de las comillas, pero veo que ya te lo aclararon! por otro lado, ¿Dices que las variables tienen el valor que debe tener?

O sea, si haces:

Código (php) [Seleccionar]

$edad  = $_GET['medad'];
$clave = $_GET['clave'];


Hazle un

Código (php) [Seleccionar]
echo $edad;
echo $clave;
die();


Revisa que las variables tienen el valor correspondiente, si es así. Esto debería funcionar:

Código (php) [Seleccionar]
$sql = "UPDATE alumnos SET Edad = '$edad' WHERE MATRICULA = '$clave'";

Asumiendo, que los nombres de los campos, y de la tabla a los que te refieres en la query estén bien.

Dinos como te fue con esto.

Saludos


MinusFour

No es necesario poner comillas ahi si es un campo INT. Las comillas se usan para literales de tipo string (varchar, text, etc). ¿Tu servidor es Windows? Es posible que tu sistema sea case-sensitive y 'MATRICULA', 'Edad', 'alumnos' no sea un match exacto de tus campos:

https://dev.mysql.com/doc/refman/5.0/en/identifier-case-sensitivity.html