problema con eliminar registro en mysql, php

Discussion in 'Programación & Programación Web' started by satorus, Oct 28, 2013.

  1. satorus

    satorus Usuario Nuevo nvl. 1
    187/244

    Joined:
    Feb 8, 2012
    Messages:
    3
    Likes Received:
    0
    Muchachos me dirijo a ustedes por una duda que tengo


    tengo un formulario que se encarga de buscar y eliminar ofertas


    el problema es que al pinchar en eliminar me arroja el siguiente error firebug












    ( ! ) Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\wamp\www\prueba\php\eliminar_oferta.php on line 9 Call Stack # Time Memory Function Location 1 0.0014 673760 {main}( ) ..\eliminar_oferta.php:0 2 0.0677 681336 mysql_fetch_assoc ( ) ..\eliminar_oferta.php:9


    ( ! ) Notice: Undefined variable: data in C:\wamp\www\prueba\php\eliminar_oferta.php on line 14 Call Stack # Time Memory Function Location 1 0.0014 673760 {main}( ) ..\eliminar_oferta.php:0


    null








    lo curioso es que al ver en la base de datos el registro se elimina

    segun lei es un problema con la consulta, pero la probe en el motor y funciona


    A continuacion dejo parte del codigo involucrado





    eliminar_oferta.php








    esto en el js





    formulario

















     
  2. ycsm

    ycsm Usuario Casual nvl. 2
    87/163

    Joined:
    Apr 2, 2010
    Messages:
    8,598
    Likes Received:
    5
    sera porque al eliminar no tienes nada que asociar y la respuesta es solo un booleano por eso el mysqlfetchassoc no funciona :p mejor preguntas si result es true para ver si elimino .
     
  3. dsignio

    dsignio Usuario Nuevo nvl. 1
    17/41

    Joined:
    Aug 22, 2012
    Messages:
    503
    Likes Received:
    2
    <?php
    $result=mysql_query("DELETE FROM oferta WHERE nom_oferta='".$varnombre_oferta."'");
    if($result){
    return 'ok';//true
    }else{
    return 'error';//false
    }
    ?>
     
  4. donyoyo

    donyoyo Usuario Nuevo nvl. 1
    1/41

    Joined:
    Aug 21, 2008
    Messages:
    1
    Likes Received:
    0
    printf("Registros borrados: %d\n", mysql_affected_rows());

    con eso determinas cuantos registros fueron eliminados
     
  5. roys1985

    roys1985 Usuario Casual nvl. 2
    37/41

    Joined:
    Aug 9, 2009
    Messages:
    1,307
    Likes Received:
    2
    ELIMINA EL FROM DEL DELETE

    delete tabla where id = 123

    DELETE oferta WHERE nom_oferta='".$varnombre_oferta
     
  6. El Fin

    El Fin Usuario Habitual nvl.3 ★
    187/244

    Joined:
    Oct 2, 2009
    Messages:
    16,562
    Likes Received:
    16
    No tiene mucho que ver con el tema pero como ya corrigieron algunos con sus códigos, una consulta de borrado debería hacerse en base al ID de la oferta (identificador único e irrepetible y que la base de datos asigna automáticamente), pues por defecto dicha consulta elimina TODOS los registros que cumplan la condicion, entonces si llega a haber más de una oferta con el mismo nombre entonces todas serían borradas.

    Adicionalmente y para los paranóicos como yo, agregaría "LIMIT 1" para asegurarse de solo borrar un registro por entrada.

    Saludos.