Foros del Web » Programando para Internet » PHP »

condicionales para cuando no se puede insertar en base de datos

Estas en el tema de condicionales para cuando no se puede insertar en base de datos en el foro de PHP en Foros del Web. hola amigos espero que esten bien una pregunta muy basica supongo; pero casi no tengo conocimiento de php y bueno se me ha complicado poner ...
  #1 (permalink)  
Antiguo 21/05/2011, 10:58
 
Fecha de Ingreso: diciembre-2007
Mensajes: 96
Antigüedad: 16 años, 10 meses
Puntos: 2
condicionales para cuando no se puede insertar en base de datos

hola amigos espero que esten bien

una pregunta muy basica supongo; pero casi no tengo conocimiento de php y bueno se me ha complicado poner un condicional para cuando no se puede insertar un dato en la base de datos mande un mensaje o se rediriga a una pagina, para mas detalles , he creado un boton de favoritos el cual no funciona si no se ha iniciado session lo cual lo bloquee desde la base de datos y me sale este mensaje "Column 'usuarioID' cannot be null" (despues de presionar el boton se redirecciona a la misma pagina donde esta el boton) pero bueno quisiera que saliera "necesitas estar registrado para utilizar esta funcion" o algo parecido en vez del mensaje "column usuario cannot be null" o que lo rediriga a una pgina donde pueda loguearse por si se le olvido o en la misma pagina se pueda registrar.


en lo que me quieran ayudar me sirve.
  #2 (permalink)  
Antiguo 21/05/2011, 11:04
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años, 7 meses
Puntos: 461
Respuesta: condicionales para cuando no se puede insertar en base de datos

Pues necesitas mostrarnos el codigo, para poder ayudarte saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #3 (permalink)  
Antiguo 21/05/2011, 11:06
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 6 meses
Puntos: 1517
Respuesta: condicionales para cuando no se puede insertar en base de datos

Solo es cuestión de usar algo como
Código PHP:
Ver original
  1. mysql_error('aqui va tu consulta') or die('Error en la consulta');
Pero para verificar antes de hacer la consulta, solo tienes que hacer algo como
Código PHP:
Ver original
  1. <?php
  2. // conexión a la base de datos e información necesaria
  3. if(empty($_POST['foo']) || empty($_POST['bar'])){
  4.     header('Location: formulario.php?error=No puedes dejar el campo foo vacio y/o el bar');
  5.     exit;
  6. }
  7. // otra información...
formulario.php
Código PHP:
Ver original
  1. <?php
  2. if(array_key_exists('error', $_GET)){
  3.     echo $_GET['error'];
  4. }
  5. ?>
  6. <form ......
Pasa por el wiki de este foro para que veas un buen manual para que te ayude a desenvolverte...
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #4 (permalink)  
Antiguo 21/05/2011, 11:26
 
Fecha de Ingreso: diciembre-2007
Mensajes: 96
Antigüedad: 16 años, 10 meses
Puntos: 2
Respuesta: condicionales para cuando no se puede insertar en base de datos

Cita:
Iniciado por carlos_belisario Ver Mensaje
Pues necesitas mostrarnos el codigo, para poder ayudarte saludos

<?php require_once('Connections/conectionmndct.php'); ?>
<?php
// *** Validate request to login to this site.
if (!isset($_SESSION)) {
session_start();
}
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
}

$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}

$currentPage = $_SERVER["PHP_SELF"];

$maxRows_jrusuariotestimonio = 5;
$pageNum_jrusuariotestimonio = 0;
if (isset($_GET['pageNum_jrusuariotestimonio'])) {
$pageNum_jrusuariotestimonio = $_GET['pageNum_jrusuariotestimonio'];
}
$startRow_jrusuariotestimonio = $pageNum_jrusuariotestimonio * $maxRows_jrusuariotestimonio;

$colname_jrusuariotestimonio = "-1";
if (isset($_SESSION['MM_Username'])) {
$colname_jrusuariotestimonio = $_SESSION['MM_Username'];
}
mysql_select_db($database_mntmnt, $mntmnt);
$query_jrusuariotestimonio = sprintf("SELECT usuarios.Nombre, usuarios.usuario, usuarios.usuarioID, favoritos.favoritoID, favoritos.favorito FROM favoritos INNER JOIN usuarios ON usuarios.usuarioID = favoritos.usuarioID WHERE usuario = %s ORDER BY favoritoID DESC", GetSQLValueString($colname_jrusuariotestimonio, "text"));
$query_limit_jrusuariotestimonio = sprintf("%s LIMIT %d, %d", $query_jrusuariotestimonio, $startRow_jrusuariotestimonio, $maxRows_jrusuariotestimonio);
$jrusuariotestimonio = mysql_query($query_limit_jrusuariotestimonio, $mntmnt) or die(mysql_error());
$row_jrusuariotestimonio = mysql_fetch_assoc($jrusuariotestimonio);

