Foros del Web » Programando para Internet » PHP »

Ayuda otra vez con while.

Estas en el tema de Ayuda otra vez con while. en el foro de PHP en Foros del Web. En esto del php me siento como enmedio de un laberinto. Tengo este codigo: Código PHP: <?php    if ( (!isset( $new_products_category_id )) || ( $new_products_category_id  ==  '0' ) ) { ...
  #1 (permalink)  
Antiguo 25/02/2008, 16:10
 
Fecha de Ingreso: febrero-2008
Mensajes: 35
Antigüedad: 16 años, 1 mes
Puntos: 0
Ayuda otra vez con while.

En esto del php me siento como enmedio de un laberinto.

Tengo este codigo:
Código PHP:
<?php

  
if ( (!isset($new_products_category_id)) || ($new_products_category_id == '0') ) {
    
$new_products_query tep_db_query("select p.products_id, p.products_quantity, p.products_image, p.products_tax_class_id, if(s.status, s.specials_new_products_price, p.products_price) as products_price from " TABLE_PRODUCTS " p left join " TABLE_SPECIALS " s on p.products_id = s.products_id where products_status = '1' order by p.products_date_added desc limit " MAX_DISPLAY_NEW_PRODUCTS);
  } else {
    
$new_products_query tep_db_query("select distinct p.products_id, p.products_quantity, p.products_image, p.products_tax_class_id, if(s.status, s.specials_new_products_price, p.products_price) as products_price from " TABLE_PRODUCTS " p left join " TABLE_SPECIALS " s on p.products_id = s.products_id, " TABLE_PRODUCTS_TO_CATEGORIES " p2c, " TABLE_CATEGORIES " c where p.products_id = p2c.products_id and p2c.categories_id = c.categories_id and c.parent_id = '" . (int)$new_products_category_id "' and p.products_status = '1' order by p.products_date_added desc limit " MAX_DISPLAY_NEW_PRODUCTS);
  }

  
$row 0;
  
$col 0;


  echo 
'

    <table cellspacing=0 cellpadding=0 width=437 align=center>
     <tr><td background=images/m22.gif width=437 height=29 valign=top>
         <table cellspacing=0 cellpadding=0>
          <tr><td height=8></td></tr>
          <tr><td width=25></td><td class=ch6>Productos Destacados</td></tr>
         </table>
        </td></tr>
      <tr><td valign=top class=ch7>

           <table cellspacing=0 cellpadding=0 width=417 border=0 align=center>
             <tr><td height=13></td></tr>
             <tr>


       '
;


  while (
$new_products tep_db_fetch_array($new_products_query)) {
   
$new_products['products_name'] = tep_get_products_name($new_products['products_id']);
   
$product_query tep_db_query("select products_description  from " TABLE_PRODUCTS_DESCRIPTION " where products_id = '" . (int)$new_products['products_id'] . "' and language_id = '" . (int)"'");
   
$product tep_db_fetch_array($product_query);
   
$new_products['products_description'] = $product['products_description'];
   echo 
'

             <td width=208 valign=top align=center>
               <table cellspacing=0 cellpadding=0 width=200 align=center>
                <tr><td width=90 align=center valign=top><a href="' 
tep_href_link(FILENAME_PRODUCT_INFO'products_id=' $new_products['products_id']) . '">' tep_image(DIR_WS_IMAGES $new_products['products_image'], $new_products['products_name'], SMALL_IMAGE_WIDTHSMALL_IMAGE_HEIGHT'vspace=0') . '</a></td>
                <td valign=top>
                  <table cellspacing=0 cellpadding=0>
                   <tr><td><a height=35 valign=middle   class=ch9 href="' 
tep_href_link(FILENAME_PRODUCT_INFO'products_id=' $new_products['products_id']) . '">' $new_products['products_name'] . '</a></td></tr>
                   
                   <tr><td class=ch10 height=35 valign=middle>'
.preg_replace('/\s\S*$/i'''substr($new_products['products_description'], 025)).' ...</td></tr>
                   <tr><td height=0></td></tr>
                   <tr><td><span class=ch11>precio:</span> <span class=ch8>'
.$currencies->display_price($new_products['products_price'], tep_get_tax_rate($new_products['products_tax_class_id'])).'</span> </td></tr>
                  </table>
                 </td>
                </tr>
                <tr><td height=20></td></tr>
                <tr><td colspan=2 align=right><a href="' 
tep_href_link(FILENAME_PRODUCT_INFO'products_id=' $new_products['products_id']) . '">' tep_image_button('detalles.gif') . '</a> <br></td></tr>
              <tr><td colspan=2 align=right><a href="' 
tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action')) . 'action=buy_now&products_id=' $new_products['products_id']) . '">' tep_image_button('carrito.gif') . </a
</
table>
             </
td>
Lo que yo quiero es que cuando se de una condición (esta: if ($new_products['products_quantity'] > 0) se oculte la imagen carrito.gif que hay el la ultima linea del codigo; o sea, lo que quiero sería algo parecido a esto:
Código PHP:
if ( $new_products['products_quantity'] > )
                    {
            echo 
'<a href="' tep_href_link(FILENAME_PRODUCTS_NEWtep_get_all_get_params(array('action')) . 'action=buy_now&products_id=' $products_new['products_id']) . '">' tep_image_button('carrito.gif') . '</a>'
            }
            else
            {
                echo 
'Sin Stock' ;
            } 
Yo no encuentro la forma de meter este bloque de codigo (u otro parecido que hiciese lo mismo) dentro del bloque principal. Al final no se si me he explicado bien........

Necesito vuestra ayuda.

Gracias de antemano y un saludo.
  #2 (permalink)  
Antiguo 25/02/2008, 20:06
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 18 años, 7 meses
Puntos: 55
Re: Ayuda otra vez con while.

Código PHP:
<tr><td height=20></td></tr
                <
tr><td colspan=2 align=right><a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $new_products['products_id']) . '">' . tep_image_button('detalles.gif') . '</a> <br></td></tr
              <
tr><td colspan=2 align=right>'.(($new_products['products_quantity'] > 0)?'<a href="' . tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action')) . 'action=buy_now&products_id=' . $new_products['products_id']) . '">' . tep_image_button('carrito.gif') . </a>':'').  
</
table
             </
td
proba con algo como eso
__________________
Degiovanni Emilio
developtus.com
  #3 (permalink)  
Antiguo 26/02/2008, 02:46
 
Fecha de Ingreso: febrero-2008
Mensajes: 35
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Ayuda otra vez con while.

Gracias emiliodeg por tu ayuda, pero lo he probado y no funciona, me da error en esa ultima linea.

A ver si alguien echa una manita porfa.
  #4 (permalink)  
Antiguo 26/02/2008, 02:54
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.627
Antigüedad: 19 años, 5 meses
Puntos: 48
Re: Ayuda otra vez con while.

Código PHP:
<?php

  
if ( (!isset($new_products_category_id)) || ($new_products_category_id == '0') ) {
    
$new_products_query tep_db_query("select p.products_id, p.products_quantity, p.products_image, p.products_tax_class_id, if(s.status, s.specials_new_products_price, p.products_price) as products_price from " TABLE_PRODUCTS " p left join " TABLE_SPECIALS " s on p.products_id = s.products_id where products_status = '1' order by p.products_date_added desc limit " MAX_DISPLAY_NEW_PRODUCTS);
  } else {
    
$new_products_query tep_db_query("select distinct p.products_id, p.products_quantity, p.products_image, p.products_tax_class_id, if(s.status, s.specials_new_products_price, p.products_price) as products_price from " TABLE_PRODUCTS " p left join " TABLE_SPECIALS " s on p.products_id = s.products_id, " TABLE_PRODUCTS_TO_CATEGORIES " p2c, " TABLE_CATEGORIES " c where p.products_id = p2c.products_id and p2c.categories_id = c.categories_id and c.parent_id = '" . (int)$new_products_category_id "' and p.products_status = '1' order by p.products_date_added desc limit " MAX_DISPLAY_NEW_PRODUCTS);
  }

  
$row 0;
  
$col 0;


  echo 
'

    <table cellspacing=0 cellpadding=0 width=437 align=center>
     <tr><td background=images/m22.gif width=437 height=29 valign=top>
         <table cellspacing=0 cellpadding=0>
          <tr><td height=8></td></tr>
          <tr><td width=25></td><td class=ch6>Productos Destacados</td></tr>
         </table>
        </td></tr>
      <tr><td valign=top class=ch7>

           <table cellspacing=0 cellpadding=0 width=417 border=0 align=center>
             <tr><td height=13></td></tr>
             <tr>


       '
;


  while (
$new_products tep_db_fetch_array($new_products_query)) {
   
$new_products['products_name'] = tep_get_products_name($new_products['products_id']);
   
$product_query tep_db_query("select products_description  from " TABLE_PRODUCTS_DESCRIPTION " where products_id = '" . (int)$new_products['products_id'] . "' and language_id = '" . (int)"'");
   
$product tep_db_fetch_array($product_query);
   
$new_products['products_description'] = $product['products_description'];
   echo 
'

             <td width=208 valign=top align=center>
               <table cellspacing=0 cellpadding=0 width=200 align=center>
                <tr><td width=90 align=center valign=top><a href="' 
tep_href_link(FILENAME_PRODUCT_INFO'products_id=' $new_products['products_id']) . '">' tep_image(DIR_WS_IMAGES $new_products['products_image'], $new_products['products_name'], SMALL_IMAGE_WIDTHSMALL_IMAGE_HEIGHT'vspace=0') . '</a></td>
                <td valign=top>
                  <table cellspacing=0 cellpadding=0>
                   <tr><td><a height=35 valign=middle   class=ch9 href="' 
tep_href_link(FILENAME_PRODUCT_INFO'products_id=' $new_products['products_id']) . '">' $new_products['products_name'] . '</a></td></tr>
                   
                   <tr><td class=ch10 height=35 valign=middle>'
.preg_replace('/\s\S*$/i'''substr($new_products['products_description'], 025)).' ...</td></tr>
                   <tr><td height=0></td></tr>
                   <tr><td><span class=ch11>precio:</span> <span class=ch8>'
.$currencies->display_price($new_products['products_price'], tep_get_tax_rate($new_products['products_tax_class_id'])).'</span> </td></tr>
                  </table>
                 </td>
                </tr>
                <tr><td height=20></td></tr>
                <tr><td colspan=2 align=right><a href="' 
tep_href_link(FILENAME_PRODUCT_INFO'products_id=' $new_products['products_id']) . '">' tep_image_button('detalles.gif') . '</a> <br></td></tr>
              <tr><td colspan=2 align=right>'
;
if ( 
$new_products['products_quantity'] > )
                    {
            echo 
'<a href="' tep_href_link(FILENAME_PRODUCTS_NEWtep_get_all_get_params(array('action')) . 'action=buy_now&products_id=' $products_new['products_id']) . '">' tep_image_button('carrito.gif') . '</a>'
            }
            else
            {
                echo 
'Sin Stock' ;
            }  
echo </
table>
             </
td>
  #5 (permalink)  
Antiguo 26/02/2008, 03:51
 
Fecha de Ingreso: febrero-2008
Mensajes: 35
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Ayuda otra vez con while.

Me sigue dando error (este error: Parse error: parse error, unexpected '<', expecting ',' or ';' ) en linea 80 (en esto: echo </table>).
Ahora adjunto el archivo completo con la modificación, talvez así sea mas facil.
Código PHP:
<?php

  
if ( (!isset($new_products_category_id)) || ($new_products_category_id == '0') ) {
    
$new_products_query tep_db_query("select p.products_id, p.products_image, p.products_tax_class_id, if(s.status, s.specials_new_products_price, p.products_price) as products_price from " TABLE_PRODUCTS " p left join " TABLE_SPECIALS " s on p.products_id = s.products_id where products_status = '1' order by p.products_date_added desc limit " MAX_DISPLAY_NEW_PRODUCTS);
  } else {
    
$new_products_query tep_db_query("select distinct p.products_id, p.products_image, p.products_tax_class_id, if(s.status, s.specials_new_products_price, p.products_price) as products_price from " TABLE_PRODUCTS " p left join " TABLE_SPECIALS " s on p.products_id = s.products_id, " TABLE_PRODUCTS_TO_CATEGORIES " p2c, " TABLE_CATEGORIES " c where p.products_id = p2c.products_id and p2c.categories_id = c.categories_id and c.parent_id = '" . (int)$new_products_category_id "' and p.products_status = '1' order by p.products_date_added desc limit " MAX_DISPLAY_NEW_PRODUCTS);
  }

  
$row 0;
  
$col 0;


  echo 
'

    <table cellspacing=0 cellpadding=0 width=437 align=center>
     <tr><td background=images/m22.gif width=437 height=29 valign=top>
         <table cellspacing=0 cellpadding=0>
          <tr><td height=8></td></tr>
          <tr><td width=25></td><td class=ch6>Productos Destacados</td></tr>
         </table>
        </td></tr>
      <tr><td valign=top class=ch7>

           <table cellspacing=0 cellpadding=0 width=417 border=0 align=center>
             <tr><td height=13></td></tr>
             <tr>


       '
;


  while (
$new_products tep_db_fetch_array($new_products_query)) {
   
$new_products['products_name'] = tep_get_products_name($new_products['products_id']);
   
$product_query tep_db_query("select products_description  from " TABLE_PRODUCTS_DESCRIPTION " where products_id = '" . (int)$new_products['products_id'] . "' and language_id = '" . (int)"'");
   
$product tep_db_fetch_array($product_query);
   
$new_products['products_description'] = $product['products_description'];
   echo 
'

             <td width=208 valign=top align=center>
               <table cellspacing=0 cellpadding=0 width=200 align=center>
                <tr><td width=90 align=center valign=top><a href="' 
tep_href_link(FILENAME_PRODUCT_INFO'products_id=' $new_products['products_id']) . '">' tep_image(DIR_WS_IMAGES $new_products['products_image'], $new_products['products_name'], SMALL_IMAGE_WIDTHSMALL_IMAGE_HEIGHT'vspace=0') . '</a></td>
                <td valign=top>
                  <table cellspacing=0 cellpadding=0>
                   <tr><td><a height=35 valign=middle   class=ch9 href="' 
tep_href_link(FILENAME_PRODUCT_INFO'products_id=' $new_products['products_id']) . '">' $new_products['products_name'] . '</a></td></tr>
                   
                   <tr><td class=ch10 height=35 valign=middle>'
.preg_replace('/\s\S*$/i'''substr($new_products['products_description'], 025)).' ...</td></tr>
                   <tr><td height=0></td></tr>
                   <tr><td><span class=ch11>precio:</span> <span class=ch8>'
.$currencies->display_price($new_products['products_price'], tep_get_tax_rate($new_products['products_tax_class_id'])).'</span> </td></tr>
                  </table>
                 </td>
                </tr>
                <tr><td height=20></td></tr>
                <tr><td colspan=2 align=right><a href="' 
tep_href_link(FILENAME_PRODUCT_INFO'products_id=' $new_products['products_id']) . '">' tep_image_button('detalles.gif') . '</a> <br></td></tr>
              <tr><td colspan=2 align=right>'

if ( 
$new_products['products_quantity'] > 
                    { 
            echo 
'<a href="' tep_href_link(FILENAME_PRODUCTS_NEWtep_get_all_get_params(array('action')) . 'action=buy_now&products_id=' $products_new['products_id']) . '">' tep_image_button('carrito.gif') . '</a>';  
            } 
            else 
            { 
                echo 
'Sin Stock';
            }   
echo </
table
             </
td


        
';
   
    $col ++;
    if ($col > 1) {
      $col = 0;
      $row ++;
      echo '

             
</tr>
             <
tr><td height=5></td></tr>
              <
tr><td colspan=3 valign=top>
               <
table cellspacing=0 cellpadding=0>
                <
tr><td width=200 height=1 background=images/m29.gif></td><td width=14></td> <td width=200 height=1 background=images/m29.gif></td></tr>
               </
table>
              </
td></tr>
              <
tr><td height=5></td></tr>
              <
tr>


           
';
    } else echo '
<td background=images/m09.gif width=1></td>';
  }


  echo '

                         
</tr>
                        </
table

         </
td></tr>
        <
tr><td><img src=images/m30.gif width=438 height=7></td></tr>
       </
table>

       ;


?>
Al añadir la modificación de DarkJ, parece como si se rompiera la estructura del archivo.

A ver si podemos arreglarlo.

Slds.
  #6 (permalink)  
Antiguo 26/02/2008, 08:30
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Re: Ayuda otra vez con while.

ese echo </table> te sobra y te falta abrir una llave de un else aqui:

Código PHP:
 if ($col 1) { 
      
$col 0
      
$row ++; 
      echo 


             </tr> 
             <tr><td height=5></td></tr> 
              <tr><td colspan=3 valign=top> 
               <table cellspacing=0 cellpadding=0> 
                <tr><td width=200 height=1 background=images/m29.gif></td><td width=14></td> <td width=200 height=1 background=images/m29.gif></td></tr> 
               </table> 
              </td></tr> 
              <tr><td height=5></td></tr> 
              <tr> '
;  
} else
   { 
       echo 
'<td background=images/m09.gif width=1></td>'
   

Saludos.

Última edición por Carlojas; 26/02/2008 a las 08:44
  #7 (permalink)  
Antiguo 26/02/2008, 08:40
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Re: Ayuda otra vez con while.

Revisa bien cuandos creas las tablas y las cierras, ese echo </table> creo que te sobra y algunas etiquetas mas </table>

Saludos.
  #8 (permalink)  
Antiguo 26/02/2008, 08:54
 
Fecha de Ingreso: febrero-2008
Mensajes: 35
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Ayuda otra vez con while.

Gracias otra vez, pero sigue sin funcionar.
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 13:54.