Foros del Web » Programando para Internet » PHP »

Problema con version Mysql...

Estas en el tema de Problema con version Mysql... en el foro de PHP en Foros del Web. Hola! tengo una duda con la siguiente sentencia en php, es para actualizar datos, pero cuando lo veo en wamp server me aparece un error, ...
  #1 (permalink)  
Antiguo 20/04/2011, 12:16
Avatar de cuervo699  
Fecha de Ingreso: febrero-2011
Mensajes: 104
Antigüedad: 13 años, 1 mes
Puntos: 7
Pregunta Problema con version Mysql...

Hola! tengo una duda con la siguiente sentencia en php, es para actualizar datos, pero cuando lo veo en wamp server me aparece un error, el cual dice que la version de mysql que estoy usando no acepta "WHERE" (Uso Mysql 5.1) mi pregunta es...

¿Como puedo reemplazar where?

Código PHP:
  $updateSQL sprintf("UPDATE perfiles WHERE Institucion=%s"
Perfiles: Es el nombre de la tabla en la BD
Institucion: Es el nombre de la columna en la BD (La cual se actualizara)

Gracias a todos los que respondan!!
  #2 (permalink)  
Antiguo 20/04/2011, 12:45
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años
Puntos: 336
Respuesta: Problema con version Mysql...

No es que no tenga WHERE es que esta mal ubicado, necesitas poner el SET para indicar que quieres actualizar.

UPDATE perfiles SET variable='valor' WHERE Institucion=%s
  #3 (permalink)  
Antiguo 20/04/2011, 13:06
Avatar de cuervo699  
Fecha de Ingreso: febrero-2011
Mensajes: 104
Antigüedad: 13 años, 1 mes
Puntos: 7
Respuesta: Problema con version Mysql...

Cita:
Iniciado por stramin Ver Mensaje
No es que no tenga WHERE es que esta mal ubicado, necesitas poner el SET para indicar que quieres actualizar.

UPDATE perfiles SET variable='valor' WHERE Institucion=%s
Mucas gracias por la respuesta, resulta que el codigo lo genero dreamweaver CS5 y agregando lo que me dices, no entiendo que debo ingresar en valor...

Esta es la variable????

Código PHP:
<?php echo $row_Recordset1['Institucion']; ?>
  #4 (permalink)  
Antiguo 20/04/2011, 13:21
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años
Puntos: 336
Respuesta: Problema con version Mysql...

la verdad así como así sin ver código ni nada te puedo decir que..... no se XD

tendrías que poner el código completo, te explico como funciona el update, pero como php para que no muevan este tema a mysql:

Código PHP:
Ver original
  1. mysql_query("UPDATE tabla SET variable='valor' WHERE condicion;");

tabla: es la tabla que que quieres modificar, en tu caso 'perfiles'.

variable: es el campo que quieres modificar, por ejemplo si quieres modificar la edad ehi debes poner edad.

valor: es el nuevo contenido que tendrá la variable, por ejemplo si quieres modificar la edad a 17 años ahí debes poner 17.

condicion: esto indica en que registros se hará ese cambio, si no pones nada aquí todos los registros de tu base de datos se cambiarán a 17, para evitar esto generalmente se pone algo que identifique ese registro, por ejemplo si quieres solo editar a manuel podrías poner nombre='manuel':

Código PHP:
Ver original
  1. mysql_query("UPDATE perfiles SET edad='17' WHERE nombre='manuel';");
  #5 (permalink)  
Antiguo 20/04/2011, 13:42
Avatar de cuervo699  
Fecha de Ingreso: febrero-2011
Mensajes: 104
Antigüedad: 13 años, 1 mes
Puntos: 7
Respuesta: Problema con version Mysql...

Código PHP:
<?php require_once('Connections/bd_panel_control.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function 
GetSQLValueString($theValue$theType$theDefinedValue ""$theNotDefinedValue ""
{
  if (
PHP_VERSION 6) {
    
$theValue get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }

  
$theValue function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch (
$theType) {
    case 
"text":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;    
    case 
"long":
    case 
"int":
      
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case 
"double":
      
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case 
"date":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;
    case 
"defined":
      
$theValue = ($theValue != "") ? $theDefinedValue $theNotDefinedValue;
      break;
  }
  return 
$theValue;
}
}

$editFormAction $_SERVER['PHP_SELF'];
if (isset(
$_SERVER['QUERY_STRING'])) {
  
$editFormAction .= "?" htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset(
$_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) {
  
$updateSQL sprintf("UPDATE perfiles WHERE Institucion=%s",
                       
GetSQLValueString($_POST['Institucion'], "text"));

  
mysql_select_db($database_bd_panel_control$bd_panel_control);
  
$Result1 mysql_query($updateSQL$bd_panel_control) or die(mysql_error());
}

mysql_select_db($database_bd_panel_control$bd_panel_control);
$query_Recordset1 "SELECT * FROM perfiles";
$Recordset1 mysql_query($query_Recordset1$bd_panel_control) or die(mysql_error());
$row_Recordset1 mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 mysql_num_rows($Recordset1);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
</head>

<body>
<form action="<?php echo $editFormAction?>" method="post" name="form1" id="form1">
  <table align="center">
    <tr valign="baseline">
      <td nowrap="nowrap" align="right">Institucion:</td>
      <td><input type="text" name="Institucion" value="<?php echo $row_Recordset1['Institucion']; ?>" size="32" /></td>
    </tr>
    <tr valign="baseline">
      <td nowrap="nowrap" align="right">&nbsp;</td>
      <td><input type="submit" value="Actualizar registro" /></td>
    </tr>
  </table>
  <input type="hidden" name="MM_update" value="form1" />
  <input type="hidden" name="Institucion" value="<?php echo $row_Recordset1['Institucion']; ?>" />
</form>
<p>&nbsp;</p>
</body>
</html>
<?php
mysql_free_result
($Recordset1);
?>
Ese es el codigo PHP

Con respecto a lo que me dijiste, ya lo comienzo a entender un poco...

Pero el codigo que me diste es para hacer un registro predeterminado, por ejemplo si en mi perfil mi institucion es Instituto CPECH y quiero modificarla a travez de un campo de texto para usuarios... no con algo predeterminado

me explico???
  #6 (permalink)  
Antiguo 20/04/2011, 13:52
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años
Puntos: 336
Respuesta: Problema con version Mysql...

si no quieres editar un registro determinado entonces modificaras TODOS los registros, no solo el tuyo, quedaría algo asi:

Código MySQL:
Ver original
  1. UPDATE perfiles SET Institucion='%s';

pero no me parece buena idea hacerlo a no ser que haya solo 1 registro.
  #7 (permalink)  
Antiguo 20/04/2011, 21:19
Avatar de cuervo699  
Fecha de Ingreso: febrero-2011
Mensajes: 104
Antigüedad: 13 años, 1 mes
Puntos: 7
Respuesta: Problema con version Mysql...

Muchas gracias @stramin sin duda hoy dia aprendi algo nuevo y muy necesario, el problema era el envio, me faltaba, lo q tu dijiste SET, esto se soluciono cuando agregue mas datos a la tabla perfiles, hay se genero el SET en dreamweaver

Código PHP:
   $updateSQL sprintf("UPDATE perfiles WHERE Institucion=%s"
Código PHP:
  $updateSQL sprintf("UPDATE perfiles SET Institucion=%s, Nombre=%s, Region=%s WHERE Comuna=%s"
Muchas gracias nuevamente, me siento contento, de que hayan personas como tu, dispuestos a ayudar a los demas...

Etiquetas: 5.1, dreamweaver, mysql, versiones
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 11:13.