Foros del Web » Programando para Internet » PHP »

Fallo en codigo

Estas en el tema de Fallo en codigo en el foro de PHP en Foros del Web. Vale, hay algun fallo en la sintesis de este codigo y no tengo ni idea de cual es, haber si ustedes saben algo: Código PHP: ...
  #1 (permalink)  
Antiguo 04/02/2009, 14:14
Avatar de juanitTo  
Fecha de Ingreso: enero-2007
Mensajes: 406
Antigüedad: 17 años, 3 meses
Puntos: 5
Pregunta Fallo en codigo

Vale, hay algun fallo en la sintesis de este codigo y no tengo ni idea de cual es, haber si ustedes saben algo:

Código PHP:
<?
$sql 
"select * from articulos order by id_articulos desc limit 10";
$resultados mysql_query($sql,$db);
while(
$row mysql_fetch_array($resultados)) { 
   echo 
'<table border='1' bordercolor='#999999'><tr><td>'.$row["articulo"].'</td></tr></table><br>';
}
?>
Antes recuerdo haberlo usado aunque debi de modificarlo y no me acuerdo, me devuelve el siguiente error:
Parse error: syntax error, unexpected T_LNUMBER, expecting ',' or ';' in /home/videomet/public_html/escritor/intro.php on line 19

Gracias
__________________
Videos de Metal
  #2 (permalink)  
Antiguo 04/02/2009, 14:26
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Fallo en codigo

No estas escapando correctamente las comillas, revisa: Como usar las comillas bien
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 04/02/2009, 14:36
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 5 meses
Puntos: 11
Respuesta: Fallo en codigo

Usa asi:


Código PHP:
<?
$sql 
"select * from articulos order by id_articulos desc limit 10";
$resultados mysql_query($sql,$db);
while(
$row mysql_fetch_array($resultados)) { 
   echo 
"<table border='1' bordercolor='#999999'><tr><td>".$row["articulo"]."</td></tr></table><br>";
}
?>

Saludos
  #4 (permalink)  
Antiguo 04/02/2009, 14:43
Avatar de rodno  
Fecha de Ingreso: enero-2009
Ubicación: En algun lugar de Cuba
Mensajes: 426
Antigüedad: 15 años, 3 meses
Puntos: 43
De acuerdo Respuesta: Fallo en codigo

seria algo asi, tiens que tener mucho cuidado con la concatenacion de cadenas
<?
$sql = "select * from articulos order by id_articulos desc limit 10";
$resultados = mysql_query($sql,$db);
while($row = mysql_fetch_array($resultados)) {
echo '<table border="1" bordercolor="#999999"><tr><td>'.$row["articulo"].'</td></tr></table><br>';
}
?>
  #5 (permalink)  
Antiguo 04/02/2009, 14:57
Avatar de juanitTo  
Fecha de Ingreso: enero-2007
Mensajes: 406
Antigüedad: 17 años, 3 meses
Puntos: 5
Respuesta: Fallo en codigo

Si lo cambio a como me habeis dicho en ambos casos me dice:

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/videomet/public_html/escritor/intro.php on line 15

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/videomet/public_html/escritor/intro.php on line 16

Que viene a ser en las lineas:

