SoloCodigo

Programación Web y Scripting => PHP => Mensaje iniciado por: jason_williams en Lunes 11 de Enero de 2010, 20:15

Título: error con echo
Publicado por: jason_williams en Lunes 11 de Enero de 2010, 20:15
hola gente, me podria ayudar con esto? tengo un problema xke el echo no me lo muestra.



<?
                         
$link = mysql_connect("localhost", "root", "");
mysql_select_db("bdcaleta", $link);
$result = mysql_query("SELECT * FROM carns", $link);
 if ($row = mysql_fetch_array($result)){
 
   while ($row = mysql_fetch_array($result)) {
   
    ?>
    <tr><td></td><td align="left" width="301" height="10"><font face="Times New Roman, Times, serif" color="#501d1d"></font>
    <?
     echo "hola";            <---------- aki no me lo muestra <----------
    ?>
    </td></tr>
    <?
 

     }
 
} else {
echo "¡ No se ha encontrado ningún registro !";        

}
?>


he probado con "", con '', sin ellas, con variables, con el print, pero nada de nada, no lo muestra, en cambio si antes del </front> pongo hola, si lo muestra.

me estoy volviendo loco con este tema xD

gracias de antemano
Título: Re: error con echo
Publicado por: System@32 en Lunes 11 de Enero de 2010, 22:18
Intenta no utilizar los short tags ya que el PHP no se lleva muy bien con ellos... En el if() tienes que comprobar si mysql_query() se ha ejecutado correctamente... y para saber si hay algun registro usa mysql_num_rows()... recuerda que si no hay nada en la base de datos nunca te hará el while...
Código: PHP
  1.  
  2. <?php
  3. $link = mysql_connect("localhost", "root", "");
  4. mysql_select_db("bdcaleta", $link);
  5. $result = mysql_query("SELECT * FROM carns", $link);
  6. if( $result ){
  7.     if( mysql_num_rows($result) > 0){
  8.         while( $row = mysql_fetch_array($result) ){
  9.             echo "hola";
  10.         }
  11.     } else {
  12.         echo "¡ No se ha encontrado ningún registro !";
  13.     }
  14. } else {
  15.     echo mysql_error();
  16. }
  17. ?>
  18.  
  19.  
Título: Re: error con echo
Publicado por: DriverOp en Martes 12 de Enero de 2010, 00:34
Hay otro error en el código original:
Código: PHP
  1. if ($row = mysql_fetch_array($result)) {
  2. while ($row = mysql_fetch_array($result)) {...
  3.  
El if te está consumiendo el primer resultado de la consulta, de modo que si la consulta devuelve un solo registro, nunca entrará al while, mientras que si tiene más de uno, nunca mostrarás el primero de ellos.
Deberías haber hecho esto:
Código: PHP
  1. if ($row = mysql_fetch_array($result)) {
  2. do {
  3. ... mostrar los registros aquí ...
  4. } while ($row = mysql_fetch_array($result));
  5. }
  6. else { echo "No hay registros para esta consulta."; }
  7.  

O bién, hacer lo que te ha indicado System@32.