Foros del Web » Programando para Internet » PHP »

Problemas con php mysql

Estas en el tema de Problemas con php mysql en el foro de PHP en Foros del Web. Hola, hace un par de dias estoy tratando de hacer un abm, encontre uno muy lindo donde intente modificarlo a mis bases de datos aun ...
  #1 (permalink)  
Antiguo 04/05/2012, 16:31
 
Fecha de Ingreso: julio-2011
Mensajes: 24
Antigüedad: 12 años, 8 meses
Puntos: 0
Problemas con php mysql

Hola, hace un par de dias estoy tratando de hacer un abm, encontre uno muy lindo donde intente modificarlo a mis bases de datos aun no logre hacerlo ya q no me permitia modificar ni agregar datos.
Cansado de renegar me puse a hacer una por mi mismo, pero desgraciadamente tengo el mismo problema no me deja ni editar ni agregar datos.
Revice el codigo cientos de veces en ambos casos pero no logro hacerlo funcionar.
Les paso el codigo del q realice yo q es mucho mas sencillo.

Código:
<?php
mysql_connect("localhost", "root", "root") or die ("No es posible conectar con SQL");
mysql_select_db("productos") or die ("La base de datos no existe o es inalcanzable");
$id=$_GET['md'];
if(isset ($id)){
$resultado = mysql_query("SELECT * FROM producto WHERE id='$id' ");
$campos = mysql_fetch_array($resultado);
}else { print 'no esta definida';
}
?>
<form method="POST" action="resultado.php"> 
<input type="hidden" name="id" value="<?php print $id ?>">
<table border=1>
<tr>
	<td>ID</td>
	<td><input type="text" name="id" value = "<?php print $campos[id] ?>"></td>
</tr>
<tr>
	<td>Nombre</td>
	<td><input type="text" name="nombre" value = "<?php print $campos[nombre] ?>"></td>
</tr>
<tr>
	<td>Descripcion</td>
	<td><label for="desc"></label>
      <textarea name="desc" cols="40" id="desc"><?php print $campos[desc] ?></textarea></td>
</tr>
<tr>
	<td>Foto</td>
	<td><input type="text" name="foto" value = "<?php print $campos[foto] ?>">'yyyy-mm-dd'</td>
</tr>
<tr>
	<td>Precio</td>
	<td><input type="text" name="precio" value = "<?php print $campos[precio] ?>">
	</td>
</tr>
<tr>
	<td>Marca</td>
	<td><input type="text" name="marca"value = "<?php print $campos[marca] ?>"></td>
</tr>
<tr>
	<td></td>
	<td align =right><input type="submit" name="submit" value ="<?php if(is_numeric($id)) print "Modificar"; else print "Ingresar";?>"></td>
</tr>
</table>
</form>
</div>
<?php
print '<br/><br/><table border=1>'
		  .'<tr><td>ID:</td>'
		  .'<td>Nombre:</td>'
		  .'<td>Descripcion:</td>'
		  .'<td>Foto</td>'
		  .'<td>Precio</td>'
		  .'<td>Marca</td>'
		  .'<td>Modificar</td>'
		  .'<td>Borrar</td></tr>';
$datos=mysql_query ("SELECT * FROM producto");
			  while ($campos= mysql_fetch_array ($datos)){
				  
			
print '<tr>'
		  .'<td>'.$campos[id] .'</td>'
		  .'<td>'.$campos[nombre] .'</td>'
		  .'<td>'.$campos[desc] .'</td>'
		  .'<td>'.$campos[foto] .'</td>'
		  .'<td>'.$campos[precio] .'</td>'
		  .'<td>'.$campos[marca] .'</td>'
		  .'<td><a href="admin.php?md='.$campos[id].'">Modificar</a></td>'   
		  .'<td><a href="admin.php?br='.$campos[id].'">Borrar</a></td>'		
		  .'</tr>';
}
print '</table>';

			  


?>
Código:
 <?php
