Foros del Web » Programando para Internet » PHP »

No graba base de datos

Estas en el tema de No graba base de datos en el foro de PHP en Foros del Web. He copiado este script para que algunos de ustedes me den una ayuda. Al correrlo en el servidor donde está hospedada mi website, no alimenta ...
  #1 (permalink)  
Antiguo 23/08/2009, 13:40
 
Fecha de Ingreso: agosto-2009
Mensajes: 39
Antigüedad: 14 años, 8 meses
Puntos: 0
He copiado este script para que algunos de ustedes me den una ayuda. Al correrlo en el servidor donde está hospedada mi website, no alimenta la base de datos. El register_globals está en OFF en el servidor. Qué órdenes o sentencias debo agregar para que pueda alimentarse la base de datos con el register_globals en OFF?

Código PHP:
<?PHP

$servidor 
"localhost";
$usuario "nombreusuario"
$password "password"
$base_de_datos "encuesta";


$conextar=mysql_connect ($servidor,$usuario,$password);
    
mysql_select_db($base_de_datos);
    
$sqlupdate "UPDATE encuesta_1 SET valor$voto = valor$voto+1, total = total+1";
    
mysql_query($sqlupdate,$conextar);
    
$sql "SELECT * FROM encuesta_1 ORDER BY id desc LIMIT 1";
    
$resultados mysql_query($sql,$conextar);
    
$row mysql_fetch_array($resultados);
    
?>
<script type="text/javascript" language="JavaScript">
function resultados(){
window.open("resultados.php","","toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0,width=320,height=320");
}
</script>

<form name="form1"  action="<?PHP echo $_SERVER['$PHP_SELF']; ?>" method="post">
  <table width="256" border="0" align="center" cellpadding="0" cellspacing="0" class="forumline">
    <tr valign="baseline"> 
      <td colspan="2" class="row1"> 
        <?= $row['pregunta']; ?>
        <br>
      </td>
    </tr>
    <tr> 
      <td width="110"> 
        <?= $row['respuesta1'];?>
      </td>
      <td width="146"><input type="radio" name="voto" value="1">
      </td>
    </tr>
    <tr> 
      <td> 
        <?= $row['respuesta2'];?>
      </td>
      <td><input type="radio" name="voto" value="2"></td>
    </tr>
    <tr> 
      <td> 
        <?= $row['respuesta3'];?>
      </td>
      <td><input type="radio" name="voto" value="3"></td>
    </tr>
    <tr> 
      <td> 
        <?= $row['respuesta4'];?>
      </td>
      <td><input type="radio" name="voto" value="4"></td>
    </tr>
    <tr align="center"> 
      <td height="20" colspan="2"><input type="submit"  class="post"name="Submit" value="Votar" onClick=window.open("resultados.php","","toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0,width=320,height=320");
></td>
    </tr>
  </table>
  <p>&nbsp;</p></form>


</body>
</html>
Señores: al incluir esta sentencia

Código PHP:
mysql_query($sqlupdate,$conextar) or die(mysql_error()); 
no reconoce los campos valor. En la base de datos aparecen campos así: valor1, valor2, valor3 y valor4. Estos campos no son reconocidos, de ahí el problema de no gravar. Probé únicamente con el campo total y funcionó bien. Les agradezco su colaboración.

J. Didier

Última edición por GatorV; 23/08/2009 a las 21:42
  #2 (permalink)  
Antiguo 23/08/2009, 22:57
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: No graba base de datos

¿Porque haces esto en la sentencia? valor$voto = valor$voto+1
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 24/08/2009, 07:11
 
Fecha de Ingreso: agosto-2009
Mensajes: 39
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: No graba base de datos

Gracias por responder. La verdad es que soy novato en este asunto del php y tome este script de este sitio. Mis pocos conocimientos no comprenden esa sentencia y de lo poco que se, tampoco había visto eso:

Cita:
valor$voto = valor$voto+1
Le agradezco sus respuestas.
  #4 (permalink)  
Antiguo 24/08/2009, 07:49
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: No graba base de datos

Ok, para que te puedas desenvolver te sugiero leer este documento para que vayas logrando lo que quieres http://www.forosdelweb.com/wiki/Manu...Bases_de_Datos
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 24/08/2009, 08:12
 
Fecha de Ingreso: agosto-2009
Mensajes: 39
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: No graba base de datos

abimaelrc: gracias por regalarme su interés.

Una vez leído el manual de php y mysql observo lo siguiente en el siguiente script:

Cita:
$sqlupdate = "UPDATE encuesta_1 SET valor$voto = valor$voto+1, total = total+1";
UPDATE y SET me permiten modificar registros en la tabla encuesta_1

total = total+1 me indica que se sumará al campo total 1

valor$voto: creo que al estar en una cadena con doble comillas se sumará al campo valor1 o a valor2, 1. Es decir, valor$voto serán los campos valor1, valor2, etc.

No obstante, al correr el script sin tener en cuenta valor$voto cambia el valor de total. Pero, cuando inlcuyo valor$voto, me genera un error:

Cita:
Unknown column 'valor' in 'field list'
No reconoce el campo valor. ¿Qué acción o sentencia debo ejecutar para que grabe y modifique los valores en los campos valor1, valor2, etc?.

Gracias por sus sugerencias y consejos.

J. DiDieR
  #6 (permalink)  
Antiguo 24/08/2009, 08:25
Avatar de cemansilla  
Fecha de Ingreso: septiembre-2007
Ubicación: Buenos Aires, Argentina, Argentina
Mensajes: 214
Antigüedad: 16 años, 7 meses
Puntos: 6
Respuesta: No graba base de datos

Cita:
Iniciado por didierjose Ver Mensaje
abimaelrc: gracias por regalarme su interés.

Una vez leído el manual de php y mysql observo lo siguiente en el siguiente script:


UPDATE y SET me permiten modificar registros en la tabla encuesta_1

total = total+1 me indica que se sumará al campo total 1

valor$voto: creo que al estar en una cadena con doble comillas se sumará al campo valor1 o a valor2, 1. Es decir, valor$voto serán los campos valor1, valor2, etc.

No obstante, al correr el script sin tener en cuenta valor$voto cambia el valor de total. Pero, cuando inlcuyo valor$voto, me genera un error:


No reconoce el campo valor. ¿Qué acción o sentencia debo ejecutar para que grabe y modifique los valores en los campos valor1, valor2, etc?.

Gracias por sus sugerencias y consejos.

J. DiDieR
La sentencia esta bien planteada, el problema es que como bien decis no existe ningun campo con el nombre que utilizas (valor)...

Con esto tiene que funcionar:

Código:
UPDATE [nombre_tabla] SET [campo_a_modificar_1] = [valor_1], [campo_a_modificar_2] = [valor_2], [campo_a_modificar_n] = [valor_n] WHERE [condicion]
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 12:35.