Foros del Web » Programando para Internet » PHP »

Problemas para hacer update a mas de un field

Estas en el tema de Problemas para hacer update a mas de un field en el foro de PHP en Foros del Web. estoy tratando de acer update a la base de datos en mysql. este my codigo. if( $Qty1 ) $query=(" UPDATE qaninv SET qtys='$Qty1' ,stock=stock-'$Qty1' WHERE ...
  #1 (permalink)  
Antiguo 05/07/2004, 20:27
 
Fecha de Ingreso: junio-2004
Mensajes: 71
Antigüedad: 19 años, 9 meses
Puntos: 1
Problemas para hacer update a mas de un field

estoy tratando de acer update a la base de datos en mysql.
este my codigo.

if( $Qty1 ) $query=(" UPDATE qaninv SET qtys='$Qty1' ,stock=stock-'$Qty1' WHERE itemid='$ItemQA031'");
if( $Qty2 ) $query=(" UPDATE qaninv SET qtys='$Qty2' ,stock=stock-'$Qty2' WHERE itemid='$ItemQA033'");
if( $Qty3 ) $query=(" UPDATE qaninv SET qtys='$Qty3' ,stock=stock-'$Qty3' WHERE itemid='$ItemQA058'");
if( $Qty4 ) $query=(" UPDATE qaninv SET qtys='$Qty4' ,stock=stock-'$Qty4' WHERE itemid='$ItemQA060'");
if( $Qty5 ) $query=(" UPDATE qaninv SET qtys='$Qty5' ,stock=stock-'$Qty5' WHERE itemid='$ItemQA066'");
if( $Qty6 ) $query=(" UPDATE qaninv SET qtys='$Qty6' ,stock=stock-'$Qty6' WHERE itemid='$ItemQA072'");
if( $Qty7 ) $query=(" UPDATE qaninv SET qtys='$Qty7' ,stock=stock-'$Qty7' WHERE itemid='$ItemQA155'");
if( $Qty8 ) $query=(" UPDATE qaninv SET qtys='$Qty8' ,stock=stock-'$Qty8' WHERE itemid='$ItemQA184'");
if( $Qty9 ) $query=(" UPDATE qaninv SET qtys='$Qty9' ,stock=stock-'$Qty9' WHERE itemid='$ItemQA186'");
if( $Qty10 ) $query=(" UPDATE qaninv SET qtys='$Qty10' ,stock=stock-'$Qty10' WHERE itemid='$ItemQA189'");
if( $Qty11 ) $query=(" UPDATE qaninv SET qtys='$Qty11' ,stock=stock-'$Qty11' WHERE itemid='$ItemQA194'");
if( $Qty12 ) $query=(" UPDATE qaninv SET qtys='$Qty12' ,stock=stock-'$Qty12' WHERE itemid='$ItemQA195'");
if( $Qty13 ) $query=(" UPDATE qaninv SET qtys='$Qty13' ,stock=stock-'$Qty13' WHERE itemid='$ItemQA198'");
if( $Qty14 ) $query=(" UPDATE qaninv SET qtys='$Qty14' ,stock=stock-'$Qty14' WHERE itemid='$ItemQA205'");
if( $Qty15 ) $query=(" UPDATE qaninv SET qtys='$Qty15' ,stock=stock-'$Qty15' WHERE itemid='$ItemQA206'");
if( $Qty16 ) $query=(" UPDATE qaninv SET qtys='$Qty16' ,stock=stock-'$Qty16' WHERE itemid='$ItemQA210'");
if( $Qty17 ) $query=(" UPDATE qaninv SET qtys='$Qty17' ,stock=stock-'$Qty17' WHERE itemid='$ItemQA211'");
if( $Qty18 ) $query=(" UPDATE qaninv SET qtys='$Qty18' ,stock=stock-'$Qty18' WHERE itemid='$ItemQA215'");
if( $Qty19 ) $query=(" UPDATE qaninv SET qtys='$Qty19' ,stock=stock-'$Qty19' WHERE itemid='$ItemQA217'");
if( $Qty20 ) $query=(" UPDATE qaninv SET qtys='$Qty20' ,stock=stock-'$Qty20' WHERE itemid='$ItemQA218'");
if( $Qty21 ) $query=(" UPDATE qaninv SET qtys='$Qty21' ,stock=stock-'$Qty21' WHERE itemid='$ItemQA219'");
if( $Qty22 ) $query=(" UPDATE qaninv SET qtys='$Qty22' ,stock=stock-'$Qty22' WHERE itemid='$ItemQA220'");

apenas estoy apprendiendo esto de php. cualquier ayuda de alguien me sera muy util.

Gracias y saludos..
  #2 (permalink)  
Antiguo 05/07/2004, 21:56
Avatar de xcorpion  
Fecha de Ingreso: octubre-2003
Ubicación: m é x i c o
Mensajes: 676
Antigüedad: 20 años, 5 meses
Puntos: 4
intentalo asi:
Código PHP:
if( $Qty1 $query=mysql_query(" UPDATE qaninv SET qtys='$Qty1' ,stock=stock-'$Qty1' WHERE itemid='$ItemQA031'");
if( 
$Qty2 $query=mysql_query(" UPDATE qaninv SET qtys='$Qty2' ,stock=stock-'$Qty2' WHERE itemid='$ItemQA033'");
.... 
ten en cuenta que deves tener activa una coneccion a la base de datos.
si te marca error, postealo aqui poder ayudarte.
  #3 (permalink)  
Antiguo 05/07/2004, 22:58
Avatar de sism82  
Fecha de Ingreso: octubre-2003
Ubicación: Guadalajara
Mensajes: 865
Antigüedad: 20 años, 5 meses
Puntos: 1
tomando en cuenta que solo cambia el indice de las variables tal vez deberías usar un for, o usar un arreglo con un foreach...
  #4 (permalink)  
Antiguo 06/07/2004, 12:44
 
Fecha de Ingreso: junio-2004
Mensajes: 71
Antigüedad: 19 años, 9 meses
Puntos: 1
Meda este error con este code:

if( $Qty1 ) $query=mysql_query(" UPDATE qaninv SET qtys='$Qty1' ,stock=stock-'$Qty1' WHERE itemid='$ItemQA031'");
if( $Qty2 ) $query=mysql_query(" UPDATE qaninv SET qtys='$Qty2' ,stock=stock-'$Qty2' WHERE itemid='$ItemQA033'");


Error in query:You have an error in your SQL syntax near '1' at line 1

alguna otra solucion.

gracias.
  #5 (permalink)  
Antiguo 06/07/2004, 21:50
Avatar de xcorpion  
Fecha de Ingreso: octubre-2003
Ubicación: m é x i c o
Mensajes: 676
Antigüedad: 20 años, 5 meses
Puntos: 4
solo una duda, que es lo que se supone hace esto: stock=stock-'$Qty1'
acaso estas restando un string a stock?, el error que mencionas es de sintaxis
si puedes vas a hacer restas no encierres las variables entre comillas simples

intenta asi
if( $Qty1 ) mysql_query(" UPDATE qaninv SET qtys='$Qty1' ,stock=stock-$Qty1 WHERE itemid='$ItemQA031'");
  #6 (permalink)  
Antiguo 07/07/2004, 07:21
 
Fecha de Ingreso: junio-2004
Mensajes: 71
Antigüedad: 19 años, 9 meses
Puntos: 1
Xcorpion

use tu code si me resta el field del stock pero me sale este error en la confirmation page.

Error in query:Query was empty

en el code que yo use solo trabaja con un item a la vez cuando hay mas de un item en la orden solo hace update el ultimo item.

alguna otra solucion.

Gracias. & Saludos.
  #7 (permalink)  
Antiguo 07/07/2004, 07:31
 
Fecha de Ingreso: junio-2004
Mensajes: 71
Antigüedad: 19 años, 9 meses
Puntos: 1
Xcorpion.

Lo tengo. Gracias de verdad por tu ayuda. Y tu tiempo con un principiante, El error que puse en el ultimo post se devia a esta linea.

$result=mysql_query($query) or die("Error in query:".mysql_error());
if ($result)


Saludos.
  #8 (permalink)  
Antiguo 07/07/2004, 10:53
Avatar de xcorpion  
Fecha de Ingreso: octubre-2003
Ubicación: m é x i c o
Mensajes: 676
Antigüedad: 20 años, 5 meses
Puntos: 4
bueno, creo que podrias reducir codigo, postea todo el script para entender mejor, y explica que es lo que hace
  #9 (permalink)  
Antiguo 07/07/2004, 11:48
 
Fecha de Ingreso: junio-2004
Mensajes: 71
Antigüedad: 19 años, 9 meses
Puntos: 1
Xcorpion.

Este es el codigo. Solo voy a postear 3 Items. El Total de los Items son 141 si quieres puedes mirar la page que puse para una demostracion.
http://www.themailinghouse.com/demo/cart.php

////////EL Code es//////////
<?php
session_start();
$username='user';
$password='pass';
$hostname='local';
$databasename='db';
$header = "header.html";
$footer = "footer.html";
$returnpage = "/demo/demo.php";
$youremail = "[email protected]";
$mode = "BOTH";


function doFormError($errString) {

include($header);

echo "<FONT SIZE=+2>The form you submitted was not complete.<BR><BR></FONT>";
echo "$errString<BR><BR>\n";
echo "<INPUT TYPE=BUTTON ONCLICK='history.back()' VALUE=' Return to the checkout page '><HR>";

include($footer);

exit;
}

function doError($errString) {

include($header);

echo "$errString<BR><BR>\n";

include($footer);

exit;
}

$idno= $_POST['idno'];
$first= $_POST['first'];
$last= $_POST['last'];
$today= $_POST['today'];
$need= $_POST['need'];
$s_first= $_POST['s_first'];
$s_last= $_POST['s_last'];
$s_addr= $_POST['s_addr'];
$s_addr2= $_POST['s_addr2'];
$s_city= $_POST['s_city'];
$s_state= $_POST['s_state'];
$s_zip= $_POST['s_zip'];
$s_phone= $_POST['s_phone'];
$s_fax= $_POST['s_fax'];
$s_email= $_POST['s_email'];
$fedex= $_POST['fedex'];
$ItemQA031= $_SESSION['sessItemQA031'];
$Desc1= $_SESSION['sessDesc1'];
$Qty1= $_SESSION['sessQty1'];
$ItemQA033= $_SESSION['sessItemQA033'];
$Desc2= $_SESSION['sessDesc2'];
$Qty2= $_SESSION['sessQty2'];
$ItemQA058= $_SESSION['sessItemQA058'];
$Desc3= $_SESSION['sessDesc3'];
$Qty3= $_SESSION['sessQty3'];

if (($first == "") || ($last == "") || ($idno == "") || ($need == "")) {
doFormError("I'm sorry, but it appears that you forgot to fill in a required field. Please go <A HREF='Javascript:history.go(-1);'>back</A> and correct the error.");
exit;
}

if( !(ereg("^(.+)@(.+)\\.(.+)$",$s_email)) ) {
doFormError("You submitted an invalid email address. Please go <A HREF='Javascript:history.go(-1);'>back</A> and correct the error.");
exit;
}

$conection = @mysql_connect($hostname, $username, $password);

mysql_select_db($databasename);

if( $Qty1 ) mysql_query(" UPDATE qaninv SET qtys='$Qty1' ,stock=stock-$Qty1 WHERE itemid='$ItemQA031'");
if( $Qty2 ) mysql_query(" UPDATE qaninv SET qtys='$Qty2' ,stock=stock-$Qty2 WHERE itemid='$ItemQA033'");
if( $Qty3 ) mysql_query(" UPDATE qaninv SET qtys='$Qty3' ,stock=stock-$Qty3 WHERE itemid='$ItemQA058'");

// CLOSE CONNECTION --->
mysql_close($conection);


$invoice = date ("ymdHis");
$today = date ("l, F jS Y");
$strMessageBody = "";
$strMessageBody .= "A new order has been received. A summary of this order appears below.\n";
$strMessageBody .= "\n";
$strMessageBody .= "Order Date: $today \n";
$strMessageBody .= " \n";
$strMessageBody .= "Invoice #: $idno$invoice \n";
$strMessageBody .= " \n";
$strMessageBody .= "Qantas Rep: \n";
$strMessageBody .= "----------------- \n";
$strMessageBody .= " $first $last \n";
$strMessageBody .= " Need By: $need \n";
$strMessageBody .= " FedEx #: $fedex \n";
$strMessageBody .= " \n";
$strMessageBody .= " \n";
$strMessageBody .= "Ship To: \n";
$strMessageBody .= "--------------- \n";
$strMessageBody .= " $s_first $s_last \n";
$strMessageBody .= " $s_addr $s_addr2 \n";
$strMessageBody .= " $s_city, $s_state $s_zip \n";
$strMessageBody .= " $s_phone \n";
$strMessageBody .= " \n";
$strMessageBody .= " \n";
$strMessageBody .= "Qty Product ID Product Name\n";
$strMessageBody .= "================================================= ==================== \n";
if( $Qty1 ) {$strMessageBody .= "$Qty1 $ItemQA031 - $Desc1 \n";}
if( $Qty2 ) {$strMessageBody .= "$Qty2 $ItemQA033 - $Desc2 \n";}
if( $Qty3 ) {$strMessageBody .= "$Qty3 $ItemQA058 - $Desc3 \n";}
$strMessageBody .= "================================================= ==================== \n";
//$strMessageBody .= "SUBTOTAL: $SUBTOTAL \n";
//$strMessageBody .= "TOTAL: $TOTAL \n";
//$strMessageBody .= "\n";
//$strMessageBody .= "FREIGHT: $SHIPPING \n";
$strMessageBody .= "\n\n";
$strMessageBody .= "Comments: \n";
$strMessageBody .= "------------------ \n";
$strMessageBody .= "$comment \n";
$strMessageBody .= " \n";


if( $mode == "BOTH" || $mode == "EMAIL") {
$mailheaders = "From: $s_email\r\n";
$mailheaders .="X-Mailer: PHP Mail generated by:The Mailing House Inc.®\r\n";
$subject = "New Online Order";
mail($youremail, $subject, $strMessageBody, $mailheaders);


//# Send email conformation to the customer.....
$mailheaders = "From: $youremail\r\n";
$mailheaders .="X-Mailer: PHP Mail generated by:The Mailing House Inc.®\r\n";
$subject = "Order Confirmation";
mail($s_email, $subject, $strMessageBody, $mailheaders);
}


echo "<h2>Thank you</h2>";
echo "Thank you for your oline order. You will receive a confirmation email of your order ";
echo "momentarily. Please contact us at $youremail if you have any questions or concerns.";
echo "<P>";
echo "<A HREF=\"$returnpage\" target=_top>Return Home</A>";
echo "<P>";


?>


lo que estoy haciendo es cuando ordenan alguna orden. el checkout.php manda un email de confirmacion a el cliente y otro a la company donde trabajo. Al mismo tiempo hace update al db. es donde estoy restando stock=stock-$Qtyx asi nuestro cliente puede tener haceso al inventario. y puede saber que tanto se encunetra habalible.


Saludos.
  #10 (permalink)  
Antiguo 07/07/2004, 12:25
Avatar de xcorpion  
Fecha de Ingreso: octubre-2003
Ubicación: m é x i c o
Mensajes: 676
Antigüedad: 20 años, 5 meses
Puntos: 4
tienes que validar tambien que los $Qty# sean numericos

podria resultar asi:
if( is_int($Qty1) ) mysql_query(" UPDATE qaninv SET qtys='$Qty1' ,stock=stock-$Qty1 WHERE itemid='$ItemQA031'");

y otra cosa, en todo el codigo no encontre la linea que te da el error:
$result=mysql_query($query) or die("Error in query:".mysql_error());
if ($result)
  #11 (permalink)  
Antiguo 07/07/2004, 12:43
 
Fecha de Ingreso: junio-2004
Mensajes: 71
Antigüedad: 19 años, 9 meses
Puntos: 1
Xcorpion.

Perdon tal Vez no me splique bien. pero en el post donde puse el error.

lo quize decir es que cuando quite la linea de mi codigo el problema se arreglo. y todo funciono como queria.


ahora yo pense que tu post anterior querias mirar el code para aver si abia alguna otra cosa para reducir el codigo.


de nuevo me disculpo.

esque estoy como la India Maria ni de aqui ni de alla.

Saludos a todos desde Nayarit. California.
  #12 (permalink)  
Antiguo 07/07/2004, 13:10
Avatar de xcorpion  
Fecha de Ingreso: octubre-2003
Ubicación: m é x i c o
Mensajes: 676
Antigüedad: 20 años, 5 meses
Puntos: 4
no hay problema, creo que yo no entendi tu post, solo una duda, estas diseñandole una tienda electronica a un gringo?, creo que si se puede reducir el codigo, pero hay que cambiar mucho la estructura del carrito de compras.
  #13 (permalink)  
Antiguo 07/07/2004, 14:21
 
Fecha de Ingreso: junio-2004
Mensajes: 71
Antigüedad: 19 años, 9 meses
Puntos: 1
Xcorpion.

Bueno es como un carrito de ventas. Yo trabajo aqui lo que hacemos es algo como correo (Direct Mail) pero tambien hacemos fullfilment. (Trabajo para otras companias que quieren mandar UPS,FedEx etc.)

Los Clientes De Nuestros Clientes ordenan productos en esta page, La razon es para que nosotros tengamos toda la informacion inmediata de las ordenes, asi cuando ordenen productos lo puedamos procesara el mismo dia.

No Les Cobramos a ellos si no que nosotros tenemos la informacion de los clientes tal como UPS, FedEx.
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 10:35.