mysql_connect("localhost", "root", "root") or die ("No es posible conectar con SQL");
mysql_select_db("productos") or die ("La base de datos no existe o es inalcanzable");

if (is_numeric ($id)){
$resultado = mysql_query("INSERT INTO producto(desc,nombre,foto,precio,marca)VALUES('$desc','$nombre','$foto','$precio','$marca')") or die (mysql_error());
	if ($resultado){
	echo "los datos fueron agregados correctamente";
	}else{
	echo "ocurrio un error al ingresar los datos solicitados";}
}else{
	$resultado = mysql_query("UPDATE producto SET nombre='$nombre',desc='$desc',foto='$foto',precio='$precio',marca='$marca' WHERE id=$id") or die (mysql_error());
	if ($resultado){
	echo "los datos fueron modificados correctamente";
}else{
	echo "ocurrio un error al modificar los datos solicitados";}
}
?>
Los if ocn la condicional is_numeric no estoy seguro si esta bien, pero igualmente no me funciona.
Es pero me pueda ayudar.
Por si les parece sencillo les paso el otro ejemplo q consegui por internet y quise modificar en el proximo mensaje.

'<td><a href="index.php?md='.$row['id'].'">Modificar</a></td>' // en este ejemplo para simplificar se envian los parametros por get utilizando un href
.'<td><a href="index.php?br='.$row['id'].'">Borrar</a></td>' // lo correcto seria enviarlos por post con un submit por ejem.
.'</tr>';
}
print '</table>';
?>[/CODE]


Muchas Gracias espero me puede ayudar no saben la cantidad de dolores de cabeza q ya he tenido.
  #2 (permalink)  
Antiguo 04/05/2012, 16:31
 
Fecha de Ingreso: julio-2011
Mensajes: 24
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Problemas con php mysql

[CODE]
Código:
<?php
class Conexion  // se declara una clase para hacer la conexion con la base de datos
{
	var $con;
	function Conexion()
		   	 
	{
		// se definen los datos del servidor de base de datos 
		$conection['server']="localhost";  //host
		$conection['user']="root";         //  usuario
		$conection['pass']="root";		//password
		$conection['base']="productos";			//base de datos
		
		
		// crea la conexion pasandole el servidor , usuario y clave
		$conect= mysql_pconnect($conection['server'],$conection['user'],$conection['pass']);


			
		if ($conect) // si la conexion fue exitosa , selecciona la base
		{
			mysql_select_db($conection['base']);			
			$this->con=$conect;
		}
	}
	function getConexion() // devuelve la conexion
	{
		return $this->con;
	}
	function Close()  // cierra la conexion
	{
		mysql_close($this->con);
	}	

}




class sQuery   // se declara una clase para poder ejecutar las consultas, esta clase llama a la clase anterior
{

	var $pconeccion;
	var $pconsulta;
	var $resultados;
	function sQuery()  // constructor, solo crea una conexion usando la clase "Conexion"
	{
		$this->pconeccion= new Conexion();
	}
	function executeQuery($cons)  // metodo que ejecuta una consulta y la guarda en el atributo $pconsulta
	{
		$this->pconsulta= mysql_query($cons,$this->pconeccion->getConexion());
		return $this->pconsulta;
	}	
	function getResults()   // retorna la consulta en forma de result.
	{return $this->pconsulta;}	
	
	function Close()		// cierra la conexion
	{$this->pconeccion->Close();}	
	
	function Clean() // libera la consulta
	{mysql_free_result($this->pconsulta);}
	
	function getResultados() // debuelve la cantidad de registros encontrados
	{return mysql_affected_rows($this->pconeccion->getConexion()) ;}
	
	function getAffect() // devuelve las cantidad de filas afectadas
	{return mysql_affected_rows($this->pconeccion->getConexion()) ;}
}




