Foros del Web » Programando para Internet » PHP »

Error MySQL con WHERE

Estas en el tema de Error MySQL con WHERE en el foro de PHP en Foros del Web. Hola, antes que nada gracias a todos por todo lo que me han ayudado ;D siempre tengo una respuesta satisfactoria. Esta vez mi problema es ...
  #1 (permalink)  
Antiguo 07/11/2005, 16:56
 
Fecha de Ingreso: mayo-2004
Ubicación: Santiago
Mensajes: 122
Antigüedad: 19 años, 11 meses
Puntos: 0
Error MySQL con WHERE

Hola, antes que nada gracias a todos por todo lo que me han ayudado ;D siempre tengo una respuesta satisfactoria.
Esta vez mi problema es en una consulta SQL.
Esto haciendo esto:
Código PHP:
$sql "UPDATE tabla SET campo1='$valor', campo2='$valor2') WHERE nombre='$target'";
mysql_query($sql) or die (mysql_error()); 
target es una variable que obtengo desde un formulario, supongamos que
$target = "Juego numero 1";
El error que me da es el siguiente:
Código:
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ') WHERE nombre='Juego numero 1'' at line 1
-> Nota: Me doy cuenta que me pone dos comillas simples ('') después de Juego numero 1 en el error mientras que tengo en mi script una simple y luego una doble que cierra la variable ('"), nosé si esto sea importante..

Espero que entiendan mi error y alguien encuentre una solución, gracias desde ya.
__________________
http://www.xtasy.cl
  #2 (permalink)  
Antiguo 07/11/2005, 17:06
 
Fecha de Ingreso: noviembre-2005
Mensajes: 58
Antigüedad: 18 años, 5 meses
Puntos: 0
Por lo que escribiste de codigo php estas cerrando un ) que nunca abriste.

$sql = "UPDATE tabla SET campo1='$valor', campo2='$valor2') WHERE nombre='$target'";

Saludos,
pancarne.
  #3 (permalink)  
Antiguo 07/11/2005, 17:21
 
Fecha de Ingreso: mayo-2004
Ubicación: Santiago
Mensajes: 122
Antigüedad: 19 años, 11 meses
Puntos: 0
Hola pancarne, la verdad me haz dejado sin palabras XDD estuve media hora perdiendo el tiempo, solo estaba viendo la parte del WHERE y no el resto de la consulta, efectivamente el error era ese :S.. muchas gracias por tu respuesta.
Aprovecho de preguntar...
Cómo muestro en un campo de select todos los resultados de una consulta mysql?
Lo que estoy haciendo es esto:
Código PHP:
<?
require("../../config.php");
$sql "SELECT nombre FROM tabla ORDER BY nombre";
$query mysql_query($sql);
while (
$result mysql_fetch_array($query)) {
    
$lista stripslashes($result["nombre"]);
}
?>
<select name="target"><option value="<?= $lista ?>"><?php echo $lista;  ?></option></select>
Pero sólo me muestra un resultado, mientras que tengo registros en ese campo.
El código ese es totalmente improvizado, asique un problema era de esperar.
Gracias otra vez ;D
__________________
http://www.xtasy.cl
  #4 (permalink)  
Antiguo 07/11/2005, 17:30
Avatar de gonzalezmfrank  
Fecha de Ingreso: julio-2005
Ubicación: Maracaibo - Venezuela
Mensajes: 266
Antigüedad: 18 años, 9 meses
Puntos: 0
Asi...

Código PHP:
echo "<tr>
  <td><font color='#006633'><b>»</b></font> Pais : </td>
  <td>"
;
  
// Select para definir una opcion del pais para buscar luego la ciudad con el valor del pais
   
echo "<select name=\"ka_cod_pais\" onChange=\"this.form.submit()\">\n";
   echo 
"<option value=\"\"> Seleccione un Pais </option>\n"
   
$p1=mysql_query("SELECT * FROM ka_pais");
   While   (
$registro_pais=mysql_fetch_assoc($p1)){
      
// Se mira si el ID del registro es el mismo q el $id_padre q recibimos si hemos cambiado el select hijo.
      // Se selecciona en consecuencia (selected) la opción elegida.
      
if ($ka_cod_pais == $registro_pais['cod_pais']){
         echo 
"<option value=\"".$registro_pais['cod_pais']."\" selected>".$registro_pais['nom_pais']."</option>\n";
      } else {
         echo 
"<option value=\"".$registro_pais['cod_pais']."\">".$registro_pais['nom_pais']."</option>\n";
      }
    }
   echo 
"</select>\n\n"
echo 
"
   </td>
</tr>"

Saludos
  #5 (permalink)  
Antiguo 07/11/2005, 17:58
 
