Comunidad de diseño web y desarrollo en internet online

problemas con UPDATE

Citar            
MensajeEscrito el 01 Jun 2009 11:50 am
hola chicos/as
esta es mi primera pregunta en el foro a ver si hay suerte
estoy intentando modificar unos campos de una tabla en una base de datos a partir de un formulario el problema es ke no me da ningun error pero cuando voy a phpmyadmin no hay cambios.
los datos me llegan de un formulario ,comprobando con echo's los datos se reciben bien.
resulta ke cuando pongo en el Where con dos o tres condiciones no va,probe poniendo cada condicion sola y si ke me va con "cod" pero con "nomprod" o "version" no hace nada.
con esto va:
mysql_query("UPDATE tprodusu SET nomprod='$producto',version='$version',fechainicio='$fechainicio',fechafin='$fechafin'
WHERE ((codigocliente='".$cod."'))");

con esto no va :? :
mysql_query("UPDATE tprodusu SET nomprod='$producto',version='$version',fechainicio='$fechainicio',fechafin='$fechafin'
WHERE ((nomprod='".$prodant."'))");
mysql_query("UPDATE tprodusu SET nomprod='$producto',version='$version',fechainicio='$fechainicio',fechafin='$fechafin'
WHERE ((version='".$versant."'))");

cuando junto las tres no hace nada.
aki dejo mi codigo a ver si veis algo porke yo ya :shock:


<html>
<body>

<?php

function conectarse() {

$db_host="localhost";
$db_nombre="bdsage";
$db_user="root";
$db_pass="";

mysql_connect('localhost',$db_user,$db_pass)

or die("error conectando");

mysql_select_db($db_nombre ) or die("Error seleccionando la base de datos.");

}
conectarse();

$cod=$_POST['cod'];
$nombre=$_POST['id_cliente'];
$prodant=$_POST['prodant'];
$producto=$_POST['select'];
$versant=$_POST['versant'];
$version=$_POST['select2'];
$fechainicio=$_POST['fechaini'];
$fechafin=$_POST['fechafin'];

echo "$cod</br>";
echo "$nombre</br>";
echo "datos anteriores.\n</br>";
echo "$prodant</br>";
echo "$versant</br>";
echo "datos nuevos.\n</br>";
echo "$producto</br>";
echo "$version</br>";
echo "$fechainicio</br>";
echo "$fechafin</br>";

mysql_query("UPDATE tprodusu SET nomprod='$producto',version='$version',fechainicio='$fechainicio',fechafin='$fechafin'
WHERE ((codigocliente='$cod') AND (nomprod='$prodant') AND (version='$versant'))");


echo "datos modificados.\n";

?>
</body>
</html>

gracias por adelantado y perdonad la ignorancia :)

Por yassir

10 de clabLevel



 

firefox
Citar            
MensajeEscrito el 01 Jun 2009 02:59 pm
Un consejo para debuggear tu consulta UPDATE, prueba lo siguiente:

Código :

# Guardas la cadena mysql en una variable
$update = "UPDATE tprodusu SET nomprod='$producto',version='$version',fechainicio='$fechainicio',fechafin='$fechafin'
WHERE ((codigocliente='$cod') AND (nomprod='$prodant') AND (version='$versant'))";
# Imprimes la cadena para corroborar que hace lo que deseas
echo $update
# Ahora ejecutas el mysql_query
$update = mysql_query($update) or die(mysql_error());


Verifica que es lo que $update esta imprimiendo para saber que ahi no esta el error... y luego veremos que esta sucediendo.

Por Necrophasto

Claber

148 de clabLevel



Genero:Masculino  

Diseñador gráfico y web

firefox
Citar            
MensajeEscrito el 01 Jun 2009 03:03 pm
please ayuuuuuuuuuuda

Por yassir

10 de clabLevel



 

firefox
Citar            
MensajeEscrito el 01 Jun 2009 04:55 pm
Probaste debuggear tu UPDATE?

Solucionaste el problema?

Por Necrophasto

Claber

148 de clabLevel



Genero:Masculino  

Diseñador gráfico y web

firefox
Citar            
MensajeEscrito el 02 Jun 2009 07:27 am
hola necrophasto gracias por tu respuesta
perdon por el retraso
acabo de probar lo ke me dijiste y la salida ke me da es:
****************
90 (este es el codigo cliente)
jawad (este es el nombre cliente)
datos anteriores.
facturaplus
basico
datos nuevos.
contaplus
profesional
2009-06-09
2009-06-19
UPDATE tprodusu SET nomprod='contaplus',version='profesional',fechainicio='2009-06-09',fechafin='2009-06-19' WHERE ((codigocliente=' 90 ') AND (nomprod=' facturaplus') AND (version=' basico'))datos modificados.
**********************

tal como lo tengo en los echo's ,recibe bien las variables
pero lo del Update ,ya ves nada.

Por yassir

10 de clabLevel



 

firefox
Citar            
MensajeEscrito el 02 Jun 2009 12:38 pm
Mmm.. continuaremos debuggeando por que no veo el error, a menos que los parentesis sean los que estan armando el rollo... pruebalo sin parentesis... por las dudas y tambien crea una sentencia IF:

Código :

$update = "UPDATE tprodusu SET nomprod='$producto',version='$version',fechainicio='$fechainicio',fechafin='$fechafin'
WHERE codigocliente='$cod' AND nomprod='$prodant' AND version='$versant'";

if (mysql_query($update)) { echo 'Consulta actualizada'; }
else { echo 'Fallo: '.mysql_error(); }


:)

Por Necrophasto

Claber

148 de clabLevel



Genero:Masculino  

Diseñador gráfico y web

firefox
Citar            
MensajeEscrito el 03 Jun 2009 07:51 am
esta es la salida ke me da pero como siempre no ha modificado nada en la bd

------------------------------------
90
jawad
datos anteriores.
facturaplus
basico
datos nuevos.
contaplus
profesional
2009-06-09
2009-06-19
Consulta actualizadadatos modificados.
-------------------------------------------------

Por yassir

10 de clabLevel



 

firefox
Citar            
MensajeEscrito el 03 Jun 2009 12:25 pm
Necesitaria ver la estructura de tu tabla, para ello:

1. Ingresas al PHPMyAdmin
2. Eliges "examinar tprodusu"
3. Eliges "exportar"
4. Dentro de "Opciones SQL" destildas la opcion "Datos" (justo debajo de "Estructura").
5. Das al boton "Continuar"
6. Copias el codigo CREATE TABLE y lo pegas aca.

Se supone que te deberia de actualizar, a menos que el producto con las caracteristicas "WHERE codigocliente=' 90 ' AND nomprod=' facturaplus' AND version=' basico'" no exista, para corroborarlo tendrias que hacer un select de esto:

Código :

# Seleccion del articulo
$sql_select = "SELECT * FROM tprodusu WHERE codigocliente=' 90 ' AND nomprod=' facturaplus' AND version=' basico";
$sql_select = mysql_query($sql_select) or die(mysql_error());
# Obtenemos el total de registros encontrados
$total = mysql_num_rows($sql_select);
# Imprimimos el resultado:
if ($data = mysql_fetch_array($sql_select)) { echo "Se encontro $total registro con estas caracteristicas."; }
else { echo 'No se encontraron resultados con estas caracteristicas.'; }

Eso te dira si hay o no un producto con dichas caracteristicas... y de ahi, si actualiza o no.

No olvides de enviarme la estructura de tu tabla :)

Por Necrophasto

Claber

148 de clabLevel



Genero:Masculino  

Diseñador gráfico y web

firefox
Citar            
MensajeEscrito el 03 Jun 2009 03:39 pm
gracias por tu paciencia
estructura de la tabla tprodusu ke me pediste
----------------------------------------------------- phpMyAdmin SQL Dump
-- version 3.1.1
-- http://www.phpmyadmin.net
--
-- Servidor: localhost
-- Tiempo de generación: 03-06-2009 a las 17:18:09
-- Versión del servidor: 5.1.30
-- Versión de PHP: 5.2.8

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Base de datos: `bdsage`
--

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `tprodusu`
--

CREATE TABLE IF NOT EXISTS `tprodusu` (
`nomprod` varchar(20) COLLATE ucs2_spanish2_ci NOT NULL,
`version` varchar(20) COLLATE ucs2_spanish2_ci NOT NULL,
`codigocliente` int(10) NOT NULL,
`login` varchar(20) COLLATE ucs2_spanish2_ci NOT NULL,
`fechainicio` date NOT NULL,
`fechafin` date NOT NULL,
`numdescargas` int(20) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=ucs2 COLLATE=ucs2_spanish2_ci;

--
-- Volcar la base de datos para la tabla `tprodusu`
--

INSERT INTO `tprodusu` (`nomprod`, `version`, `codigocliente`, `login`, `fechainicio`, `fechafin`, `numdescargas`) VALUES
('nominaplus', 'EliteGold', 80, 'yassir', '2009-05-30', '2009-05-31', 0),
('tpvplus', 'profesional', 84, 'karam', '2009-06-22', '2009-09-16', 0),
('facturaplus', 'basico', 90, 'jawad', '2009-06-06', '2009-06-19', 0),
('nominaplus', 'EliteGold', 90, 'jawad', '2009-06-04', '2009-06-14', 0);

-----------------------------------------------------------------------------------------
y le resultado de lo ke me pusiste
no entiendo ese resultado porke el registro existe
no se, parece como si no se conectase a la bd o algo por el estilo
-----------------------------------------------------

90
jawad
datos anteriores.
facturaplus
basico
datos nuevos.
contaplus
profesional
2009-06-10
2009-06-19
No se encontraron resultados con estas caracteristicas.datos modificados.
--------------------------------------------------------------------------------------------------------

Por yassir

10 de clabLevel



 

firefox
Citar            
MensajeEscrito el 03 Jun 2009 03:43 pm
hay una cosa por comentar pero no se si sirve o no
eske siempre al entrar a phpmyadmin en la tabla sage me acompaña un mensaje de error pero como nunca influyo no le preste atencion aki te lo pongo:
-----------------------------------------
Error

consulta SQL: DocumentaciónEditar

INSERT INTO `phpmyadmin`.`pma_history` (
`username` ,
`db` ,
`table` ,
`timevalue` ,
`sqlquery`
)
VALUES (
'root', 'bdsage', 'tproductos', NOW( ) , 'SELECT * FROM `tproductos`'
)

MySQL ha dicho: Documentación
#1034 - Incorrect key file for table 'pma_history'; try to repair it
----------------------------------------------------------------------------------------------------

Por yassir

10 de clabLevel



 

firefox
Citar            
MensajeEscrito el 03 Jun 2009 03:46 pm
sale en todas las tablas de la base bdsage
tengo hi 3 tablas(tusuarios,tproductos,tprodusu) ejemplo de tprodusu:
--------------------------------------------------
Error

consulta SQL: DocumentaciónEditar

INSERT INTO `phpmyadmin`.`pma_history` (
`username` ,
`db` ,
`table` ,
`timevalue` ,
`sqlquery`
)
VALUES (
'root', 'bdsage', 'tprodusu', NOW( ) , 'SELECT * FROM `tprodusu`'
)

MySQL ha dicho: Documentación
#1034 - Incorrect key file for table 'pma_history'; try to repair it
---------------------------------------

Por yassir

10 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.