class Cliente
{
	var $nombre;     //se declaran los atributos de la clase, que son los atributos del cliente
	var $desc;
	var $foto;
	var $precio;
	var $marca;
	var $id;
	function Cliente($nro=0) // declara el constructor, si trae el numero de cliente lo busca , si no, trae todos los clientes
	{
		if ($nro!=0)
		{
			$obj_cliente=new sQuery();
			$result=$obj_cliente->executeQuery("select * from producto where id = $nro"); // ejecuta la consulta para traer al cliente 
			$row=mysql_fetch_array($result);
			$this->id=$row['id'];
			$this->nombre=$row['nombre'];
			$this->desc=$row['desc'];
			$this->foto=$row['foto'];
			$this->precio=$row['precio'];
			$this->marca=$row['marca'];
		}
	}
	function getClientes() // este metodo podria no estar en esta clase, se incluye para simplificar el codigo, lo que hace es traer todos los clientes 
		{
			$obj_cliente=new sQuery();
			$result=$obj_cliente->executeQuery("select * from producto"); // ejecuta la consulta para traer al cliente 
			return $result; // retorna todos los clientes
		}
		
		// metodos que devuelven valores
	function getID()
	 { return $this->id;}
	function getNombre()
	 { return $this->nombre;}
	function getDesc()
	 { return $this->desc;}
	function getFoto()
	 { return $this->foto;}
	function getPrecio()
	 { return $this->precio;}
	 function getMarca()
	 { return $this->marca;}
	 
		// metodos que setean los valores
	function setNombre($val)
	 { $this->nombre=$val;}
	function setDesc($val)
	 {  $this->desc=$val;}
	function setFoto($val)
	 {  $this->foto=$val;}
	function setPrecio($val)
	 {  $this->precio=$val;}
	 function setMarca($val)
	 {  $this->marca=$val;}

	function updateCliente()	// actualiza el cliente cargado en los atributos
	{
			$obj_cliente=new sQuery();
			$query="UPDATE producto SET nombre='$this->nombre', desc='$this->desc', foto='$this->foto', precio='$this->precio', marca='$this->marca' WHERE id=$this->id";
			$obj_cliente->executeQuery($query); // ejecuta la consulta para traer al cliente 
			return $query .'<br/>Registros afectados: '.$obj_cliente->getAffect(); // retorna todos los registros afectados
	}
	function insertCliente()	// inserta el cliente cargado en los atributos
	{
			$obj_cliente=new sQuery();
			$query="INSERT INTO producto (nombre, desc,  foto, precio, marca) VALUES ('$this->nombre', '$this->desc', '$this->foto', '$this->precio', '$this->marca')";
			
			$obj_cliente->executeQuery($query); // ejecuta la consulta para traer al cliente 
			return $query .'<br/>Registros afectados: '.$obj_cliente->getAffect(); // retorna todos los registros afectados
	
	}	
	function deleteCliente($val)	// elimina el cliente
	{
			$obj_cliente=new sQuery();
			$query="delete from producto where id=$val";
			$obj_cliente->executeQuery($query); // ejecuta la consulta para  borrar el cliente
			return $query .'<br/>Registros afectados: '.$obj_cliente->getAffect(); // retorna todos los registros afectados
	
	}	
	
}
	$nombre="";
	$desc="";
	$foto="";
	$cliente="";
	$marca="";
	$id="";

if (isset($_GET['md'])) // si la operacion es modificar, este valor viene seteado y ejecuta el siguiente codigo
{
	$cliente=new Cliente($_GET['md']);  // instancio la clase cliente pasandole el nro de cliente, de esta forma lo busca
	$nombre=$cliente->getNombre();		// obtengo el nombre
	$desc=$cliente->getDesc();	// obtengo el apellido
	$foto=$cliente->getFoto();		// obtengo la fecha de nacimiento
	$precio=$cliente->getPrecio();
	$marca=$cliente->getMarca();			// obtengo su peso 
	$id=$cliente->getID();				// obtengo el id
}
?>

