Foros del Web » Programando para Internet » PHP »

Problema con mysql_fetch_array

Estas en el tema de Problema con mysql_fetch_array en el foro de PHP en Foros del Web. Buenas, primero quiero saludar a todos los foreros de foros del web ya que este es mi primer post. Bueno os comento mi problema estoy ...
  #1 (permalink)  
Antiguo 18/03/2010, 12:44
 
Fecha de Ingreso: marzo-2010
Mensajes: 3
Antigüedad: 14 años, 8 meses
Puntos: 0
Problema con mysql_fetch_array

Buenas, primero quiero saludar a todos los foreros de foros del web ya que este es mi primer post.

Bueno os comento mi problema

estoy haciendo una pagina web en la que la pagina index.php del administrador muestra los ultimos registros de la base de datos (videos noticias y proyectos)

seria una cosa asi



El problema es el que veis en la IMG, en la celda de arriba a la derecha.

Os copio el codigo del index.php, omito la celda de proyectos, que la dejo como include para que sepan que esta hay

Código:
<title>CMD Index</title>
<p>
  <?php 

include("nav.inc"); 
include("../functions.php");
// Abre la conexión con la base de datos
include("../db_connect.php");
?>
<table width="80%" border="1">
  <tr>
    <td><?php


// Si delete tiene un post_id válido
$delete = (isset($_REQUEST["delete"]))?$_REQUEST["delete"]:""; 
if (preg_match("/^[0-9]+$/", $delete)) {

  $sql = "DELETE FROM posts WHERE post_id = $delete LIMIT 1";
  $result = mysql_query($sql);
  if (!$result) {
    $message = "Fallo al borrar noticia $delete. MySQL dijo" . mysql_error();
  } else {
    $message = "Noticia $delete borrada.";
    $message .= "<br />" . makerssfeed();
  }
}


// Selecciona todos los posts en db 
$sql = "SELECT post_id, title, DATE_FORMAT(postdate, '%e %b %Y at %H:%i') AS dateattime FROM posts ORDER BY postdate DESC";
$result = mysql_query($sql);
$myposts = mysql_fetch_array($result);

?><h1>Todas las Noticias </h1>

<?php
if (isset($message)) {echo "<p class='message'>".$message."</p>";}

if($myposts) {
  echo "<ol>\n";
  do {
    $post_id = $myposts["post_id"];
    $title = $myposts["title"];
    $dateattime = $myposts["dateattime"];
    echo "<li value='$post_id'>";
    echo "<a href='addnews.php?post_id=$post_id'>$title</a> posteado en $dateattime";
    echo " [<a href='".$_SERVER["PHP_SELF"]."?delete=$post_id' onclick='return confirm(\"¿Seguro?\")'>delete</a>]";
    echo "</li>\n";
  } while ($myposts = mysql_fetch_array($result));
  echo "</ol>";
} else {
  echo "<p>No hay noticias en la base de datos.</p>";
}
?></td>
    <td><?php


// Si delete tiene un post_id válido
$delete = (isset($_REQUEST["delete"]))?$_REQUEST["delete"]:""; 
if (preg_match("/^[0-9]+$/", $delete)) {

  $sql = "DELETE FROM postsvid WHERE post_id = $delete LIMIT 1";
  $resultvid = mysql_query($sql);
  if (!$result) {
    $message = "Fallo al borrar noticia $delete. MySQL dijo" . mysql_error();
  } else {
    $message = "Noticia $delete borrada.";
    $message .= "<br />" . makerssfeed();
  }
}


// Selecciona todos los posts en db 
$sql2 = "SELECT post_id, title, DATE_FORMAT(postdate, '%e %b %Y at %H:%i') AS dateattime FROM postsvid ORDER BY postdate DESC";
$result2= mysql_query($sql2);
$myposts2= mysql_fetch_array($result2);
?>
<h1>Todas los Videos </h1>

<?php
if (isset($message)) {echo "<p class='message'>".$message."</p>";}

if($myposts2) {
  echo "<ol>\n";
  do {
    $post_id = $myposts2["post_id"];
    $title = $myposts2["title"];
    $dateattime = $myposts2["dateattime"];
    echo "<li value='$post_id'>";
    echo "<a href='addpostvideos.php?post_id=$post_id'>$title</a> posteado en $dateattime";
    echo " [<a href='".$_SERVER["PHP_SELF"]."?delete=$post_id' onclick='return confirm(\"¿Seguro?\")'>delete</a>]";
    echo "</li>\n";
  } while ($myposts2 = mysql_fetch_array($result2));
  echo "</ol>";
} else {
  echo "<p>No hay videos en la base de datos.</p>";
}
?></td>
  </tr>
  <tr>
    <td><?php include("lista_proyectos.php"); ?></td>
    <td>&nbsp;</td>
  </tr>
</table>
He probado a cambiar los nombres de mypost pero nada T_T, he de decir que este codigo lo saque de un libro que tengo en casa y loq ue toy haciendo es modificarlo para adaptarlo a mis necesidades asique mis conocimientos de php son bastante basicos pero bueno creo que la sintaxis la entiendo XD

Gracias de antemano a todo el foro

EDITO:

Descubri que al ejecutar por ejemplo lista_videos.php por separado para ver si salia el error, descubro que sigue saliendo aun ejecutando el archivo de forma independiente.

os dejo el codigo de lo que seria la pagina lista_video.php

Código:
<?php

