Foros del Web » Programando para Internet » PHP »

Echarme un cable con un insert, porfa !

Estas en el tema de Echarme un cable con un insert, porfa ! en el foro de PHP en Foros del Web. (RESUELTO) Antes de nada buenas noches, Tengo un INSERT INTO que es para agregar 1 producto en varias categorias (3 para ser mas preciso). Si ...
  #1 (permalink)  
Antiguo 10/01/2009, 18:26
Avatar de b0zZy  
Fecha de Ingreso: enero-2009
Ubicación: Francia
Mensajes: 28
Antigüedad: 15 años, 3 meses
Puntos: 0
De acuerdo (RESUELTO) Echarme un cable con un insert, porfa !

(RESUELTO) Antes de nada buenas noches,
Tengo un INSERT INTO que es para agregar 1 producto en varias categorias (3 para ser mas preciso). Si selecciono una opcion de cada 1 de los 3 se grava en la bd bien , pero si elijo solo 1 o 2 de los 3 , se gravan siempre los 3 aunque 2 lo hagan sin la categoria.
No se si soy lo suficientemente claro pero haver, aqui dejo la funcion INSERT, que viene de un form con 3 Listas posibles para selecionar (catId, catId2 y catId3).

function addProduct()
{
$catId = $_POST['cboCategory'];
$catId2 = $_POST['cboCategory2'];
$catId3 = $_POST['cboCategory3'];
$name = $_POST['txtName'];
$auteur = $_POST['txtAuteur'];
$editeur = $_POST['txtEditeur'];
$anne = $_POST['txtAnne'];
$lieu = $_POST['txtLieu'];
$ilustrateur = $_POST['txtIlustrateur'];
$reliure = $_POST['txtReliure'];
$format = $_POST['txtFormat'];
$key = $_POST['txtKey'];
$isbn = $_POST['txtIsbn'];
$ref = $_POST['txtRef'];
$etat = $_POST['txtEtat'];
$description = $_POST['mtxDescription'];
$price = str_replace(',', '', (double)$_POST['txtPrice']);
$qty = (int)$_POST['txtQty'];

$images = uploadProductImage('fleImage', SRV_ROOT . 'images/product/');

$mainImage = $images['image'];
$thumbnail = $images['thumbnail'];

$sql = "INSERT INTO tbl_product (cat_id, pd_titre, pd_auteur, pd_editeur, pd_anne_edition, pd_ilustrateur, pd_lieu, pd_keyword, pd_reliure, pd_format, pd_isbn, pd_ref, pd_etat, pd_descriptif, pd_price, pd_qty, pd_image, pd_thumbnail, pd_date)
VALUES ('$catId', '$name', '$auteur', '$editeur', '$anne', '$ilustrateur', '$lieu', '$key', '$reliure', '$format', '$isbn', '$ref', '$etat', '$description', $price, $qty, '$mainImage', '$thumbnail', NOW()),
('$catId2', '$name', '$auteur', '$editeur', '$anne', '$ilustrateur', '$lieu', '$key', '$reliure', '$format', '$isbn', '$ref', '$etat', '$description', $price, $qty, '$mainImage', '$thumbnail', NOW()),
('$catId3', '$name', '$auteur', '$editeur', '$anne', '$ilustrateur', '$lieu', '$key', '$reliure', '$format', '$isbn', '$ref', '$etat', '$description', $price, $qty, '$mainImage', '$thumbnail', NOW())";


$result = dbQuery($sql);

header("Location: index.php?catId=$catId");
}
A ver si ahora tengo contestaciones !!
Gracias de antemano

Última edición por b0zZy; 19/01/2009 a las 12:44 Razón: RESUELTO
  #2 (permalink)  
Antiguo 10/01/2009, 18:44
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 9 meses
Puntos: 32
te falta el values despues de tbl_product

asi

$sql = "INSERT INTO tbl_product values (cat_id, pd_titre, pd_auteur, pd_editeur, pd_anne_edition, pd_ilustrateur, pd_lieu, pd_keyword, pd_reliure, pd_format, pd_isbn, pd_ref, pd_etat, pd_descriptif, pd_price, pd_qty, pd_image, pd_thumbnail, pd_date)
VALUES ('$catId', '$name', '$auteur', '$editeur', '$anne', '$ilustrateur', '$lieu', '$key', '$reliure', '$format', '$isbn', '$ref', '$etat', '$description', $price, $qty, '$mainImage', '$thumbnail', NOW()),
('$catId2', '$name', '$auteur', '$editeur', '$anne', '$ilustrateur', '$lieu', '$key', '$reliure', '$format', '$isbn', '$ref', '$etat', '$description', $price, $qty, '$mainImage', '$thumbnail', NOW()),
('$catId3', '$name', '$auteur', '$editeur', '$anne', '$ilustrateur', '$lieu', '$key', '$reliure', '$format', '$isbn', '$ref', '$etat', '$description', $price, $qty, '$mainImage', '$thumbnail', NOW())";