<div >
<form method="POST" action="index.php"> 
<input type="hidden" name="id" value="<?php print $id ?>">
<table border=1>

<tr>
	<td>Nombre</td>
	<td><input type="text" name="nombre" value = "<?php print $nombre ?>"></td>
</tr>
<tr>
	<td>Descripcion</td>
	<td><label for="desc"></label>
      <textarea name="desc" cols="40" id="desc"><?php print $desc ?></textarea></td>
</tr>
<tr>
	<td>Foto</td>
	<td><input type="text" name="foto" value = "<?php print $foto ?>">'yyyy-mm-dd'</td>
</tr>
<tr>
	<td>Precio</td>
	<td><input type="text" name="precio" value = "<?php print $precio ?>">
	formato: XXX.XXasda</td>
</tr>
<tr>
	<td>Marca</td>
	<td><input type="text" name="marca"value = "<?php print $marca ?>"></td>
</tr>
<tr>
	<td></td>
	<td align =right><input type="submit" name="submit" value ="<?php if(is_numeric($id)) print "Modificar"; else print "Ingresar";?>"></td>
</tr>
</table>
</form>
</div>
<?php




if (isset($_POST['submit'])&&!is_numeric($_POST['id'])) // si presiono el boton ingresar
{
	$cliente=new Cliente();
	//print_r($_POST);
	$cliente->setNombre($_POST['nombre']); // setea los datos
	$cliente->setDesc($_POST['desc']);	
	$cliente->setFoto($_POST['foto']);	
	$cliente->setPrecio($_POST['precio']);
	$cliente->setMarca($_POST['marca']);	
	print " Consulta ejecutada: ". $cliente->insertCliente(); // inserta y muestra el resultado
}
if (isset($_POST['submit'])&&is_numeric($_POST['id'])) // si presiono el boton y es modificar
{
	$cliente=new Cliente($_POST['id']);  // instancio la clase pasandole el nro de cliente para cargar los datos
	$cliente->setNombre($_POST['nombre']); // setea los datos nuevos
	$cliente->setDesc($_POST['desc']);	
	$cliente->setFoto($_POST['foto']);	
	$cliente->setPrecio($_POST['precio']);	
	$cliente->setMarca($_POST['marca']);
	print " Consulta ejecutada: ". $cliente->updateCliente(); // inserta y muestra el resultado
}
if (isset($_GET['br'])&&is_numeric($_GET['br'])) // si presiono el boton y es eliminar
{
	$cliente=new Cliente();
	print " Consulta ejecutada: ". $cliente->deleteCliente($_GET['br']); // elimina el cliente y muestra el resultado
}



$cliente=new Cliente();
$clientes= $cliente->getClientes(); // obtiene todos los clientes para despues mostrarlos

print '<br/><br/><table border=1>'
		  .'<tr><td>Nombre:</td>'
		  .'<td>Descripcion:</td>'
		  .'<td>Foto</td>'
		  .'<td>Precio</td>'
		  .'<td>Marca</td>'
		  .'<td>Modificar</td>'
		  .'<td>Borrar</td></tr>';

while ($row=mysql_fetch_Array($clientes)) // recorre los clientes uno por uno hasta el fin de la tabla
{
	print '<tr>'
		  .'<td>'.$row['nombre'] .'</td>'
		  .'<td>'.$row['desc'] .'</td>'
		  .'<td>'.$row['foto'] .'</td>'
		  .'<td>'.$row['precio'] .'</td>'
		  .'<td>'.$row['marca'] .'</td>'
'<td><a href="index.php?md='.$row['id'].'">Modificar</a></td>' // en este ejemplo para simplificar se envian los parametros por get utilizando un href
.'<td><a href="index.php?br='.$row['id'].'">Borrar</a></td>'	 // lo correcto seria enviarlos por post con un submit por ejem.
.'</tr>';
}
print '</table>';
?>
		  .

Última edición por aletutuca; 04/05/2012 a las 16:38

Etiquetas: mysql, sql
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 15:08.