Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/09/2009, 13:52
maqdmin
 
Fecha de Ingreso: agosto-2009
Ubicación: Vigo - Galiza
Mensajes: 17
Antigüedad: 14 años, 8 meses
Puntos: 0
Hola amigos. Estoy a vueltas con un ejercicio que trata sobre subastas de articulos. Cuando le doy a borrar a un articulo, no me lo borra y ademas me aparece este mensaje.


Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\cursoPHP5\curso\Alumnos\marcos\ejercicio7a\inde x.php on line 339

Para borrar lo que hago es if (isset ($_REQUEST['borrar'])) localizar el articulo mediante un indice
$pos=$_REQUEST["nume"];
Cargo la respuesta en una variable,
$respuesta= mysql_query ($borra,$id_conexion)
y mandarlo imprimir
imprime_resp ($respuesta,-1);


A ver si me podeis ayudar.
//----------------------------------------------------------
// Opciones de manejo del programa
//----------------------------------------------------------

// Si pulsamos el boton LISTAR ARTICULOS
if (isset ($_POST['listado'])) {
encabezado();
$lista= "SELECT * FROM subasta_articulos";
$respuesta= mysql_query ($lista,$id_conexion) or
die ("No se han podido listar los articulos".mysql_error());
imprime_resp ($respuesta,-1);
} else

if (isset ($_POST['pujar'])) {
echo ("pujar");
} else

if (isset ($_POST['editar'])) {
echo ("editar");
} else

if (isset ($_REQUEST['borrar'])) { $pos=$_REQUEST["nume"];
$borra=" DELETE FROM subasta_articulos WHERE id=\"$pos\"";
$respuesta= mysql_query ($borra,$id_conexion) or
die ("No se han podido listar los articulos".mysql_error());
imprime_resp ($respuesta,-1);

} else

{
encabezado();
$lista= "SELECT * FROM subasta_articulos";
$respuesta= mysql_query ($lista,$id_conexion) or
die ("No se han podido listar los articulos".mysql_error());
imprime_resp ($respuesta,-1);
}










// respuesta estandar ################################################## ####
function imprime_resp ($larespuesta,$editar) {
// si $editar o borrar o pujar NO coincide con ningun indice haz esto
echo "<TABLE border='0' cellspacing='1' cellpadding='2'>";
$fila=mysql_num_rows($larespuesta); for ( $i=1;$i<=$fila;$i++){
//while($fila = mysql_fetch_array($larespuesta)) {
if ($editar != $i) {
$filas = mysql_fetch_array($larespuesta);
echo " <TR>
<TH colspan='2' width='200' ALGIN = LEFT>
&nbsp;<FONT size='2' face='arial'>
$filas[1]</FONT>&nbsp
</TH>
<TH colspan='2' width='300' ALGIN = LEFT>
&nbsp;<FONT size='2' face='arial'>
$filas[2]</FONT>&nbsp
</TH>
<TH colspan='2' width='150' ALGIN = LEFT>
&nbsp;<FONT size='2' face='arial'>
$filas[3]</FONT>&nbsp
</TH>
<TH colspan='2' width='200' ALGIN = LEFT>
&nbsp;<FONT size='2' face='arial'>
$filas[4]</FONT>&nbsp
</TH>
<TH colspan='2' width='50'>
&nbsp;<FONT size='2' face='arial'>".
boton_ficticio("Pujar","index.php?pujar&nume=".$i) ."
</TH>
<TH colspan='2' width='50'>
&nbsp;<FONT size='2' face='arial'>".
boton_ficticio("Editar","index.php?editar&nume=".$ i)."
</TH>
<TH colspan='2' width='50'>
&nbsp;<FONT size='2' face='arial' color = black>".
boton_ficticio("Borrar","index.php?borrar&nume=".$ i)."
</TR>";
} else {

print ("hoallasldaldasdas sa dasdas dd a");
}
} echo "</TABLE><P>";
} // respuesta estandar########################################## ###########

Bueno me auto respondo yo mismo, el problema estaba en los indices. Me explico al principio los articulos tienen el indice 1,2,3,4,5 pero a medida que voy borrando y añadiendo los indices siguen creciendo 23,24,25 aunque solo haya cuatro articulos. Como yo indizaba por el conteo inicial ya no se correspondia. Por si a alguien le interesa. Gracias de todas.

Última edición por GatorV; 24/09/2009 a las 14:38