problema con eliminar registro en mysql, php

Tema en 'Programación & Programación Web' iniciado por satorus, 28 Oct 2013.

  1. satorus

    satorus Usuario Nuevo nvl. 1
    187/244

    Registrado:
    8 Feb 2012
    Mensajes:
    3
    Me Gusta recibidos:
    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
    <?php
    require_once('..\php\conexion.php');
    $varnombre_oferta = $_GET['nom_oferta'];


    $consulta = "delete from oferta where nom_oferta = '".$varnombre_oferta."'";


    $result = mysql_query($consulta);


    while($consulta = mysql_fetch_assoc($result)) :
    $data[] = $consulta;
    endwhile;




    echo json_encode($data);
    ?>








    esto en el js


    /*****************************************
    * EVENTO CLICK BOTON ELIMINAR**
    *****************************************/


    $("#btn_eliminar_bo").click(function(){






    url = "php/eliminar_oferta.php";
    $.getJSON(url, {nom_oferta : $("#txt_nom_ofertb").val()




    }
    ,function(datos) {


    if(datos==true){
    alert("Ingresado!");


    }else{
    msg_error_guardar();
    }
    });


    });









    formulario


    <form id="form_ingreso_Oferta">
    <table>
    <tr>
    <td bgcolor="#e6f9ff"><h2>Nombre de la Oferta:</h2></td>
    <td bgcolor="#e6f9ff"><input type="text" id="txt_nom_ofertb" /></td>
    </tr>
    <tr>
    <td bgcolor="#f8fae8"><h2>Sueldo :</h2></td>
    <td bgcolor="#f8fae8"><input type="text" id="txt_sueldob"/></td>
    </tr>
    <tr>
    <td bgcolor="e6f9ff"><h2>Detalles:</h2></td>
    <td bgcolor="e6f9ff"><textarea name="mensaje" cols="50" rows="5" id="txt_detalleb"></textarea> </td>


    </tr>
    </tr>


    <td bgcolor="#f8fae8"><h2>Perfil:</h2></td>
    <td bgcolor="#f8fae8"> <select id="txt_perfilb">
    <option value=0> Seleccione</option>
    </select></td>
    </tr>


    </table>
    </form>
    <br><br>
    <button id="btn_buscar_bo">Buscar</button>
    <button id="btn_actualizar_bo">Actualizar</button>
    <button id="btn_eliminar_bo">Eliminar</button>















     
  2. ycsm

    ycsm Usuario Casual nvl. 2
    87/163

    Registrado:
    2 Abr 2010
    Mensajes:
    8.612
    Me Gusta recibidos:
    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

    Registrado:
    22 Ago 2012
    Mensajes:
    514
    Me Gusta recibidos:
    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

    Registrado:
    21 Ago 2008
    Mensajes:
    1
    Me Gusta recibidos:
    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

    Registrado:
    9 Ago 2009
    Mensajes:
    1.312
    Me Gusta recibidos:
    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

    Registrado:
    2 Oct 2009
    Mensajes:
    16.665
    Me Gusta recibidos:
    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.