Foros del Web » Programando para Internet » PHP »

llamar procedimiento almacenado de mysql a php

Estas en el tema de llamar procedimiento almacenado de mysql a php en el foro de PHP en Foros del Web. bueno aqui tengo un problema con lo que es para llamar un procedimiento almacenado de mysql a php el procedimiento lo revice y no tiene ...
  #1 (permalink)  
Antiguo 08/10/2011, 18:09
 
Fecha de Ingreso: mayo-2011
Mensajes: 20
Antigüedad: 11 años
Puntos: 1
Pregunta llamar procedimiento almacenado de mysql a php

bueno aqui tengo un problema con lo que es para llamar un procedimiento almacenado de mysql a php el procedimiento lo revice y no tiene ningun error el error es en php tengo 2 tipos de codigos uno es insertar_alumno.php y el otro es registrar_alumno.php aqui pondre el codigo para que me puedan ayudar ya me estoy volviendo loco ya que noc cual es el error y lo mas raro es que al momento que lleno los datos en el formulario me envia a index.php donde en si lo direcciono pero no me registra espero que me puedan ayudar aqui les dejos los codigos php.

insertar_alumno.php
Código PHP:
<?php
//insertar alumnos
$apellido $_POST['txtapellido'];
$nombre $_POST['txtnombre'];
$direccion $_POST['txtdireccion'];
$telefono $_POST['txttelefono'];
$email $_POST['txtemail'];
$cn mysqli_connect("localhost","root","","proyecto");
$rs mysqli_query($cn,"call pa_insalumno('$apellido','$nombre','$direccion','$telefono','$email')");
mysqli_close($cn);
mysqli_error($cn);
header("location:index.php");
?>
registrar_alumno.php
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<?php
$cn
=mysqli_connect("localhost","root","","proyecto");//para conectarse a una base de datos con procedimientos
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="style.css" type="text/css" />
<title>Documento sin t&iacute;tulo</title>
<style type="text/css">
<!--
.Estilo15 {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px;}
.Estilo16 {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-weight: bold;
}
body {
    background-color: #CCCCCC;
}
-->
</style>
</head>

<body>
<table width="968" border="0" align="center" bgcolor="#E6E5BA">
  <tr bgcolor="#E6E5BA">
    <th width="962" scope="col"><p><img src="imagenes/header.jpg" width="940" height="200" /></p>      </th>
  </tr>
  <tr bgcolor="#E6E5BA">
    <th scope="row"><div id="contenido">
    <div class="menu">
    <div id="menu_i"></div>    <div id="menu_d"></div>
    <ul>
        <li><a href="#">Inicio</a></li>
        <li><a href="#">Cursos</a></li>
        <li><a href="#">Quienes</a></li>
        <li><a href="#">Login</a>        </li>
        <li><a href="#">Contacto</a></li>
    </ul>
    </div><!-- fin Menu -->
</div><!--  fin Contenido --></th>
  </tr>
  <tr bgcolor="#E6E5BA">
    <th scope="row"><form id="form9" name="form9" method="post" action="insertar_alumno.php">
      <table width="351" border="0" align="center">
        <tr bgcolor="#B6B04F">
          <th colspan="2" scope="col"><span class="Estilo16">Registrar Alumno</span></th>
        </tr>
        <tr bgcolor="#FFFFFF">
          <th width="120" scope="row"><div align="left"><span class="Estilo15">Apellidos:</span></div></th>
          <td width="215"><label></label>
              <label></label>
              <input type="text" name="txtapellido" id="txtapellido" />          </td>
        </tr>
        <tr bgcolor="#FFFFFF">
          <th scope="row"><div align="left"><span class="Estilo15">Nombre:</span></div></th>
          <td><label>
            <input type="text" name="txtnombre" id="txtnombre" />
            </label>          </td>
        </tr>
        <tr bgcolor="#FFFFFF">
          <th scope="row"><div align="left"><span class="Estilo15">Direccion:</span></div></th>
          <td><label>
            <input type="text" name="txtdireccion" id="txtdireccion" />
            </label>          </td>
        </tr>
        <tr bgcolor="#FFFFFF">
          <th scope="row"><div align="left"><span class="Estilo15">Telefono</span>:</div></th>
          <td><label>
            <input type="text" name="txttelefono" id="txttelefono" />
          </label>          </td>
        </tr>
        <tr bgcolor="#FFFFFF">
          <th scope="row"><div align="left"><span class="Estilo15">E-mail:</span></div></th>
          <td><label>
            <input type="text" name="txtemail" id="txtemail" />
            </label>          </td>
        </tr>
        <tr bgcolor="#FFFFFF">
          <th scope="row">&nbsp;</th>
          <td><label>
            <input type="submit" name="btnregistrar" id="btnregistrar" value="Registrar" />
          </label></td>
        </tr>
      </table>
    </form>    </th>
  </tr>
  <tr bgcolor="#B6B04F">
    <th scope="row">&nbsp;</th>
  </tr>