if (isset($_GET['totalRows_jrusuariotestimonio'])) {
$totalRows_jrusuariotestimonio = $_GET['totalRows_jrusuariotestimonio'];
} else {
$all_jrusuariotestimonio = mysql_query($query_jrusuariotestimonio);
$totalRows_jrusuariotestimonio = mysql_num_rows($all_jrusuariotestimonio);
}
$totalPages_jrusuariotestimonio = ceil($totalRows_jrusuariotestimonio/$maxRows_jrusuariotestimonio)-1;

$queryString_jrusuariotestimonio = "";
if (!empty($_SERVER['QUERY_STRING'])) {
$params = explode("&", $_SERVER['QUERY_STRING']);
$newParams = array();
foreach ($params as $param) {
if (stristr($param, "pageNum_jrusuariotestimonio") == false &&
stristr($param, "totalRows_jrusuariotestimonio") == false) {
array_push($newParams, $param);
}
}
if (count($newParams) != 0) {
$queryString_jrusuariotestimonio = "&" . htmlentities(implode("&", $newParams));
}
}
$queryString_jrusuariotestimonio = sprintf("&totalRows_jrusuariotestimonio=%d%s", $totalRows_jrusuariotestimonio, $queryString_jrusuariotestimonio);
?>

gracias por tu ayuda
  #5 (permalink)  
Antiguo 21/05/2011, 11:41
 
Fecha de Ingreso: diciembre-2007
Mensajes: 96
Antigüedad: 16 años, 10 meses
Puntos: 2
Respuesta: condicionales para cuando no se puede insertar en base de datos

trabajando en ello les informo pronto como va el asunto
  #6 (permalink)  
Antiguo 21/05/2011, 11:46
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años, 7 meses
Puntos: 461
Respuesta: condicionales para cuando no se puede insertar en base de datos

el error que te esta dando el mysql es porque cuando no tienes validacion, la funcion que te dio abimaelrc, es justamente eso que debes de hacer?? adaptarla a tu codigo, ahora unas cuantas recomendaciones para que se vaya mejorando la identación y el codigo general que hagas con PHP.

-La funcion session_start(); debe de ir siempre al comienzo de la pagina incluso antes de incluir otros archivos y cualquier codigo que vayas a hacer.
-Identar el codigo, que significa esto?? sencillamente darle a la tecla tabulador en los bucles y funciones ejemplo
Código PHP:
Ver original
  1. if(condicion){
  2.     echo "identado";
  3. }
de tal manera que se sepa a cual estructura pertenece el codigo que estas haciendo.
Espero que te los pequeños concejos te puedan ayudar, porque la solucion como tal ya te la habia dado abimaelrc. saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #7 (permalink)  
Antiguo 21/05/2011, 11:52
 
Fecha de Ingreso: diciembre-2007
Mensajes: 96
Antigüedad: 16 años, 10 meses
Puntos: 2
Respuesta: condicionales para cuando no se puede insertar en base de datos

Cita:
Iniciado por carlos_belisario Ver Mensaje
el error que te esta dando el mysql es porque cuando no tienes validacion, la funcion que te dio abimaelrc, es justamente eso que debes de hacer?? adaptarla a tu codigo, ahora unas cuantas recomendaciones para que se vaya mejorando la identación y el codigo general que hagas con PHP.

-La funcion session_start(); debe de ir siempre al comienzo de la pagina incluso antes de incluir otros archivos y cualquier codigo que vayas a hacer.
-Identar el codigo, que significa esto?? sencillamente darle a la tecla tabulador en los bucles y funciones ejemplo
Código PHP:
Ver original
  1. if(condicion){
  2.     echo "identado";
  3. }
de tal manera que se sepa a cual estructura pertenece el codigo que estas haciendo.
Espero que te los pequeños concejos te puedan ayudar, porque la solucion como tal ya te la habia dado abimaelrc. saludos
gracias por la respuesta y bueno lo del error yo lo puse al proposito en la base de datos para que no se insertara datos si no se ha iniciado una sesion pero solo queria lo del mensaje gracias
  #8 (permalink)  
Antiguo 21/05/2011, 11:56
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años, 7 meses
Puntos: 461
Respuesta: condicionales para cuando no se puede insertar en base de datos

eso que hiciste que te de el error con mysql_error esta bien hecho, inclusive es recomendable ya que es necesario saber cuando algo anda mal en nuestros codigos porque todos nos equivocamos alguna vez, ahora que?? has las validaciones y te aseguro que no te dara ningun error ya que con la validacion no deberia nisiquiera hacer la consulta, sino que mandarte al sitio donde tienes el formulario y mostrarte el error, tambien deberias de validar en el cliente con javascript de tal manera que evites hacer peticiones al servidor, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #9 (permalink)  
Antiguo 21/05/2011, 12:39
 
Fecha de Ingreso: diciembre-2007
Mensajes: 96
Antigüedad: 16 años, 10 meses
Puntos: 2
Respuesta: condicionales para cuando no se puede insertar en base de datos

OK resuelto gracias por la ayuda Carlos y abimaelrc

Última edición por GatorV; 21/05/2011 a las 16:40

Etiquetas: condicionales
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 12:55.