$resultados = mysql_query($sql,$db);
while($row = mysql_fetch_array($resultados)) {
__________________
Videos de Metal
  #6 (permalink)  
Antiguo 04/02/2009, 15:05
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Fallo en codigo

Eso es porque tal vez no has iniciado la conexion a la base de datos o $db no es la variable adecuada.

Y lo mas correcto para escapar tu cadena es:
Código PHP:
echo "<table border=\"1\" bordercolor=\"#999999\"><tr><td>{$row['articulo']}</td></tr></table><br>";

// Otra cosa, seria mejor si lo haces asi:
echo "<div style=\"border:1px #999 solid; margin-bottom:5px;\">{$row['articulo']}</div>"
Mejor aun si creas una clase CSS y la asignas en lugar del style.
__________________
- León, Guanajuato
- GV-Foto
  #7 (permalink)  
Antiguo 04/02/2009, 15:14
Avatar de juanitTo  
Fecha de Ingreso: enero-2007
Mensajes: 406
Antigüedad: 17 años, 3 meses
Puntos: 5
Mmm, el script tiene dos partes, la que introduce los datos y la que lee los datos, los datos se introducen bien, aunque a veces creo que se introducen en blanco, lo que quiero decir es que supongo que la conexion esta bien, si uso el codigo que me diste tu triby me sale lo mismo:
http://www.videometal.es/escritor/intro.php

Por cierto este es el script entero:

<?
//conecto con la base de datos
$conn = mysql_connect("localhost","***","***");
mysql_select_db("***",$conn); ?>
<?

//Generamos la ssql e insertamos el registro
$ssql = "INSERT INTO articulos (articulo) VALUES ('" . $elm1 . "')";
//echo $ssql . "<p>";
mysql_query($ssql,$conn);
?>

<?
$sql = "select * from articulos order by id_articulos desc limit 10";
$resultados = mysql_query($sql,$db);
while($row = mysql_fetch_array($resultados)) {
echo "<div style=\"border:1px #999 solid; margin-bottom:5px;\">{$row['articulo']}</div>";
}
?>

<?
mysql_close($conn);
?>
__________________
Videos de Metal

Última edición por GatorV; 04/02/2009 a las 15:30
  #8 (permalink)  
Antiguo 04/02/2009, 15:24
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Fallo en codigo

Cita:
$resultados = mysql_query($sql,$db);
Cita:
$conn = mysql_connect("localhost","***","***");
Estas llamando a la variable $db, pero tu variable de conexion es $conn
  #9 (permalink)  
Antiguo 04/02/2009, 15:33
Avatar de dadabit  
Fecha de Ingreso: febrero-2009
Ubicación: Coahuila, México
Mensajes: 145
Antigüedad: 15 años, 2 meses
Puntos: 1
Respuesta: Fallo en codigo

estas manejando mal las comillas en el echo...
  #10 (permalink)  
Antiguo 04/02/2009, 15:40
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Fallo en codigo

Cita:
si uso el codigo que me diste tu triby me sale lo mismo:
Si, yo solo te sugeri un mejor formato para desplegar los datos y tambien te dije:

Cita:
tal vez no has iniciado la conexion a la base de datos o $db no es la variable adecuada.
Lo cual confirmaste al colocar tu codigo completo, en vez de $db debes usar $conn

Sugerencia: No copies y pegues codigo solo porque alguno de nosotros dice que puede funcionar o ser mejor que las propuestas de otros, analiza y ve para que sirve cada cosa, que diferencia hace con lo que ya tenias.

Si despues del primer cambio que hiciste en el echo te da error en las dos lineas anteriores, entonces debes enfocarte a solucionar primero ese error, o no avanzaras.
__________________
- León, Guanajuato
- GV-Foto
  #11 (permalink)  
Antiguo 05/02/2009, 07:04
Avatar de rodno  
Fecha de Ingreso: enero-2009
Ubicación: En algun lugar de Cuba
Mensajes: 426
Antigüedad: 15 años, 3 meses
Puntos: 43
De acuerdo Respuesta: Fallo en codigo

Espero que te sirva esto a mi me funciona de maravilla

Código PHP:
$conexion mysql_connect("localhost""user""pasword");
        
mysql_select_db("base de datos"$conexion);
        
$consulta="Select * From table";
        
$sql mysql_query($consulta$conexion); 
  #12 (permalink)  
Antiguo 05/02/2009, 07:46
Avatar de acumulador  
Fecha de Ingreso: junio-2008
Ubicación: Medellin - Antiquia
Mensajes: 459
Antigüedad: 15 años, 10 meses
Puntos: 7
Respuesta: Fallo en codigo

aver, si lo que quieres es mostrar los datos en una tabla y ya que el error inicial te daba en la tabla, se me ocurre que lo podrias hacer asi:
//conectas con la base de datos
mysql_connect("localhost","xxx","xxx");
mysql_select_db("tu_basededatos");
//ahora hacemos la consulta sql
$sql=mysql_query("SELECT * FROM tu_tabla WHERE campo='$condicion'");
$n=mysql_num_rows($sql);
//esto en caso de no estar seguro de si hay o no registros
if($n<1){
echo "no hay registros para la consulta";
}else{ ?>
//en este caso si hay registros
//por tanto cierro php y creo una tabla, pues lo que necesitas repetir es solo las filas
//sin embargo recuerda que no se ha cerrado la condicion inicial
<table width="375" border="1" align="center">
<tr>
<td width="197"><div align="center">Campo1</div></td>
<td width="37"><div align="center">Campo2</div></td>
<td width="67"><div align="center">Campo3</div></td>
</tr>
<tr>
//fijate que se habre nuevamente php para crear tantas filas como registros se encuentren con un ciclo
<?php
while($rs = mysql_fetch_array($sql)){ ?>
<td><?php echo $rs['campo1_tabla']; ?></td>
<td><?php echo $rs['campo2_tabla']; ?></td>
<td><?php echo $rs['campo3_tabla']; ?></td>
</tr>
<?php } ?>
</table>

bueno ami me funciona a la perfeccion y creo que es lo que necesitas, suerte...
__________________
-----------------------------------------------------------------------------
Yo vivo de preguntar, saber no puede ser lujo...
  #13 (permalink)  
Antiguo 05/02/2009, 09:20
Avatar de juanitTo  
Fecha de Ingreso: enero-2007
Mensajes: 406
Antigüedad: 17 años, 3 meses
Puntos: 5
Respuesta: Fallo en codigo

Muchas gracias a todos, buscando mas formas de hacer esto escontre una perfecta por google, consiste en paginar los resultados, aqui pongo el codigo:

Código PHP:
<?

function conectar() 

    
$base_de_datos "***";
    
$db_usuario "***"
    
$db_password "***"
   
    if (!(
$link mysql_connect("tuhost"$db_usuario$db_password))) 
    { 
        echo 
"Error conectando a la base de datos."
        exit(); 
    } 
    if (!
mysql_select_db($base_de_datos$link)) 
    { 
        echo 
"Error seleccionando la base de datos."
        exit(); 
    } 
    return 
$link


$db conectar();


$registros 5;

if (!
$pagina) { 
    
$inicio 0
    
$pagina 1

else { 
    
$inicio = ($pagina 1) * $registros



?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//ES" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Noticias</title>
<style type="text/css"> 
.punteado{ 
  border-style: dotted; 
   border-width: 2px; 
   border-color: #999999; 

</style> 
</head>

<body bgcolor="#000000">
<center>
<table background="fondo.gif" class="punteado" width="60%"><tr><td><br>
    <?
    $resultados 
mysql_query("SELECT id FROM articulos");
    
$total_registros mysql_num_rows($resultados); 
    
$resultados mysql_query("SELECT * FROM articulos ORDER BY fecha DESC LIMIT $inicio, $registros");    
    
$total_paginas ceil($total_registros $registros);                       

    if(
$total_registros) {
    
        while(
$articulo=mysql_fetch_array($resultados)) {
            
            echo 
"<table background='fondo3.gif' cellspacing=0 cellpadding=2 width='80%' border='1' bordercolor='#777777'><tr><td>".$articulo["contenido"]."</td></tr></table><br>";
            
        }
        
    } else {
        echo 
"<font color='darkgray'>(sin resultados)</font>";
    }
    
    
mysql_free_result($resultados);                
    
    if(
$total_registros) {
        
        echo 
"<center>";
        
        if((
$pagina 1) > 0) {
            echo 
"<a href='articulos.php?pagina=".($pagina-1)."'>< Anterior</a> ";
        }
        
        for (
$i=1$i<=$total_paginas$i++){ 
            if (
$pagina == $i
                echo 
"<b>".$pagina."</b> "
            else
                echo 
"<a href='articulos.php?pagina=$i'>$i</a> "
        }
      
        if((
$pagina 1)<=$total_paginas) {
            echo 
" <a href='articulos.php?pagina=".($pagina+1)."'>Siguiente ></a>";
        }
        
        echo 
"</center>";
        
    }
    
?>
</td></tr></table></center>
</body>
</html>
<? mysql_close($db);?>
__________________
Videos de Metal
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:14.