// Abre la conexión con la base de datos
include("../db_connect.php");
// Si delete tiene un post_id válido
$delete = (isset($_REQUEST["delete"]))?$_REQUEST["delete"]:""; 
if (preg_match("/^[0-9]+$/", $delete)) {

  $sql = "DELETE FROM postsvid WHERE post_id = $delete LIMIT 1";
  $result = mysql_query($sql);
  if (!$result) {
    $message = "Fallo al borrar el video $delete. MySQL dijo" . mysql_error();
  } else {
    $message = "Video $delete borrado.";
    $message .= "<br />" . makerssfeed();
  }
}


// Selecciona todos los posts en db 
$sql= "SELECT post_id, title, DATE_FORMAT(postdate, '%e %b %Y at %H:%i') AS post_id FROM postsvid ORDER BY postdate ASC";
$result = mysql_query($sql);
$myposts = mysql_fetch_array($result);
?><h1>Todos los Videos </h1>

<?php
if (isset($message)) {echo "<p class='message'>".$message."</p>";}

if($myposts) {
  echo "<ol>\n";
  do {
    $post_id = $myposts["post_id"];
    $title = $myposts["title"];
    $dateattime = $myposts["dateattime"];
    echo "<li value='$post_id'>";
    echo "<a href='addpostvideos.php?post_id=$post_id'>$title</a> posteado en $dateattime";
    echo " [<a href='".$_SERVER["PHP_SELF"]."?delete=$post_id' onclick='return confirm(\"¿Seguro?\")'>delete</a>]";
    echo "</li>\n";
  } while ($myposts = mysql_fetch_array($result));
  echo "</ol>";
} else {
  echo "<p>No hay videos en la base de datos.</p>";
}
?>

Última edición por lancelotrym; 18/03/2010 a las 12:51 Razón: Descubro otro fallo
  #2 (permalink)  
Antiguo 18/03/2010, 12:53
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 8 meses
Puntos: 77
Respuesta: Problema con mysql_fetch_array

El error es claro, le estas pasando un boolean a msyql_fetch_array(), cuando esta espera un resource, esto suele pasar cuando tienes un error en la consulta, utiliza mysql_error() para depurarla
  #3 (permalink)  
Antiguo 18/03/2010, 12:58
Avatar de eulloa  
Fecha de Ingreso: octubre-2007
Ubicación: Donde caiga la noche, si mi hijo me deja
Mensajes: 691
Antigüedad: 17 años, 1 mes
Puntos: 5
Respuesta: Problema con mysql_fetch_array

¿Y la línea 77 de tu code es......? Se supone q es una consulta, pero mejor q especifiques claramente cual.
  #4 (permalink)  
Antiguo 18/03/2010, 13:05
 
Fecha de Ingreso: marzo-2010
Mensajes: 3
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Problema con mysql_fetch_array

lo siento eulloa especifico aqui la linea 77 lo tendre encuenta para otras veces

Código:
linea 77: $myposts2= mysql_fetch_array($result2);
Probare lo de mysql_error() gracias darkasecas
  #5 (permalink)  
Antiguo 18/03/2010, 13:18
Avatar de hieloverde  
Fecha de Ingreso: julio-2005
Ubicación: México, D.F
Mensajes: 467
Antigüedad: 19 años, 4 meses
Puntos: 5
Respuesta: Problema con mysql_fetch_array

Hola,

Complementando lo de darkasecas para descubrir el error en la consulta, tu código no te quedaría mas simple con esta forma?

Código PHP:
<?php
$consulta_sql 
mysql_query("SELECT * FROM tabla") or die(mysql_error());
if(
mysql_num_rows($consulta) > 0)
{
    while(
$fila mysql_fetch_array($consulta_sql))
    {
        
/* Se muestran los registros */    
    
}
}
else 
{
    
/* Lo que pasa si no hay registros */    
}
?>


Saludos,
__________________
<? echo("1 <script> dice + que 1000 palabras"); ?> EspacioMéxico
  #6 (permalink)  
Antiguo 23/03/2010, 04:53
 
Fecha de Ingreso: marzo-2010
Mensajes: 3
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Problema con mysql_fetch_array

gracias por las respuestas, y perdon por la tardanza en la respuesta me quede sin PC estos dias, voy a probar vuestros consejos y os comentare gracias ^^

EDITO:

bueno consegui que aparezcan los posts bien, aun no se como lo hice xDDD
Ahora tengo otro problema, cuando borro por ejemplo un post de noticias con id 2 y hay otro post por ejemplo en proyectos o en videos con el mismo ID se borran todos, como podria hacer que eso no ocurriera???

Probe a cambiar el nombre de las ID dejandolo asi -> news_id, id_videos e id_proyectos pero nada.

Os dejo un enlace a un rar para que podais descargar los archivos y lo veis vosotros, tambien os adjunto un .sql para que genereis la base de datos como la tengo yo, Gracias de antemano.

Les recuerdo que mis conocimientos son muy escasos, entiendo algo pero muy muy poco XDD y este blgo es de un libro que saque hace tiempo, pero de verdad que les agradezco su ayuda y pido disculpas si resulto pesado cuando haga preguntas tontas.

[URL="http://www.empireofgame.com/www.rar"]http://www.empireofgame.com/www.rar[/URL]


Última edición por lancelotrym; 23/03/2010 a las 10:22 Razón: cambios en archivos

Etiquetas: Ninguno
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 22:34.