</table>
</body>
</html>
  #2 (permalink)  
Antiguo 08/10/2011, 18:22
 
Fecha de Ingreso: marzo-2011
Ubicación: Zacatecas
Mensajes: 59
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: llamar procedimiento almacenado de mysql a php

Fijate bien en el procedimiento almacenado las comillas ( " " ) deben de cerrar bien te pongo 1 ejemplo....

<? session_start();

$mysqli = new mysqli("localhost", "root", "root");
$mysqli->select_db("zer");
$Usuario = $_POST['Usuario'];
$Pass = $_POST['Pass'];
$Tipo_Usuario= $_POST['Tipo_Usuario'];
$Nombre= $_POST['Nombre'];
$datos = $mysqli->query("CALL Insertar_Usuario('$Usuario','$Pass','$Tipo_Usuario ','$Nombre ' '$Apat ' '$Amat')");

header('Location:Inicio.php');
?>
  #3 (permalink)  
Antiguo 08/10/2011, 18:27
 
Fecha de Ingreso: marzo-2011
Ubicación: Zacatecas
Mensajes: 59
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: llamar procedimiento almacenado de mysql a php

tambien fijate en el procedimiento almacenado CUANTOS VALORES LE MANDAS Y CUANTOS VALORES LE LLEGAN ME REFIERO A:


CREATE DEFINER=`root`@`localhost` PROCEDURE `Insertar_Usuario`(
IN usu VARCHAR(45),
IN pas VARCHAR(45),
IN tipo VARCHAR(45),
IN nom VARCHAR(45))

BEGIN
DECLARE V INTEGER;
SET V:= (SELECT COUNT(*) FROM usuario WHERE Usuario=usu);
IF V=0 THEN
INSERT INTO usuario(Usuario,Pass,Tipo_Usuario,Nombre)
VALUES(usu,pas,tipo,nom);
ELSE

SELECT 'Ya Existe El Usuario';

END IF;
END
  #4 (permalink)  
Antiguo 08/10/2011, 18:37
 
Fecha de Ingreso: mayo-2011
Mensajes: 20
Antigüedad: 11 años
Puntos: 1
Respuesta: llamar procedimiento almacenado de mysql a php

leoangels modifique con lo que publicastes pero lo que pasa es que no me registra ia probe espero que me puedas ayudar!!! man!
  #5 (permalink)  
Antiguo 08/10/2011, 18:41
 
Fecha de Ingreso: marzo-2011
Ubicación: Zacatecas
Mensajes: 59
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: llamar procedimiento almacenado de mysql a php

pasame tu procedimiento almacenado
  #6 (permalink)  
Antiguo 08/10/2011, 18:41
 
Fecha de Ingreso: mayo-2011
Mensajes: 20
Antigüedad: 11 años
Puntos: 1
Respuesta: llamar procedimiento almacenado de mysql a php

este es el procedimiento que tengo man

DELIMITER |

CREATE PROCEDURE pa_insalumno
(
IN apellido varchar(50),
IN nombre varchar(50),
IN direccion varchar(80),
IN sexo char(20),
IN telefono char(10),
IN email varchar(80),
IN codsemestre int,
IN codestu varchar(11)
)
BEGIN
insert into alumno(alumno.`alumno_apellido`,alumno.`alumno_nom bre`,
alumno.`alumno_direccion`,alumno.`alumno_sexo`,alu mno.`alumno_telefono`,
alumno.`alumno_email`,alumno.`semestre_codigo`,alu mno.`alumno_codest`)
values(apellido,nombre,direccion,sexo,telefono,ema il,codsemestre,codestu);
END|

DELIMITER ;
  #7 (permalink)  
Antiguo 08/10/2011, 18:45
 
Fecha de Ingreso: marzo-2011
Ubicación: Zacatecas
Mensajes: 59
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: llamar procedimiento almacenado de mysql a php

De simple vista vi tu error esperame xD t mencione que checaras cuantos valores mandaba y insertabas en tu procedimiento
  #8 (permalink)  
Antiguo 08/10/2011, 18:53
 
Fecha de Ingreso: marzo-2011
Ubicación: Zacatecas
Mensajes: 59
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: llamar procedimiento almacenado de mysql a php

CREATE DEFINER=`root`@`localhost` PROCEDURE `pa_insalumno`(
IN ape VARCHAR(50),
IN nom VARCHAR(50),
IN dir VARCHAR(50),
IN tel VARCHAR(50),
IN ema VARCHAR(50))
BEGIN

INSERT INTO alumno(alumno_apellido,alumno_nombre,alumno_direcc ion,alumno_telefono,alumno_email)
VALUES(ape,nom,dir,tel,ema);

END


INTENTA ASI
  #9 (permalink)  
Antiguo 08/10/2011, 19:05
 
Fecha de Ingreso: mayo-2011
Mensajes: 20
Antigüedad: 11 años
Puntos: 1
Respuesta: llamar procedimiento almacenado de mysql a php

este es el procedimiento que tengo man

DELIMITER |

CREATE PROCEDURE pa_insalumno
(
IN apellido varchar(50),
IN nombre varchar(50),
IN direccion varchar(80),
IN sexo char(20),
IN telefono char(10),
IN email varchar(80)
)
BEGIN
insert into alumno(alumno.`alumno_apellido`,alumno.`alumno_nom bre`,
alumno.`alumno_direccion`,alumno.`alumno_sexo`,alu mno.`alumno_telefono`,
alumno.`alumno_email`)
values(apellido,nombre,direccion,sexo,telefono,ema il);
END|

DELIMITER ;
  #10 (permalink)  
Antiguo 08/10/2011, 19:17
 
Fecha de Ingreso: marzo-2011
Ubicación: Zacatecas
Mensajes: 59
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: llamar procedimiento almacenado de mysql a php

OK...EN TU FORMULARIO TIENES 5 INPUTS SI TE FIJAS EN EL PROCEDIMIENTO SOLO LE INSERTAS 5 --> $apellido','$nombre','$direccion','$telefono','$em ail')
Y IGUAL RECIBE 5 POR POST

$apellido = $_POST['txtapellido'];
$nombre = $_POST['txtnombre'];
$direccion = $_POST['txtdireccion'];
$telefono = $_POST['txttelefono'];
$email = $_POST['txtemail'];
Y EN EL PROCEDIMIENTO ALMACENADO LE ESTAS DICIENDO QUE TE INSERTE 6
IN apellido varchar(50),
IN nombre varchar(50),
IN direccion varchar(80),
IN sexo char(20),
IN telefono char(10),
IN email varchar(80)


values(apellido,nombre,direccion,sexo,telefono,ema il);

DESDE 1 PRINCIPIO TE MENCIONE QUE VERIFICARAS CUANTOS REGISTROS MANDABAS Y CUANTOS INSERTABAS SALUDOS
  #11 (permalink)  
Antiguo 08/10/2011, 19:28
 
Fecha de Ingreso: mayo-2011
Mensajes: 20
Antigüedad: 11 años
Puntos: 1
Respuesta: llamar procedimiento almacenado de mysql a php

Gracias man ese fue mi error me olvide de un textbox en el formulario graciaz!!!! leoangels
  #12 (permalink)  
Antiguo 08/10/2011, 19:48
 
Fecha de Ingreso: marzo-2011
Ubicación: Zacatecas
Mensajes: 59
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: llamar procedimiento almacenado de mysql a php

De nada si lo pudiste resolver?
  #13 (permalink)  
Antiguo 08/10/2011, 20:07
 
Fecha de Ingreso: mayo-2011
Mensajes: 20
Antigüedad: 11 años
Puntos: 1
Respuesta: llamar procedimiento almacenado de mysql a php

si man fue el textbox que me faltaba ese era el problema man nose si me podrias ayudar en otro error.
  #14 (permalink)  
Antiguo 09/10/2011, 01:25
 
Fecha de Ingreso: marzo-2011
Ubicación: Zacatecas
Mensajes: 59
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: llamar procedimiento almacenado de mysql a php

Que bueno que lo ayas resolvido que otro eerrorr??? yo tmb soy novato pero aqui andamos dime ya sabes

Etiquetas: mysql, mysql+php, procedimiento_almacenado
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 02:17.