Problemas para Actualizar datos en php

Tengo un gran problema no puedo hacer la actualización de datos de un regístro, el código que utilizo es el siguiente:

¿

<?php
$result = mysql_query("SELECT * FROM participantes WHERE doc = '$textfield'", $link);
if ($row = mysql_fetch_array($result)){
echo "<table border = '1'> \n";
//Mostramos los nombres de las tablas
echo "<tr> \n";
while ($field = mysql_fetch_field($result)){
echo "<td>$field->name</td> \n";
}
echo "</tr> \n";
do {
echo "<tr> \n";
echo "APELLIDOS Y NOMBRES: ".mysql_result($result,0,"apell_nom")."<br>";
echo "TELÉFONO: ".mysql_result($result,0,"teléfono")."<br>";
echo "DIRECCIÓN: ".mysql_result($result,0,"dirección")."<br>";
} while ($row = mysql_fetch_array($result));
echo "</table> \n";
} else {
echo "&iexcl; Datos no encontrados!";
}
?>
<?php
$resultado = mysql_query("SELECT doc FROM participantes WHERE doc = '$textfield'", $link);
while($row = mysql_fetch_array($resultado))
{
printf("<tr><INPUT TYPE='text' NAME='g' id='g' SIZE='10'
MAXLENGTH='10' value='%s'></td>",$row["dni"]);
}
mysql_free_result($resultado);
?>
<p>ESTADO DE INSCRIPCION:
<label for="estados"></label>
<select name="es" id="es">
<option value="Campo Vacio">Seleccionar</option>
<option value="Pre Inscrito">Pre Inscrito</option>
<option value="Inscrito">Inscrito</option>
</select>
<?php
$resulandot= mysql_query("UPDATE participantes SET estado='$es' where doc ='$g'",$link);
echo "Datos Actualizados";
?>

Espero que me puedan ayudar a ver donde esta mi falla

1 respuesta

Respuesta

Explica un poco tu código, ¿son tres ficheros? ¿Uno sólo? Si son tres, el formulario que pones al final necesita un submit o algo para que los valores del mismo se pasen al target del formulario. Si es uno sólo debería empezar a dividir tus programas en partes y a separar la parte html o vista del código, pasarte al modelo Vista - Controlador, si con un program tan sencillo tienes problemas, imagina cuando la cosa se complique.

Por lo pronto revisar tu formulario, si no usas ajax, y tampoco haces un submit los datos del form no irán a ningún lado.

ante todo disculpas por repetir la pregunta creí que no se havi aoublicado esta por eso publique la otra

bueno resumiendo lo que trato de hacer es lo siguiente:

<?php
$result = mysql_query("SELECT * FROM participantes WHERE doc = '$textfield'", $link);
if ($row = mysql_fetch_array($result)){
echo "<table border = '1'> \n";
//Mostramos los nombres de las tablas
echo "<tr> \n";
while ($field = mysql_fetch_field($result)){
echo "<td>$field->name</td> \n";
}
echo "</tr> \n";
do {
echo "<tr> \n";
echo "APELLIDOS Y NOMBRES: ".mysql_result($result,0,"apell_nom")."<br>";
echo "TELÉFONO: ".mysql_result($result,0,"teléfono")."<br>";
echo "DIRECCIÓN: ".mysql_result($result,0,"dirección")."<br>";
} while ($row = mysql_fetch_array($result));
echo "</table> \n";
} else {
echo "&iexcl; Datos no encontrados!";
}
?>

"en esta parte hago una búsqueda por el numero de documento para que me aparezcan los datos "

<?php
$resultado = mysql_query("SELECT doc FROM participantes WHERE doc = '$textfield'", $link);
while($row = mysql_fetch_array($resultado))
{
printf("<tr><INPUT TYPE='text' NAME='g' id='g' SIZE='10'
MAXLENGTH='10' value='%es'></td>",$row["dni"]);
}
mysql_free_result($resultado);
?>

"en esta parte aprovechando la primera búsqueda hago que en un campo de texto aparesca el numero de documento"

<?php
$resulandot= mysql_query("UPDATE participantes SET estado='$es' where doc ='$g'",$link);
echo "Datos Actualizados";
?>

" y en esta parte actualizo los datos de Estado"

precisamente ahí esta mi problema que no me hace la actualización

y todo el código esta en un form solo que no lo puse aqui

En la última parte cambia a esto:

¿

<?php
$resulandot= mysql_query("UPDATE participantes SET estado='$es' where doc ='$g'",$link);

if ($resultadot){

echo "Datos Actualizados";

}else{

print(" Estado: ".mysql_error($resultadot)."\n");

echo "UPDATE participantes SET estado='$es' where doc ='$g'";
}
?>

Así podrás ver el fallo que retorna el sql y tendrás una pista para poder solucionarlo.

De todas formas al poner las comillas simples en la query a las variables, ¿luego te funciona? Quizá esté entendiendo que son literales y no usa el contenido de la variable ->

("UPDATE participantes SET estado=$es where doc =$g",$link) Las comillas dobles sirven entre otras cosas, para que php preprocese la cadena y sustituya los valores por su valor real. Usa la que he puesto ahora, o esta otra ->

('UPDATE participantes SET estado='.$es.' where doc ='.$g,$link)

Dime cuál resulta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas