Jump to content

Ra

Ex- Staff
  • Posts

    1,549
  • Joined

  • Last visited

  • Days Won

    2

Everything posted by Ra

  1. El código quedó igual como lo postié??? Porque yo le quité los últimos 2 TD que le había agregado... por lo tanto, el 17----54 y el 48---50 y el 55---8 no deberían aparecer... Postea cómo te quedó...
  2. Viejo... debería ser así: <?php mysql_connect("localhost", "xxxx", "xxx") or die(mysql_error()); mysql_select_db("vb") or die(mysql_error()); $result = mysql_query("SELECT * FROM forums") or die(mysql_error()); echo "<select>"; echo "<option value=\"0\" selected=\"selected\">selecionar categoría</option>"; while ($row = mysql_fetch_array($result, MYSQL_NUM)) { // Print out the contents of the entry echo "<option value=\"" . $row['forumid'] . "\">" . $row['title'] . "</option>"; } echo "</select>"; mysql_free_result($result); ?> Desde ya, acostúmbrate a usar las buenas prácticas de programación... en san google, puedes encontrar un montón... por ejemplo, no mezcles html con php... siempre es mejor todo php o todo html en un mismo archivo... Salu2.
  3. Ah.. bueno... la lógica es la misma... sólo debes agregar <tr> para que haga una fila nueva para mostrar los resultados... $debe = 0; $haber = 0; while ($con = mysql_fetch_array($sql)) { $fecha = $con[fecha]; $idcom = $con[idcom]; $tipoval = $con[tipoval]; $numcuenta = $con[numcuenta]; if( $idcom !=$last_fecha2){ $last_fecha2 = $idcom; $idcom_print = $idcom; $descripcion_print = $descripcion; $estilo = "style=\"border-top: solid 1px blue;\""; $mostrartotal = "<TR><TD colspan=\"2\" align=\"left\">EL TOTAL ES:</TD><TD align=\"left\"><font size=\"2\">" . $debe . "</font></TD><TD align=\"left\"><font size=\"2\">" . $haber . "</font></TD></TR>"; $debe = 0; $haber = 0; } else { $idcom_print = " "; $descripcion_print = ""; $estilo = ""; $debe += $campodebe; $haber += $campohaber; $mostrartotal = ""; } <table width="100%" border="0" bordercolor="#99CCFF" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF"> <? echo $mostrartotal; ?> <TR> <TD width="7%"align="left" <? echo $estilo; ?>><font size="2" ><? echo $idcom_print ?></font></TD> <TD width="11%" align="left" <? echo $estilo; ?>><font size="2" ><? echo substr($descripcion_print,0,10) ?> </font></TD> <? if($descripcion_print != ""){ ?> </tr><tr> <td colspan="2" <? echo $estilo; ?>></td> <? } ?> <TD width="8%"align="left" <? echo $estilo; ?>><font size="2" ><? echo $fecha ?></font></TD> <TD width="8%"align="left" <? echo $estilo; ?>><font size="2" ><? echo $numcuenta ?> </font></TD> </TR> </TABLE> <? } ?> Viejo... ahora aparecieron las consecuencias del desorden que tienes en el código y todo lo que se te ha comentado... Bueno... el problema es que los totales se van a imprimir en la tabla siguiente, puesto que cuando termina un ciclo, estás cerrando la tabla que creaste... esto, visualmente no sé cómo se verá... pero como estructura HTML está quedando muy mal... En todo caso, revísalo y comenta si resulta... Suerte!
  4. Sorry viejo... pero reafirmo mi afirmación.... PostgreSQL no soporta SP... sí soporta FUNCTION que no es lo mismo... parecido pero no es lo mismo... Quizás te confundiste por el lenguaje PL/SQL que es un "lenguaje procedural"... o porque todo el mundo quiere llamar a las funciones como procedimientos almacenados para no minimizar a PostgreSQL... A mí en lo particular, me gusta PostgreSQL... lo prefiero mil veces a MySQL... pero por ese motivo (no tiene sp) es que no lo uso... me pasa casi lo mismo con Oracle... es muy potente (un monstruo) pero en recursos programáticos es muy pobre... por eso... de todos los existentes... M$ SQL es mi favorito, puesto que posee muchos recursos programáticos y es muy potente... por lo menos para el nivel de transacciones que uno puede llegar a requerir... Oracle lo veo así como para el SII por ejemplo... mucho para mucho... Mira lo que dice Wiki sobre funciones y procedimientos almacenados en PostgreSQL (último párrafo del ítem Functions)... Salu2.
  5. Off Topic: No te preocupes por preguntar... para eso es el foro On Topic: Bueno... para sumar por grupo... tienes que mantener un par de totalizadores ($debe y $haber) y debes ir asignando $debe = 0; $haber = 0; cada vez que comiences un nuevo grupo... en caso contrario, tienes que ir sumando... esto lo haces en el mismo if principal... $debe = 0; $haber = 0; while ($con = mysql_fetch_array($sql)) { $fecha = $con[fecha]; $idcom = $con[idcom]; $tipoval = $con[tipoval]; $numcuenta = $con[numcuenta]; if( $idcom !=$last_fecha2){ $last_fecha2 = $idcom; $idcom_print = $idcom; $descripcion_print = $descripcion; $estilo = "style=\"border-top: solid 1px blue;\""; $debemostrar = $debe; $habermostrar = $haber; $debe = 0; $haber = 0; } else { $idcom_print = " "; $descripcion_print = ""; $estilo = ""; $debe += $campodebe; $haber += $campohaber; } <table width="100%" border="0" bordercolor="#99CCFF" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF"> <TR> <TD width="7%"align="left" <? echo $estilo; ?>><font size="2" ><? echo $idcom_print ?></font></TD> <TD width="11%" align="left" <? echo $estilo; ?>><font size="2" ><? echo substr($descripcion_print,0,10) ?> </font></TD> <? if($descripcion_print != ""){ ?> </tr><tr> <td colspan="2" <? echo $estilo; ?>></td> <? } ?> <TD width="8%"align="left" <? echo $estilo; ?>><font size="2" ><? echo $fecha ?></font></TD> <TD width="8%"align="left" <? echo $estilo; ?>><font size="2" ><? echo $numcuenta ?> </font></TD> //*********Aquí agregué un par de nuevos TD para mostrar los debe y haber*************** <TD width="8%"align="left" <? echo $estilo; ?>><font size="2" ><? echo $debemostrar ?> </font></TD> <TD width="8%"align="left" <? echo $estilo; ?>><font size="2" ><? echo $habermostrar ?> </font></TD> </TR> </TABLE> <? } ?> Ojo que ese par de td nuevos te van a descuadrar la tabla... tú vé como necesitas mostrar los totales... Salu2.
  6. Sorry compadre... a TR no se le aplica estilo... se tiene que aplicar a TD... Puedes hacerlo así: while ($con = mysql_fetch_array($sql)) { $fecha = $con[fecha]; $idcom = $con[idcom]; $tipoval = $con[tipoval]; $numcuenta = $con[numcuenta]; if( $idcom !=$last_fecha2){ $last_fecha2 = $idcom; $idcom_print = $idcom; $descripcion_print = $descripcion; $estilo = "style=\"border-top: solid 1px blue;\""; } else { $idcom_print = " "; $descripcion_print = ""; $estilo = ""; } <table width="100%" border="0" bordercolor="#99CCFF" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF"> <TR> <TD width="7%"align="left" <? echo $estilo; ?>><font size="2" ><? echo $idcom_print ?></font></TD> <TD width="11%" align="left" <? echo $estilo; ?>><font size="2" ><? echo substr($descripcion_print,0,10) ?> </font></TD> <? if($descripcion_print != ""){ ?> </tr><tr> <td colspan="2" <? echo $estilo; ?>></td> <? } ?> <TD width="8%"align="left" <? echo $estilo; ?>><font size="2" ><? echo $fecha ?></font></TD> <TD width="8%"align="left" <? echo $estilo; ?>><font size="2" ><? echo $numcuenta ?> </font></TD> </TR> </TABLE> <? } ?> O al revés si quieres... cambia $estilo = "" al if y el otro al else... Suerte!
  7. Off Topic: Este tema debería ir en Programación y no en Webmaster On Topic: 1. Como dice axel... MySql sí soporta procedimientos almacenados... PostgreSQL no los soporta y Oracle sí... este último no te lo recomiendo por costo y prestaciones "monstruosas"... MS SQL también soporta SP... 2. Sí puedes llamar un procedimiento almacenado desde otro procedimiento almacenado, tal cual lo harías con el primer procedimiento almacenado... CREATE PROCEDURE SP2(IN A CHAR(64), IN B CHAR(64), OUT R INT) BEGIN //alguna consulta SQL asignando R END $$ CREATE PROCEDURE SP1() BEGIN CALL SP2('algo', 'otro', a); END $$ Salu2.
  8. Entonces... para hacer la línea: while ($con = mysql_fetch_array($sql)) { $fecha = $con[fecha]; $idcom = $con[idcom]; $tipoval = $con[tipoval]; $numcuenta = $con[numcuenta]; if( $idcom !=$last_fecha2){ $last_fecha2 = $idcom; $idcom_print = $idcom; $descripcion_print = $descripcion; } else { $idcom_print = " "; $descripcion_print = ""; } <table width="100%" border="0" bordercolor="#99CCFF" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF"> <TR <? echo ($descripcion_print != "" ? "style=\"border-top: solid 1px blue;\"" : "") ?> > <TD width="7%"align="left"><font size="2" ><? echo $idcom_print ?></font></TD> <TD width="11%" align="left"><font size="2" ><? echo substr($descripcion_print,0,10) ?> </font></TD> <? if($descripcion_print != ""){ ?> </tr><tr> <td colspan="2"></td> <? } ?> <TD width="8%"align="left"><font size="2" ><? echo $fecha ?></font></TD> <TD width="8%"align="left"><font size="2" ><? echo $numcuenta ?> </font></TD> </TR> </TABLE> <? } ?> Y eso sería... sólo cambia la línea del 1º TR... De todas formas, y como dice alvaro y te dije en el otro post.... sigue los consejos... pues queda más ordenado para tí (puedes hacer las modificaciones/correcciones más rápido) y para los posibles futuros desarrolladores que mantendrán tu sistema... Suerte!
  9. Exacto... es un problema que viene desde hace tiempo en CSS... y es un dolor de cabeza para todos los webmaster... Este problema pasa principalmente por la definición de pixeles que utilizas, por ejemplo, para los width, height, top, left, etc... de tus divs u otros componentes que están formateados con CSS... En san google hay muchos fix como estos: *{-moz-box-sizing: border-box;box-sizing: border-box} ó width: 770px; para Firefox / width: 780px; para IE ó #contenidoCentral h2 { padding:20px 10px 10px 10px; } //Firefox // #contenidoCentral h2 { padding:0 10px 10px 10px; } // IE ó --!--[if IE]> ((Este sería el llamado que solo IE reconoce)) ((aquí el link al css sólo para el IE)) --![endif]--> Como dice alvaro... tienes que empezar a trabajar tu CSS y revisarlo en los 3 exploradores... no le veo otra alternativa... de hecho, creo que ie 6, 7 y 8 son distintos en CSS... Salu2.
  10. Off Topic: No posteaste el código completo... así que tuve que ir a buscar el del tema anterior para acordarme cómo lo hiciste finalmente... On Topic: Bueno... lo que puedes hacer es usar la misma condición (si imprime o no la primera columna)... para cambiar o agregar un estilo a la fila... Por ejemplo: <table width="100%" border="0" bordercolor="#99CCFF" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF"> <TR <? echo ($descripcion_print != "" ? "style=\"border-top: solid 1px blue;\" : "") ?> > Prueba con $descripcion_print != "" o $descripcion_print == ""... ya me confundí con el desorden... Ah! ( asdf ? algo : otro ) se llama inline-if... quiere decir: si condición (asdf) es verdadero, entonces "algo", sino "otro"... cachai? Salu2.
  11. Viejo... $row = mysql_fetch_array( $result ); esto lo debes poner en un ciclo while... Aquí mira el ejemplo 2... Suerte!
  12. Entonces... lo puedes hacer directamente desde el motor, sin necesidad de usar un cliente... Si quieres mantener un registro periódico, tienes que programar un SP que haga el trabajo... El SP lo programas con ????? dependiendo si está en linux o windows... Bueno... la consulta es algo así: SELECT a,b,a+b INTO OUTFILE '/tmp/result.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' FROM test_table; Eso es utilizando una consulta SQL... También puedes hacerlo así, o así: mysql -umysqlusername -pmysqlpass databsename -B -e "select * from \`tabalename\`;" | sed 's/\t/","/g;s/^/"/;s/$/"/;s/\n//g' > mysql_exported_table.csv Salu2.
  13. Qué motor? SQL Server, MySQL, PostgreSQL, Oracle,.....???
  14. Bueno... dicen que MySqli es para versión PHP 5.x+ y MySql 4.1+... Este es un extracto de lo que dice aquí Salu2.
  15. Mira esto es para la versión PHP 4.4.4... no sé si estará resuelto en las versiones más nuevas... Otros dicen que es mejor usar mysqli.... Salu2.
  16. No te falta esto? $razon_soc = $con[razon]; Además... las comillas están demás: <? echo $rutito; ?> Además de eso... no le veo el error... Recomendaciones: 1. separa las aguas... el php en un archivo y el html en otro... Por ejemplo, puedes hacer el echo completo y evitas muchos <? ?> echo "<table width=\"100%\">\n"; echo " <tr>\n"; echo " <td align=\"left\" width=\"50%\">\n"; echo " <font size=\"2\" face=\"Verdana\">\n"; echo " " . $rutito; echo " </font>\n"; echo " </td>\n"; 2. No referencies con los nombres de columna... es mejor con los index de las columnas... podrías cambiar el nombre de una columna y tendrías que cambiar muchos scripts php... 3. Usa CSS... así puedes aplicar un mismo formato variar veces... y si quieres modificar el formato, lo haces en el css y listo... no tienes que recorrer todos los scripts cambiando el formato a mano... SAlu2.
  17. Probado y funcionando: Lo que agregué: 1º Faltó el </form> 2º Agregué la función calcularTotal function calcularTotal(){ document.getElementById('totaltotal').value = parseInt(document.getElementById('total1').value) + parseInt(document.getElementById('total2').value); } 3º Inicialicé los valores para que no aparezca NaN... puedes hacer un validador mejor... ... <input name="cantidad" type="text" class="dayOfWeek" onchange="calcularTotalParcial(0)" value="0" size="5"/> ... <input name="total" type="text" disabled="disabled" class="dayOfWeek" id="total1" value="0" size="10"/> ... <input name="cantidad" type="text" class="dayOfWeek" onchange="calcularTotalParcial(1)" value="0" size="5"/> ... <input name="total" type="text" disabled="disabled" class="dayOfWeek" id="total2" value="0" size="10"/> ... 4º Agregué además un input adicional, para mostrar el total global... <tr> <td><input type="text" name="totaltotal" id="totaltotal" value="" size="10" disabled /></td> </tr> Tú, ordénalo como quieras... me refiero al <tr><td> que agregué... SAlu2.
  18. Pero postea el código donde estás imprimiendo...
  19. Lo muevo a Webmaster... PD: es document.getElementById('imagen').src = "URL de la imagen";
  20. Lo que pasa es que cuando realizas un POST o GET a otra página, osea, haces un submit de un form HTML... los elementos que están dentro del form, los puedes obtener en PHP con las variables $_POST o $_GET (dependiendo del método que uses en el form)... Si en la página principal tienes un elemento que se llama tipoficha (que es el select)... en la página que posteas (INSERTA.PHP) obtienes el valor del elemento seleccionado... <select name="tipoficha"> <option value="">Seleccione Una Opcion...</option> <option value="1">Cliente</option> <option value="2">Proveedor</option> <option value="3">Cli/Pro</option> </select> Entonces, en el PHP, obtienes el valor de la opción seleccionada switch($_POST['tipoficha']){ case 1: //Inserta en Cliente, porque <option value="1"> y el Usuario lo seleccionó break; case 2: //Inserta en Proveedor, porque <option value="2"> y el Usuario lo seleccionó break; case 3: //Inserta en Cli/Prov, porque <option value="3"> y el Usuario lo seleccionó break; } Salu2.
  21. Si son los mismos datos y distintas tablas, crea un solo INSERTA.PHP En el PHP con $_POST['tipoficha'] o $_GET['tipoficha'] (no sé cómo lo estás pasando, sabrás en qué tabla insertar.. INSERTA.PHP ... switch($_POST['tipoficha']){ case 1: //Inserta en Cliente break; case 2: //Inserta en Proveedor break; case 3: //Inserta en Cli/Prov break; } ... Salu2.
  22. Quedó bonita... y para lo que pretende la empresa, está bien... si ves la de falabella o ripley parece que fueran una copia de la tuya :tonto: ... Lo que sí... la encontré un poco larga hacia abajo... por lo menos, la página principal (o de entrada) la haría cortita (común y corriente)... Salu2.
×
×
  • Create New...