Update con php

Iniciado por DeXon18, 14 Febrero 2012, 21:51 PM

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

DeXon18

Hola buenas a todos, tengo un problemilla con un código que ando montando y no tengo manera de que funcione siempre me tira este error:

CitarYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'de la web, descripcionweb=Descripcion de la web, keywords=Keywords, alexaverifyi' at line 1

y ya no se como ponerlo he probado de todas las formas pero nada, si podrían echarme una mano os lo agradecería.

Código (sql) [Seleccionar]
CREATE TABLE IF NOT EXISTS `maca_configuracion` (
  `idconfiguracion` int(1) NOT NULL,
  `tituloweb` varchar(255) NOT NULL,
  `descripcionweb` varchar(255) NOT NULL,
  `keywords` varchar(255) NOT NULL,
  `alexaverifyid` varchar(50) NOT NULL,
  `msvalidate` varchar(50) NOT NULL,
  `google` varchar(50) NOT NULL,
  `adminemail` varchar(100) NOT NULL,
  `personalemail` varchar(100) NOT NULL,
  `titulomensajes` varchar(255) NOT NULL,
  `semanal` varchar(50) NOT NULL,
  `horario` varchar(50) NOT NULL,
  `telefono` varchar(20) NOT NULL,
  `tiempo` int(1) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;


Código (php) [Seleccionar]
<?php
if (!isset($_GET["accion"])){

    echo
'<form method="post" action="http://www.otros.com/index.php?sección=administracion&amp;area=areaconfig&amp;accion=guardar" enctype="multipart/form-data" >
<fieldset>
                 <legend>Configuraci&oacute;n Web</legend>
                 <div>
                     <label for="tituloweb"><strong>Nombre Web</strong>:</label>
                     <input type="text" id="tituloweb" name="tituloweb" size="20" maxlength="127" value="'
.$tituloweb .'"/>
                 </div>
                 <div>
                     <label for="descripcionweb"><strong>Descripcion Web</strong>:</label>
 <textarea name="descripcionweb"  id="descripcionweb" cols="4" rows="4"  maxlength="255"wrap="virtual">'
.$descripcionweb.'</textarea>
                 </div>
 <br /><br /><br /><br />
                 <div>
                     <label for="keywords"><strong>Keywords</strong>:</label>
 <textarea name="keywords"  id="keywords" cols="4" rows="4"  maxlength="255"wrap="virtual">'
.$keywords.'</textarea>
                 </div>
                 <div>
                     <label for="alexaverifyid"><strong>Alexa ID</strong>:</label>
                     <input type="text" id="alexaverifyid" name="alexaverifyid" size="40" maxlength="50" value="'
.$alexaverifyid.'"/>
                 </div>
<div>
                     <label for="msvalidate"><strong>Microsoft Id</strong>:</label>
                     <input type="text" id="msvalidate" name="msvalidate" size="40" maxlength="127" value="'
.$msvalidate.'"/>
                 </div>
 <div>
                     <label for="google"><strong>Google ID</strong>:</label>
                     <input type="text" id="google" name="google" size="40" maxlength="127" value="'
.$google.'"/>
                 </div>
<br /><br />
<div>
                     <label for="adminemail"><strong>Admin Email</strong>:</label>
                     <input type="text" id="adminemail" name="adminemail" size="40" maxlength="127" value="'
.$adminemail.'"/>
                 </div>
 <div>
                     <label for="personalemail"><strong>Personale Email</strong>:</label>
                     <input type="text" id="personalemail" name="personalemail" size="40" maxlength="127" value="'
.$personalemail.'"/>
                 </div>  
<div>
                     <label for="titulomensajes"><strong>Titulos Asunto</strong>:</label>
                     <input type="text" id="titulomensajes" name="titulomensajes" size="40" maxlength="255" value="'
.$titulomensajes.'"/>
                 </div>
 <br /><br />
 <div>
                     <label for="semanal"><strong>Trabajo de:</strong>:</label>
                     <input type="text" id="semanal" name="semanal" size="40" maxlength="127" value="'
.$semanal.'"/>
                 </div>
 <div>
                     <label for="horario"><strong>Horario de</strong>:</label>
                     <input type="text" id="horario" name="horario" size="40" maxlength="127" value="'
.$horario.'"/>
                 </div>
 <div>
                     <label for="telefono"><strong>Tel&eacute;fono</strong>:</label>
                     <input type="text" id="telefono" name="telefono" size="40" maxlength="127" value="'
.$telefono.'"/>
                 </div>
 <div>
                     <label for="tiempo"><strong>El Tiempo</strong>:<br/><small> Ahora:'
; echo ($seccionweb != 0) ? 'Aemet' 'El tiempo'; echo '</label>
<select name="tiempo" id="tiempo" size="1">
  <option>Selecciona...</option>
  <option value="0">Aemet</option>
  <option value="1">El Tiempo</option>
</select>
                 </div>
 <div>
                 <label for="envio">&nbsp;</label>
                    <input name="enviar" value="Enviar" type="submit" class="boton"/>
               </div>
 </form>'
;

}elseif(
$_GET["accion"]== "guardar" ){

// Recojo valores
$tituloweb =$_POST["tituloweb"];
$descripcionweb =$_POST["descripcionweb"];
$keywords =$_POST["keywords"];
$alexaverifyid =$_POST["alexaverifyid"];
$msvalidate =$_POST["msvalidate"];
$google =$_POST["google"];
$adminemail =$_POST["adminemail"];
$personalemail =$_POST["personalemail"];
$titulomensajes =$_POST["titulomensajes"];
$semanal =$_POST["semanal"];
$telefono =$_POST["telefono"];
$tiempo =$_POST["tiempo"];
$idconfiguracion'0';

 
$result =mysql_query("UPDATE ".$prefix."_configuracio SET tituloweb=$tituloweb, descripcionweb=$descripcionweb, keywords=$keywords, alexaverifyid=$alexaverifyid, msvalidate=$msvalidate ,google=$google, adminemail=$adminemail, personalemail=$personalemail, titulomensajes=$titulomensajes, semanal=$semanal, horario=$horario, telefono=$telefono, tiempo=$tiempo WHERE idconfiguracion=='$idconfiguracion'") or die(mysql_error()); 
}

?>



Un saludo y gracias de antemano

cassiani

viendolo por encimita, lo primero que noto es que tu tabla tiene un nombre (`maca_configuracion`) y en tu query usas otro, ademas, no se ve que valor le asignas a $prefix, por lo menos yo no lo veo.

$result =mysql_query("UPDATE ".$prefix."_configuracio SET ...


- no estas filtrando los datos que recibes por post (ojo con eso).

haz un exit antes de que se ejecute la consulta, para que verifiques como te la esta armando..
exit("UPDATE ".$prefix."_configuracio SET tituloweb=$tituloweb, descripcionweb=$descripcionweb, keywords=$keywords,
alexaverifyid=$alexaverifyid,
msvalidate=$msvalidate ,google=$google, adminemail=$adminemail, personalemail=$personalemail, titulomensajes=$titulomensajes,
semanal=$semanal,
horario=$horario, telefono=$telefono, tiempo=$tiempo WHERE idconfiguracion=='$idconfiguracion'");


recuerda que tus campos son NOT NULL..


DeXon18

#2
Hola cassiani, gracias por tu respuesta.

lo 1º cambie las tablas

Código (sql) [Seleccionar]
CREATE TABLE IF NOT EXISTS `maca_configuracion` (
  `idconfiguracion` int(1) NOT NULL,
  `tituloweb` varchar(255) character set utf8 default NULL,
  `descripcionweb` varchar(255) character set utf8 default NULL,
  `keywords` varchar(255) character set utf8 default NULL,
  `alexaverifyid` varchar(50) character set utf8 default NULL,
  `msvalidate` varchar(50) character set utf8 default NULL,
  `google` varchar(50) character set utf8 default NULL,
  `adminemail` varchar(100) character set utf8 default NULL,
  `personalemail` varchar(100) character set utf8 default NULL,
  `titulomensajes` varchar(255) character set utf8 default NULL,
  `semanal` varchar(50) character set utf8 default NULL,
  `horario` varchar(50) character set utf8 default NULL,
  `telefono` varchar(20) character set utf8 default NULL,
  `tiempo` int(1) default NULL
);



Lo puse como tu me comentaste:
Código (php) [Seleccionar]
exit("UPDATE maca_configuracion SET tituloweb=$tituloweb, descripcionweb=$descripcionweb, keywords=$keywords,
alexaverifyid=$alexaverifyid,
msvalidate=$msvalidate ,google=$google, adminemail=$adminemail, personalemail=$personalemail, titulomensajes=$titulomensajes,
semanal=$semanal,
horario=$horario, telefono=$telefono, tiempo=$tiempo WHERE idconfiguracion='$idconfiguracion'");


y aparece se muestra esto
Código (sql) [Seleccionar]
UPDATE maca_configuracion SET
    tituloweb=Nombre Web,
    descripcionweb=Descripcion Web,
    keywords=Keywords,
    alexaverifyid=Alexa ID,
    msvalidate=Microsoft Id,
    google=Google ID,
    adminemail=Admin Email,
    personalemail=Personale Email,
    titulomensajes=Titulos Asunto,
    semanal=Trabajo de,
    horario=Horario de,
    telefono=Teléfono,
    tiempo=0
WHERE idconfiguracion='0'


Pero en cuanto pongo esto
Código (php) [Seleccionar]
$result =mysql_query("UPDATE maca_configuracion SET tituloweb=$tituloweb, descripcionweb=$descripcionweb, keywords=$keywords,
alexaverifyid=$alexaverifyid,
msvalidate=$msvalidate ,google=$google, adminemail=$adminemail, personalemail=$personalemail, titulomensajes=$titulomensajes,
semanal=$semanal,
horario=$horario, telefono=$telefono, tiempo=$tiempo WHERE idconfiguracion='$idconfiguracion'") or die(mysql_error());


me tira el error.
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 'Web, descripcionweb=Descripcion Web, keywords=Keywords, alexaverifyid=Alexa ID,' at line 1

sobre lo del filtrado lo quite momentáneamente por que ya no se de donde podría proceder el error.

Un saludo y gracias de nuevo

cassiani

tus campos son varchar, coloca los valores entre comillas simples:

Código (php) [Seleccionar]
$result =mysql_query("UPDATE maca_configuracion SET tituloweb='$tituloweb', descripcionweb='$descripcionweb', keywords='$keywords',
alexaverifyid='$alexaverifyid',
msvalidate='$msvalidate' ,google='$google', adminemail='$adminemail', personalemail='$personalemail', titulomensajes='$titulomensajes',
semanal='$semanal',
horario='$horario', telefono='$telefono', tiempo='$tiempo' WHERE idconfiguracion=$idconfiguracion") or die(mysql_error());

DeXon18

Ahora si gracias por la solucion!