aaaa no sorry ya lo vi xD

Última edición por GatorV; 11/01/2009 a las 13:12
  #3 (permalink)  
Antiguo 11/01/2009, 03:38
Avatar de b0zZy  
Fecha de Ingreso: enero-2009
Ubicación: Francia
Mensajes: 28
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Echarme un cable con un insert, porfa !

Gracias de todas formas acoevil !
Kreo k me falta un array por si el campo catId2 y catId3 estan vacios, para que no haga el INSERT INTO, pero no llego a conseguirlo !
  #4 (permalink)  
Antiguo 14/01/2009, 09:45
Avatar de b0zZy  
Fecha de Ingreso: enero-2009
Ubicación: Francia
Mensajes: 28
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Echarme un cable con un insert, porfa !

No, nadie !? Una alma caridosa que entienda un poco de esto y me ilumine el dia .
  #5 (permalink)  
Antiguo 19/01/2009, 03:38
Avatar de b0zZy  
Fecha de Ingreso: enero-2009
Ubicación: Francia
Mensajes: 28
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Echarme un cable con un insert, porfa !

Sera que no me explico bien !? Sera que este tema ya esta en otra seccion !? (he buscado pero nada encontrado !)
Que tengo que hacer !? A ver si hay por ahy un poquito de caridad ...
Gracias
  #6 (permalink)  
Antiguo 19/01/2009, 03:47
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.627
Antigüedad: 19 años, 6 meses
Puntos: 48
Respuesta: Echarme un cable con un insert, porfa !

Haz un var_dump($_POST) para ver que recibes, quizas no es lo que esperabas.
  #7 (permalink)  
Antiguo 19/01/2009, 03:59
Avatar de b0zZy  
Fecha de Ingreso: enero-2009
Ubicación: Francia
Mensajes: 28
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Echarme un cable con un insert, porfa !

Cita:
Iniciado por DarkJ Ver Mensaje
Haz un var_dump($_POST) para ver que recibes, quizas no es lo que esperabas.
Hola DarkJ,
Gracias por tu ayuda pero estoy un poco verde en esto y no entiendo muy bien donde hacer ese var_dump($_POST)
seria algo asin :
$catId =var_dump($_POST)['cboCategory'];
$catId2 =var_dump($_POST)['cboCategory2'];
$catId3 =var_dump($_POST)['cboCategory3'];

Gracias una vez mas
  #8 (permalink)  
Antiguo 19/01/2009, 04:01
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.627
Antigüedad: 19 años, 6 meses
Puntos: 48
Respuesta: Echarme un cable con un insert, porfa !

www.php.net/var_dump
  #9 (permalink)  
Antiguo 19/01/2009, 04:31
Avatar de b0zZy  
Fecha de Ingreso: enero-2009
Ubicación: Francia
Mensajes: 28
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Echarme un cable con un insert, porfa !

No llego a tanto DarkJ,
He puesto:
<?php
$catId = array(1, 2, array("catId", "catId2", "catId3"));
var_dump ($catId);
?>
Pero no entiendo muy bien lo que tengo o como lo tengo que poner .
  #10 (permalink)  
Antiguo 19/01/2009, 04:43
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.627
Antigüedad: 19 años, 6 meses
Puntos: 48
Respuesta: Echarme un cable con un insert, porfa !

Coloca var_dump($_POST); dentro del codigo que recibe el formulario para ver las variables como realmente las recibes.
  #11 (permalink)  
Antiguo 19/01/2009, 05:37
Avatar de b0zZy  
Fecha de Ingreso: enero-2009
Ubicación: Francia
Mensajes: 28
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Echarme un cable con un insert, porfa !

DarkJ, me podrias poner el exemplo porfavor ! No se donde ponerlo, lo siento ser tan torpe, pero no llego.
  #12 (permalink)  
Antiguo 19/01/2009, 05:42
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.627
Antigüedad: 19 años, 6 meses
Puntos: 48
Respuesta: Echarme un cable con un insert, porfa !

Código PHP:
function addProduct()
{
var_dump($_POST);
$catId $_POST['cboCategory'];
$catId2 $_POST['cboCategory2'];
$catId3 $_POST['cboCategory3'];
$name $_POST['txtName']; 
  #13 (permalink)  
Antiguo 19/01/2009, 06:27
Avatar de b0zZy  
Fecha de Ingreso: enero-2009
Ubicación: Francia
Mensajes: 28
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Echarme un cable con un insert, porfa !

DarkJ, lo he puesto y me da este error,
Warning: extract() [function.extract]: First argument should be an array...
Y lo que me pasa es que tengo 3 listas donde se pueden eligir distintas opciones, y si elijo solo 1 siempre se gravan 3 en la database.
Gracias por tu tiempo y paciencia
  #14 (permalink)  
Antiguo 19/01/2009, 07:36
 
Fecha de Ingreso: septiembre-2008
Mensajes: 65
Antigüedad: 15 años, 7 meses
Puntos: 2
Respuesta: Echarme un cable con un insert, porfa !

Hola no estoy entendiendo muy bien lo que quieres pero hasta donde llego te faltaria un condicional por si catId2 o catId3 vienen vacias.

no se algo asi
Código:
if($_POST['catid2'] == "")
{
    $insert_catid2 = "";
}
else
{
     $insert_catid2 = "tu consulta";
}
Lo mismo con el resto y en la consulta en vez de escribir toda la consulta solo pones la variable que en caso de tener datos ejecutara.

Espero que te sirva.
  #15 (permalink)  
Antiguo 19/01/2009, 08:40
Avatar de b0zZy  
Fecha de Ingreso: enero-2009
Ubicación: Francia
Mensajes: 28
Antigüedad: 15 años, 3 meses
Puntos: 0
Hola Beto, mira creo que te he entendido y lo he puesto asi :
function addProduct()
{
$catId = $_POST['cboCategory'];
$catId2 = $_POST['cboCategory2'];
$catId3 = $_POST['cboCategory3'];
$name = $_POST['txtName'];
$auteur = $_POST['txtAuteur'];
$editeur = $_POST['txtEditeur'];
$anne = $_POST['txtAnne'];
$lieu = $_POST['txtLieu'];
$ilustrateur = $_POST['txtIlustrateur'];
$reliure = $_POST['txtReliure'];
$format = $_POST['txtFormat'];
$key = $_POST['txtKey'];
$isbn = $_POST['txtIsbn'];
$ref = $_POST['txtRef'];
$etat = $_POST['txtEtat'];
$description = $_POST['mtxDescription'];
$price = str_replace(',', '', (double)$_POST['txtPrice']);
$qty = (int)$_POST['txtQty'];

$images = uploadProductImage('fleImage', SRV_ROOT . 'images/product/');

$mainImage = $images['image'];
$thumbnail = $images['thumbnail'];


$sql = "INSERT INTO tbl_product (cat_id, pd_titre, pd_auteur, pd_editeur, pd_anne_edition, pd_ilustrateur, pd_lieu, pd_keyword, pd_reliure, pd_format, pd_isbn, pd_ref, pd_etat, pd_descriptif, pd_price, pd_qty, pd_image, pd_thumbnail, pd_date)
VALUES ('$catId', '$name', '$auteur', '$editeur', '$anne', '$ilustrateur', '$lieu', '$key', '$reliure', '$format', '$isbn', '$ref', '$etat', '$description', $price, $qty, '$mainImage', '$thumbnail', NOW())";


if($_POST['$catId2'] == "")
{
$insert_catId2 = "";
}
else
{
$insert_catid2 = "INSERT INTO tbl_product (cat_id, pd_titre, pd_auteur, pd_editeur, pd_anne_edition, pd_ilustrateur, pd_lieu, pd_keyword, pd_reliure, pd_format, pd_isbn, pd_ref, pd_etat, pd_descriptif, pd_price, pd_qty, pd_image, pd_thumbnail, pd_date)
VALUES ('$catId2', '$name', '$auteur', '$editeur', '$anne', '$ilustrateur', '$lieu', '$key', '$reliure', '$format', '$isbn', '$ref', '$etat', '$description', $price, $qty, '$mainImage', '$thumbnail', NOW())";
}
if($_POST['$catId3'] == "")
{
$insert_catId3 = "";
}
else
{
$insert_catid3 = "INSERT INTO tbl_product (cat_id, pd_titre, pd_auteur, pd_editeur, pd_anne_edition, pd_ilustrateur, pd_lieu, pd_keyword, pd_reliure, pd_format, pd_isbn, pd_ref, pd_etat, pd_descriptif, pd_price, pd_qty, pd_image, pd_thumbnail, pd_date)
VALUES ('$catId3', '$name', '$auteur', '$editeur', '$anne', '$ilustrateur', '$lieu', '$key', '$reliure', '$format', '$isbn', '$ref', '$etat', '$description', $price, $qty, '$mainImage', '$thumbnail', NOW())";

$result = dbQuery($sql);

header("Location: index.php?catId=$catId");
}


Pero ahora me da este error

Parse error: syntax error, unexpected $end in C:\wamp\www\admin\product\processProduct.php on line 282

Y en la linea 282 solo hay esto :
?>

Weno pues este tema esta resuelto !
Gracias a acoevil , DarkJ y elbetonet por vuestro tiempo.
Aqui dejo la direccion a PHP BUILDER donde esta la solucion.
Esta en Ingles pero es mejor que nada
--> http://www.phpbuilder.com/board/show...php?t=10362182

Última edición por GatorV; 19/01/2009 a las 15:35
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 21:51.