Fecha de Ingreso: mayo-2004
Ubicación: Santiago
Mensajes: 122
Antigüedad: 19 años, 11 meses
Puntos: 0
Hola Frank, gracias por tu respuesta, pero la verdad no entiendo el código, y hablas de País y Cuidad, entendí que es un ejemplo, pero yo lo único que quiero es que en un select aparescan todos los valores del campo "nombre" de la tabla "articulos".
Me imagino que debe haber una manera mas sencilla.
Gracias.
__________________
http://www.xtasy.cl
  #6 (permalink)  
Antiguo 07/11/2005, 18:04
 
Fecha de Ingreso: noviembre-2005
Mensajes: 58
Antigüedad: 18 años, 5 meses
Puntos: 0
Cita:
Iniciado por Zhak
Hola pancarne, la verdad me haz dejado sin palabras XDD estuve media hora perdiendo el tiempo, solo estaba viendo la parte del WHERE y no el resto de la consulta, efectivamente el error era ese :S.. muchas gracias por tu respuesta.
Aprovecho de preguntar...
Cómo muestro en un campo de select todos los resultados de una consulta mysql?
Lo que estoy haciendo es esto:
Código PHP:
<?
require("../../config.php");
$sql "SELECT nombre FROM tabla ORDER BY nombre";
$query mysql_query($sql);
while (
$result mysql_fetch_array($query)) {
    
$lista stripslashes($result["nombre"]);
}
?>
<select name="target"><option value="<?= $lista ?>"><?php echo $lista;  ?></option></select>
Pero sólo me muestra un resultado, mientras que tengo registros en ese campo.
El código ese es totalmente improvizado, asique un problema era de esperar.
Gracias otra vez ;D
Tenes que meter el echo $lista dentro del while

Y no te hagas drama por lo del otro error, a mi me pasa muchas veces, por eso siempre es bueno pedirle a otra persona que revise tu codigo.

Saludos,
pancarne.
  #7 (permalink)  
Antiguo 08/11/2005, 05:30
Avatar de gonzalezmfrank  
Fecha de Ingreso: julio-2005
Ubicación: Maracaibo - Venezuela
Mensajes: 266
Antigüedad: 18 años, 9 meses
Puntos: 0
Ok.... lo que hace el código que te envié es definir un valor si existe un ID o Clave dentro de tu BD para asignar este a la variable y no su descripcion.

Me explico ... si tu tabla se llama "TABLA_NOMBRE" y este tiene los campos ID y NOMBRE

Quedaria
Código PHP:
echo "<tr>
  <td><font color='#006633'><b>»</b></font> Pais : </td>
  <td>"
;
  
// Select para definir una opcion de TABLA_NOMBRE 
   
echo "<select name=\"id_nombre\" onChange=\"this.form.submit()\">\n";
   echo 
"<option value=\"\"> Seleccione ... </option>\n";
   
$p1=mysql_query("SELECT ID,NOMBRE FROM TABLA_NOMBRE");
   While   (
$registros=mysql_fetch_assoc($p1)){
      
      if (
$id_nombre == $registros['ID']){
         echo 
"<option value=\"".$registros['ID']."\" selected>".$registros['NOMBRE']."</option>\n";
      } else {
         echo 
"<option value=\"".$registros['ID']."\">".$registros['NOMBRE']."</option>\n";
      }
    }
   echo 
"</select>\n\n";
echo 
"
   </td>
</tr>"

Esto te permitiria ..

1.- Desplegar los nombres.
2.- Asignar los valores del campo ID a la variable id_nombre y la puedes utilizar posteriormente
3.- Si deseas hacer una consulta, asignas la variable (ID) donde la guardaste, a la variable id_nombre y te despliega el Select pero con el nombre ya seleccionado

De la forma como la mencionaste en el ejemplo, como dice pancarne desplegarias el nombre pero asignarias el nombre y debes evaluar si deseas guardar toda la informacion o una clave para buscarla posteriormente

Saludos

Frank
  #8 (permalink)  
Antiguo 08/11/2005, 13:55
 
Fecha de Ingreso: mayo-2004
Ubicación: Santiago
Mensajes: 122
Antigüedad: 19 años, 11 meses
Puntos: 0
Muchas gracias a los dos, me han solucionado todos mis problemas! ;D
al final hice lo siguiente:
Código PHP:
<?php
require("../../config.php");
echo 
"<select name=\"target\" onChange=\"this.form.submit()\">\n";
echo 
"<option value=\"\">Selecciona ... </option>\n";
$sql=mysql_query("SELECT nombre FROM juegos ORDER BY nombre");
while (
$result=mysql_fetch_assoc($sql)) {    
    if (
$target == $result['nombre']) {
        echo 
"<option value=\"".$result['nombre']."\" selected>".$result['nombre']."</option>\n";
    } else {
        echo 
"<option value=\"".$result['nombre']."\">".$result['nombre']."</option>\n";
    }
}
?>
__________________
http://www.xtasy.cl
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 01:08.