Foros del Web » Creando para Internet » Herramientas y Software »

¿eliminar un registro en DW8?

Estas en el tema de ¿eliminar un registro en DW8? en el foro de Herramientas y Software en Foros del Web. Buenas, tengo una base de datos MySql, y usando las opciones de Dreamweaver he conseguido crear un formulario para insertar contenido y una página para ...
  #1 (permalink)  
Antiguo 25/03/2007, 12:04
Avatar de sumolari  
Fecha de Ingreso: mayo-2006
Ubicación: localhost
Mensajes: 1.367
Antigüedad: 18 años, 6 meses
Puntos: 18
¿eliminar un registro en DW8?

Buenas, tengo una base de datos MySql, y usando las opciones de Dreamweaver he conseguido crear un formulario para insertar contenido y una página para verlo, pero no una para modificarlo ni para eliminarlo. Le doy a la opción comportamientos del servidor >> eliminar registro
Me pide unas opciones, las relleno según dice la ayuda, y luego miro el resultado, pero veo que no ha alterado nada en el formulario, y al subirlo a iespana y probar pues veo que no hace nada de nada. ¿Me podéis echar una mano?
El código que genera DW:

Código PHP:
<?php
$currentPage 
$_SERVER["PHP_SELF"];

function 
GetSQLValueString($theValue$theType$theDefinedValue ""$theNotDefinedValue ""
{
  
$theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

  switch (
$theType) {
    case 
"text":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;    
    case 
"long":
    case 
"int":
      
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case 
"double":
      
$theValue = ($theValue != "") ? "'" doubleval($theValue) . "'" "NULL";
      break;
    case 
"date":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;
    case 
"defined":
      
$theValue = ($theValue != "") ? $theDefinedValue $theNotDefinedValue;
      break;
  }
  return 
$theValue;
}

$editFormAction $_SERVER['PHP_SELF'];
if (isset(
$_SERVER['QUERY_STRING'])) {
  
$editFormAction .= "?" htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset(
$_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
  
$insertSQL sprintf("INSERT INTO CMS (marca, price, `desc`, ID, title) VALUES (%s, %s, %s, %s, %s)",
                       
GetSQLValueString($_POST['textfield3'], "text"),
                       
GetSQLValueString($_POST['textfield5'], "text"),
                       
GetSQLValueString($_POST['textfield4'], "text"),
                       
GetSQLValueString($_POST['textfield2'], "double"),
                       
GetSQLValueString($_POST['textfield'], "text"));

  
mysql_select_db($database_database$database);
  
$Result1 mysql_query($insertSQL$database) or die(mysql_error());

  
$insertGoTo "../index.php";
  if (isset(
$_SERVER['QUERY_STRING'])) {
    
$insertGoTo .= (strpos($insertGoTo'?')) ? "&" "?";
    
$insertGoTo .= $_SERVER['QUERY_STRING'];
  }
  
header(sprintf("Location: %s"$insertGoTo));
}

if ((isset(
$_POST['ID'])) && ($_POST['ID'] != "")) {
  
$deleteSQL sprintf("DELETE FROM CMS WHERE ID=%s",
                       
GetSQLValueString($_POST['ID'], "int"));

  
mysql_select_db($database_database$database);
  
$Result1 mysql_query($deleteSQL$database) or die(mysql_error());

  
$deleteGoTo "eliminar.php";
  if (isset(
$_SERVER['QUERY_STRING'])) {
    
$deleteGoTo .= (strpos($deleteGoTo'?')) ? "&" "?";
    
$deleteGoTo .= $_SERVER['QUERY_STRING'];
  }
  
header(sprintf("Location: %s"$deleteGoTo));
}

if ((isset(
$_POST['select'])) && ($_POST['select'] != "") && (isset($_POST['eliminar']))) {
  
$deleteSQL sprintf("DELETE FROM CMS WHERE title=%s",
                       
GetSQLValueString($_POST['select'], "text"));

  
mysql_select_db($database_database$database);
  
$Result1 mysql_query($deleteSQL$database) or die(mysql_error());

  
$deleteGoTo "eliminar.php";
  if (isset(
$_SERVER['QUERY_STRING'])) {
    
$deleteGoTo .= (strpos($deleteGoTo'?')) ? "&" "?";
    
$deleteGoTo .= $_SERVER['QUERY_STRING'];
  }
  
header(sprintf("Location: %s"$deleteGoTo));
}

if ((isset(
$_POST["MM_insert"])) && ($_POST["MM_insert"] == "insertar")) {
  
$insertSQL sprintf("INSERT INTO CMS (marca, price, `desc`, ID, title) VALUES (%s, %s, %s, %s, %s)",
                       
GetSQLValueString($_POST['textfield7'], "text"),
                       
GetSQLValueString($_POST['textfield9'], "text"),
                       
GetSQLValueString($_POST['textfield8'], "text"),
                       
GetSQLValueString($_POST['textfield10'], "double"),
                       
GetSQLValueString($_POST['textfield6'], "text"));

  
mysql_select_db($database_database$database);
  
$Result1 mysql_query($insertSQL$database) or die(mysql_error());
}

$maxRows_sitio 1;
$pageNum_sitio 0;
if (isset(
$_GET['pageNum_sitio'])) {
  
$pageNum_sitio $_GET['pageNum_sitio'];
}
$startRow_sitio $pageNum_sitio $maxRows_sitio;

mysql_select_db($database_database$database);
$query_sitio "SELECT sitename, sitedesc FROM CMS";
$query_limit_sitio sprintf("%s LIMIT %d, %d"$query_sitio$startRow_sitio$maxRows_sitio);
$sitio mysql_query($query_limit_sitio$database) or die(mysql_error());
$row_sitio mysql_fetch_assoc($sitio);

if (isset(
$_GET['totalRows_sitio'])) {
  
$totalRows_sitio $_GET['totalRows_sitio'];
} else {
  
$all_sitio mysql_query($query_sitio);
  
$totalRows_sitio mysql_num_rows($all_sitio);
}
$totalPages_sitio ceil($totalRows_sitio/$maxRows_sitio)-1;

$maxRows_articulo 1;
$pageNum_articulo 0;
if (isset(
$_GET['pageNum_articulo'])) {
  
$pageNum_articulo $_GET['pageNum_articulo'];
}
$startRow_articulo $pageNum_articulo $maxRows_articulo;

mysql_select_db($database_database$database);
$query_articulo "SELECT marca, price, `desc`, ID, title, image FROM CMS ORDER BY ID ASC";
$query_limit_articulo sprintf("%s LIMIT %d, %d"$query_articulo$startRow_articulo$maxRows_articulo);
$articulo mysql_query($query_limit_articulo$database) or die(mysql_error());
$row_articulo mysql_fetch_assoc($articulo);

if (isset(
$_GET['totalRows_articulo'])) {
  
$totalRows_articulo $_GET['totalRows_articulo'];
} else {
  
$all_articulo mysql_query($query_articulo);
  
$totalRows_articulo mysql_num_rows($all_articulo);
}
$totalPages_articulo ceil($totalRows_articulo/$maxRows_articulo)-1;

$queryString_articulo "";
if (!empty(
$_SERVER['QUERY_STRING'])) {
  
$params explode("&"$_SERVER['QUERY_STRING']);
  
$newParams = array();
  foreach (
$params as $param) {
    if (
stristr($param"pageNum_articulo") == false && 
        
stristr($param"totalRows_articulo") == false) {
      
array_push($newParams$param);
    }
  }
  if (
count($newParams) != 0) {
    
$queryString_articulo "&" htmlentities(implode("&"$newParams));
  }
}
$queryString_articulo sprintf("&totalRows_articulo=%d%s"$totalRows_articulo$queryString_articulo);

$queryString_sitio "";
if (!empty(
$_SERVER['QUERY_STRING'])) {
  
$params explode("&"$_SERVER['QUERY_STRING']);
  
$newParams = array();
  foreach (
$params as $param) {
    if (
stristr($param"pageNum_sitio") == false && 
        
stristr($param"totalRows_sitio") == false) {
      
array_push($newParams$param);
    }
  }
  if (
count($newParams) != 0) {
    
$queryString_sitio "&" htmlentities(implode("&"$newParams));
  }
}
$queryString_sitio sprintf("&totalRows_sitio=%d%s"$totalRows_sitio$queryString_sitio);
?>
y mi formulario:
Código PHP:
    <form id="eliminar" name="eliminar" method="POST" action="">
            <table width="100%" border="0" cellpadding="0" cellspacing="0">
                <tr>
                  <td width="52%"><strong>Art&iacute;culo a eliminiar: </strong></td>
                  <td width="48%"><label>
                    <select name="select">
                      <?php
do {  
?>
                      <option value="<?php echo $row_articulo['title']?>"><?php echo $row_articulo['title']?></option>
                      <?php
} while ($row_articulo mysql_fetch_assoc($articulo));
  
$rows mysql_num_rows($articulo);
  if(
$rows 0) {
      
mysql_data_seek($articulo0);
      
$row_articulo mysql_fetch_assoc($articulo);
  }
?>
                    </select>
                    <span class="Estilo1"><a href="<?php printf("%s?pageNum_articulo=%d%s"$currentPagemin($totalPages_articulo$pageNum_articulo 1), $queryString_articulo); ?>">Siguiente</a> | <a href="<?php printf("%s?pageNum_sitio=%d%s"$currentPagemax(0$pageNum_sitio 1), $queryString_sitio); ?>">Anterior</a></span></label></td>
                </tr>
              </table> 
              <input type="submit" value="Eliminar"/>
Atenci&oacute;n:Una vez eliminado no hay vuelta atr&aacute;s
            </form>
P.D. No sé casi nada de PHP...

Saludos
  #2 (permalink)  
Antiguo 26/03/2007, 07:25
Avatar de juaniquillo
Colaborador
 
Fecha de Ingreso: noviembre-2005
Ubicación: San Juan, Puerto Rico
Mensajes: 5.745
Antigüedad: 19 años
Puntos: 281
Re: ¿eliminar un registro en DW8?

La verdad es que no necesitas saber PHP para hacer eso con DW, aunque necesitas tener unos conceptos claros, como el hecho que el script necesita saber que record se va a actualizar y por tanto debes hacerle llegar id (valor único) de dicho record.

Antes de hacer el sistema de actualización tienes que hacer dos cosas en una página aparte, osea, en otra página donde no este tu formulario para editar el record:

1- Necesitas una forma de hacerle llegar a la página donde está el script de actualización el id del record que vas a actualizar. Lo puedes hacer por medio de Post o Get. La forma mas fácil de hacerlo es listar los records de la tabla para que la persona/admistrador pueda escoger cual record quiere editar. Eso lo haces con un loop en DW, usando la función 'Repeat Region'. En mi ejemplo queda así en mi Firefox (usualmente no incluyo el id el los listados. aquí los incluyo para mayor claridad):


2- Ahora agregas un botón/enlace de 'Editar' al loop. (En mi caso lo he hecho en otra columna). Usarás este botón/enlace para pasar la variable id del record que quieres editar a la pagina donde harás la actualización. En este caso usaré un botón, pero también puedes usar un enlace de este modo (editar.php?id=$variable). Con una forma necesitas tres cosas. A - Insertar una forma en la nueva columna. B - Insertar un botón de sumit, y C - Insertar un 'Hidden Field'. Después solo insertas la variable 'id' en el 'Hidden Field'. Lo puedes arrastrar desde el recorset:




Ahora editas el 'Action' del formulario de esta forma. Lo escoges y pones la pagina donde vas a hacer la actualización, y en el método pones POST en ves de GET:


Al final mi resultado es este en Firefox:


Voy a enviar este mensaje ya que se está haciendo algo largo y no quiero que se borre. Dime si tienes dudas hasta ahora ya que de nada sirve pasar al siguiente paso si no tienes claro esto primero.
__________________
Por fin.. tengo algo parecido a un blog
Y por lo visto ya estoy escribiendo...

Última edición por juaniquillo; 26/03/2007 a las 07:36
  #3 (permalink)  
Antiguo 26/03/2007, 11:03
Avatar de sumolari  
Fecha de Ingreso: mayo-2006
Ubicación: localhost
Mensajes: 1.367
Antigüedad: 18 años, 6 meses
Puntos: 18
Re: ¿eliminar un registro en DW8?

hasta ahí llego, muchas gracias por tu tiempo : arriba:
  #4 (permalink)  
Antiguo 28/03/2007, 19:05
Avatar de juaniquillo
Colaborador
 
Fecha de Ingreso: noviembre-2005
Ubicación: San Juan, Puerto Rico
Mensajes: 5.745
Antigüedad: 19 años
Puntos: 281
Re: ¿eliminar un registro en DW8?

Perdón por no venir antes, pero he tenido mucho trabajo. Que quieres decir que hasta ahí llegas? Resolviste tu problema o quieres que te diga como hacer el resto?
__________________
Por fin.. tengo algo parecido a un blog
Y por lo visto ya estoy escribiendo...
  #5 (permalink)  
Antiguo 28/03/2007, 23:22
Avatar de sumolari  
Fecha de Ingreso: mayo-2006
Ubicación: localhost
Mensajes: 1.367
Antigüedad: 18 años, 6 meses
Puntos: 18
Re: ¿eliminar un registro en DW8?

Cita:
Iniciado por juaniquillo Ver Mensaje
Perdón por no venir antes, pero he tenido mucho trabajo. Que quieres decir que hasta ahí llegas? Resolviste tu problema o quieres que te diga como hacer el resto?
Quiero que me digas como hacer el resto por favor.
Gracias
  #6 (permalink)  
Antiguo 29/03/2007, 19:09
Avatar de juaniquillo
Colaborador
 
Fecha de Ingreso: noviembre-2005
Ubicación: San Juan, Puerto Rico
Mensajes: 5.745
Antigüedad: 19 años
Puntos: 281
Re: ¿eliminar un registro en DW8?

Pues seguimos. Entonces, ya tienes una página con un listado de tus records y otra donde tienes el mismo formulario que usaste para insertar los datos. Cuando digo el mismo formulario no quiero decir que uses la misma página que usaste para introducir los datos, sino el mismo formulario una página nueva. Si no necesitas actualizar todos los campos de tu base de datos entonces pon sólo los que quieras actualizar.

En mi ejemplo voy a actualizar el usuario y el apellido. Ademas de eso necesitas poner otro campo oculto para el ID. Al mio lo llamo ID:


Después haces un recordset filtrando lo siguiente: id es igual a Form Variable id


Este recordset se encarga de recoger la variable que vas a enviar desde la otra página. El primer id es el id de tu tabla en MySQL. El segundo id es el campo de la forma que vas a enviar desde la otra página, así que a este ponle el nombre del campo que pusiste en la pagina anterior (el que es oculto). Si estuvieras enviando la variable por GET en ves de 'Form Variable' usarías 'URL Variable'.

Ahora arrastras cada field del recordset y lo llevas hasta su correspondiente campo en la forma, ejemplo:

http://img443.imageshack.us/img443/9...hunter3sc1.jpg

En este caso arrastro el field usuario del recordset al campo usuario en la forma. Haces lo mismo con el resto, incluyendo el id.

Ahora prueba lo que has hecho a ver si funciona. Ve a a primera pagina y dale al botón de uno de los records y esto te llevará a la próxima página y el contenido del record debe aparecer en el formulario.





Si todo funciona bien pasamos al próximo paso.
__________________
Por fin.. tengo algo parecido a un blog
Y por lo visto ya estoy escribiendo...
  #7 (permalink)  
Antiguo 30/03/2007, 09:53
Avatar de sumolari  
Fecha de Ingreso: mayo-2006
Ubicación: localhost
Mensajes: 1.367
Antigüedad: 18 años, 6 meses
Puntos: 18
Re: ¿eliminar un registro en DW8?

no consigo que me pase el ID de la página inicial a la de editar
  #8 (permalink)  
Antiguo 31/03/2007, 15:18
Avatar de juaniquillo
Colaborador
 
Fecha de Ingreso: noviembre-2005
Ubicación: San Juan, Puerto Rico
Mensajes: 5.745
Antigüedad: 19 años
Puntos: 281
Re: ¿eliminar un registro en DW8?

Cuando eso pasa pueden ser varias razones.
1- revisa que hayas escogido Post en la forma donde está el botón de editar en la primera pagina y en recordset de la segunda pagina debes tener 'Form Variable'
2- revisa que el nombre del campo oculto en la página inicial concuerde con el nombre del 'form variable' en el database de la segunda página.
3 - algo que no te dije, coloca la etiqueta de <form> dentro de la celda donde esta el botón de editar. De esta forma la forma estará dentro del loop.

Si nada de esto te ayuda puedes postear el código para que pueda revisarlo.
__________________
Por fin.. tengo algo parecido a un blog
Y por lo visto ya estoy escribiendo...
  #9 (permalink)  
Antiguo 01/04/2007, 11:16
Avatar de sumolari  
Fecha de Ingreso: mayo-2006
Ubicación: localhost
Mensajes: 1.367
Antigüedad: 18 años, 6 meses
Puntos: 18
Re: ¿eliminar un registro en DW8?

arreglado, era en parte el método (había puesto get ) y el campo de ID (ponía hiddenfield ). Gracias, sigue explicándome
P.D: Qué haría yo sin los de foros del web...
  #10 (permalink)  
Antiguo 02/04/2007, 16:49
Avatar de juaniquillo
Colaborador
 
Fecha de Ingreso: noviembre-2005
Ubicación: San Juan, Puerto Rico
Mensajes: 5.745
Antigüedad: 19 años
Puntos: 281
Re: ¿eliminar un registro en DW8?

Pues seguimos entonces. Ya lo único que queda es hacer el 'Update' y, si quieres, crear una pagina de confirmación. Acuérdate que, como está ahora el formulario, no se hará ningún tipo de validación. El formulario aceptará cualquier cosa que escribas en el. Validaciones no son tan importantes cuando eres tú quien edita los records, pero cuando lo hace los usuarios necesitas tener un buen sistema de validación. Tienes la posibilidad de hacer una validación sencilla usando javascript en DW. Para ver como pásate por este mensaje:
http://www.forosdelweb.com/f17/alertas-java-scrip-formulario-dreamweaver-475949/

Bueno, próximo paso.

Antes que nada, En la segunda página, en el formulario, debes darle el valor id de tu base de datos al campo 'hidden field'. Lo puedes arrastrar como te mostré mas arriba, o puedes hacerlo también de esta forma: Escoges el hidden field dandole un click, vas al properties panel y le das al pequeño rayito que aparece a la derecha del campo 'Value':



Cuando te salga la próxima ventana escoges el campo ID en el recordset que hiciste previamente y le das a ok:



Ahora, estando en la segunda página (donde está formulario) vas a ir al panel de aplicaciones a:
Server Behaviors -> Signo de mas (+) -> Update Record



En la ventana que saldrá ahora pones lo siguiente:
1- Escoges el formulario que vas a usar para el update
2- Escoges la conexión que vas a usar
3- Escoges la tabla la cual quieres actualizar



Mas abajo debes hacer que los valores de la tabla que escogiste concuerden con los campos de tu formulario. En mi caso, el campo 'usuario' de mi tabla MySQL recibirá información de mi campo 'usuario' de mi formulario. El campo id has que concuerde con el campo oculto. Esto lo haces dándole un click a las opciones del campo 'Columns' y buscando que valor vas a usar para actualizarlo en 'Value'. El campo 'Submit As' no tienes que tocarlo ya que DW detecta el tipo de cada campo de tu BBDD automáticamente. Por último, escoges la página donde quieres que script envié al usuario después de la actualización donde dice 'After updating...'. La mejor forma de hacerlo es dandole a 'Browse' y buscando la página. Despues le das a OK y listo:



Ahora pruebas el sistema a ver si funciona y, si es el caso, hacer el sistema de borrar.
__________________
Por fin.. tengo algo parecido a un blog
Y por lo visto ya estoy escribiendo...

Última edición por juaniquillo; 14/04/2007 a las 15:49
  #11 (permalink)  
Antiguo 03/04/2007, 06:37
Avatar de sumolari  
Fecha de Ingreso: mayo-2006
Ubicación: localhost
Mensajes: 1.367
Antigüedad: 18 años, 6 meses
Puntos: 18
Re: ¿eliminar un registro en DW8?

¡¡muchas gracias!!¡¡ ya va !!
Bueno, explícame como se elimina un registro, porfa.

¿Será siguiendo los mismos pasos que antes pero en lugar de crear un comportamiento del servidor de actualizar registro, uno de eliminar registro?
  #12 (permalink)  
Antiguo 03/04/2007, 10:10
Avatar de juaniquillo
Colaborador
 
Fecha de Ingreso: noviembre-2005
Ubicación: San Juan, Puerto Rico
Mensajes: 5.745
Antigüedad: 19 años
Puntos: 281
Re: ¿eliminar un registro en DW8?

Sip, lo mismo. Tienes que escoger un record antes de borrarlo. Y es mas fácil que editar ya que no tienes que hacer el formulario de editar ni un segundo recordset.
Para eso voy a hacer una nueva columna en la tabla de la primera página que hicimos, al lado del botón de editar, y ponemos un nuevo formulario, un botón de borrar y un 'hidden field' llamado id y ponerle el valor del id del recorset igual que lo hemos hecho arriba. Acuérdate también de usar el método POST y llamar al hidden field 'id':



Ahora, para el próximo paso tienes dos opciones. 1- Puedes poner el script de borrar en esa misma página o, 2- puedes usar otra página que solo tenga el script. Yo trato de usar la segunda opción porque así puedo mantener mi código organizado, pero puedes intentar la primera opción también si quieres.

Para la primera primera opción no pongas nada en el campo de Action del formulario y ve al Aplication Panel a:
Server Behaviors -> Símbolo de más (+) -> Delete Record



En la próxima ventana escoges lo siguiente:
1- El primer campo lo dejas en 'Primary Key Value'
2- Escoges tu conexión
3- Escoges tu tabla de la base de datos
4- Si estás haciendo los pasos en este orden lo más seguro es que el 'id' de tu tabla haya aparecido automáticamente en el campo 4. Si no es así lo puedes buscar en el menú emergente.
5- Donde dice 'Primary Key Value', en el campo de la izquierda escoges 'Form Variable', ya que estás usando la variable de un formulario, osea, POST. El de la derecha pones el nombre del campo, en este caso el del hidden field, osea id.
6- En el último campo pones la dirección de tu página de confirmación. Puedes poner una página nueva o la dirección de la misma pagina donde estás, pero te recomiendo que pongas algo ya que esto envía al usuario fuera del POST recientemente hecho. Después le das a OK y pruebas el sistema.



Para la segunda opción, creas una nueva página la cual nombro con una combinación de números y letras al azar. Esto lo hago por más seguridad, aunque solo se puede llegar al script por FTP. Después, pones la dirección de esa página en el campo 'Action' del formulario de borrar:



Luego en la página nueva haces lo mismo que he hecho arriba. Como puedes ver no es tan trabajoso como el editar. Ahora lo pruebas y me dices.
__________________
Por fin.. tengo algo parecido a un blog
Y por lo visto ya estoy escribiendo...

Última edición por juaniquillo; 14/04/2007 a las 15:52
  #13 (permalink)  
Antiguo 03/04/2007, 15:11
 
Fecha de Ingreso: abril-2007
Mensajes: 4
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: ¿eliminar un registro en DW8?

Hola estoy un poco perdido, os cuento mi problema.
Trabajo con DW8 con S.O. windows.
He tratado de hacer esto mismo, pero de manera que:
Yo tengo 2 tablas, una "categoria de post", y otra "post".
La cosa es que si yo mostrase todos los post de una categoría como aquí proponeis, y tubiese 1000 post, por ejemplo, el usuario puede tardar bastante en encontrar el post que desea editar o eliminar, igual ocurriría con al categoría.
Entonces he tratado de filtrar los post, de manera que, una vez seleccionada la categoria en un menu desplegable, solo sememuestren, en otro menu desplegable, los post pertenecientes a esa categoría, por ejemplo el título de cada post, y una vez obtenga esto, yo puedo buscar estos post dentro de ese menu, pero sin llegar a mostrar toda la información, a menos que realmente el usuario especifique o indique de alguna forma, que quiere ver el contenido de ese post.

Más que nada, y ya termino, mi problema es hacer ese filtrado de la información, y conseguir que solo aparezca en el menú de post los post pertenecientes a una categoría, es decir, que cumplan una condición. Cómo puede hacerse?
Podeis darme alguna pista?

Gracias ;)
  #14 (permalink)  
Antiguo 03/04/2007, 18:14
Avatar de juaniquillo
Colaborador
 
Fecha de Ingreso: noviembre-2005
Ubicación: San Juan, Puerto Rico
Mensajes: 5.745
Antigüedad: 19 años
Puntos: 281
Re: ¿eliminar un registro en DW8?

Pues eso ya es un problema diferente. No es algo general como lo de sumolari, sino que es algo más específico que dependerá de la estructura de tu base datos para poder llegar con la solución adecuada. También puedes intentar hacer un sistema de búsqueda para encontrar por palabras claves o organizar las consultas de las base de datos por orden alfabético.
Lo mejor sería que abras otro mensaje para que tratemos tu tema aparte y así puedas dar un poco mas de información sobre la estructura de tu base de datos.
__________________
Por fin.. tengo algo parecido a un blog
Y por lo visto ya estoy escribiendo...

Última edición por juaniquillo; 14/04/2007 a las 15:53
  #15 (permalink)  
Antiguo 03/04/2007, 23:25
Avatar de sumolari  
Fecha de Ingreso: mayo-2006
Ubicación: localhost
Mensajes: 1.367
Antigüedad: 18 años, 6 meses
Puntos: 18
Re: ¿eliminar un registro en DW8?

¿hay alguna manera de que el campo oculto coja el value desde un campo no oculto?
Es que quiero ver si puedo hacer que al rellenar un formulario con el nombre del producto y su marca te lleven a una página donde diga "has seleccionado el producto A"
  #16 (permalink)  
Antiguo 04/04/2007, 07:55
Avatar de juaniquillo
Colaborador
 
Fecha de Ingreso: noviembre-2005
Ubicación: San Juan, Puerto Rico
Mensajes: 5.745
Antigüedad: 19 años
Puntos: 281
Re: ¿eliminar un registro en DW8?

Para eso puedes hacer un sistema de búsqueda, como dije arriba o algún sistema que liste categorías o nombres de productos y así encontrar el producto adecuado. Como le dije a maripakis arriba, este ya es otro tema y todo dependerá de la estructura de tu base de datos. Aquí explico algo sobre como construir un query de búsqueda en DW:
http://www.forosdelweb.com/showpost....68&postcount=6
__________________
Por fin.. tengo algo parecido a un blog
Y por lo visto ya estoy escribiendo...
  #17 (permalink)  
Antiguo 04/04/2007, 09:22
Avatar de sumolari  
Fecha de Ingreso: mayo-2006
Ubicación: localhost
Mensajes: 1.367
Antigüedad: 18 años, 6 meses
Puntos: 18
Re: ¿eliminar un registro en DW8?

no me funciona la opción de eliminar. ¿No debo poner nada en la página de eliminar (aparte del comportamiento del servidor, claro)?
  #18 (permalink)  
Antiguo 04/04/2007, 09:47
Avatar de juaniquillo
Colaborador
 
Fecha de Ingreso: noviembre-2005
Ubicación: San Juan, Puerto Rico
Mensajes: 5.745
Antigüedad: 19 años
Puntos: 281
Re: ¿eliminar un registro en DW8?

¿cuál de las dos opciones has usado?
__________________
Por fin.. tengo algo parecido a un blog
Y por lo visto ya estoy escribiendo...
  #19 (permalink)  
Antiguo 05/04/2007, 09:29
Avatar de sumolari  
Fecha de Ingreso: mayo-2006
Ubicación: localhost
Mensajes: 1.367
Antigüedad: 18 años, 6 meses
Puntos: 18
Re: ¿eliminar un registro en DW8?

la segunda, la de usar otra página para eliminar
  #20 (permalink)  
Antiguo 05/04/2007, 19:47
Avatar de juaniquillo
Colaborador
 
Fecha de Ingreso: noviembre-2005
Ubicación: San Juan, Puerto Rico
Mensajes: 5.745
Antigüedad: 19 años
Puntos: 281
Re: ¿eliminar un registro en DW8?

Lo que tienes que hacer es verificar si la variable le esta llegando a la pagina. Sigue los pasos que he dicho arriba cuando no te funcionaba lo primero. Hay otra forma muy sencilla de verificar si la variable está llegando. Puedes crear una variable Post y la pones en la página de borrar. Si has nombrado el campo oculto como yo (id) lo puedes hacer de esta forma en el panel de Aplication Panel:
Bindings -> Símbolo de más (+) -> Form Variable



En la próxima ventana pon el nombre del campo que estás usando para pasar la variable, en este caso id:



La variable te aparecerá cuando le des al signo de más (+) que esta al lado izquierdo de donde dice 'Forms':



La puedes arrastra a tu página como haces con cualquier variable. Ahora prueba el sistema y no te aparece la variable escrita en tu página es un problema de envió, osea, que no la estás enviando bien. Si aparece escrita quiere decir que es problema en el script de borrar. En general cuando estás solucionando problemas hay que hacer es ir paso por paso para ver dónde el código falla.

Si después de esto todavía no funciona puedes dejar el código para que lo revise
__________________
Por fin.. tengo algo parecido a un blog
Y por lo visto ya estoy escribiendo...
  #21 (permalink)  
Antiguo 06/04/2007, 01:23
Avatar de sumolari  
Fecha de Ingreso: mayo-2006
Ubicación: localhost
Mensajes: 1.367
Antigüedad: 18 años, 6 meses
Puntos: 18
Re: ¿eliminar un registro en DW8?

Pues si que aparece el ID, pero no borra. este es el código de toda la página:
Código PHP:
<?php require_once('../..//Connections/CMS.php'); ?>
<?php
function GetSQLValueString($theValue$theType$theDefinedValue ""$theNotDefinedValue ""
{
  
$theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

  switch (
$theType) {
    case 
"text":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;    
    case 
"long":
    case 
"int":
      
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case 
"double":
      
$theValue = ($theValue != "") ? "'" doubleval($theValue) . "'" "NULL";
      break;
    case 
"date":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;
    case 
"defined":
      
$theValue = ($theValue != "") ? $theDefinedValue $theNotDefinedValue;
      break;
  }
  return 
$theValue;
}

if ((isset(
$_GET['ID'])) && ($_GET['ID'] != "")) {
  
$deleteSQL sprintf("DELETE FROM CMS WHERE ID=%s",
                       
GetSQLValueString($_GET['ID'], "int"));

  
mysql_select_db($database_CMS$CMS);
  
$Result1 mysql_query($deleteSQL$CMS) or die(mysql_error());

  
$deleteGoTo "index.php";
  if (isset(
$_SERVER['QUERY_STRING'])) {
    
$deleteGoTo .= (strpos($deleteGoTo'?')) ? "&" "?";
    
$deleteGoTo .= $_SERVER['QUERY_STRING'];
  }
  
header(sprintf("Location: %s"$deleteGoTo));
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title>
</head>

<body>
<?php echo $_POST['ID']; ?>
</body>
</html>
Supongo que CMS.php no importa, ya que son los datos de la base de datos.
  #22 (permalink)  
Antiguo 06/04/2007, 08:12
Avatar de juaniquillo
Colaborador
 
Fecha de Ingreso: noviembre-2005
Ubicación: San Juan, Puerto Rico
Mensajes: 5.745
Antigüedad: 19 años
Puntos: 281
Re: ¿eliminar un registro en DW8?

Ya vi cual es el problema. En el paso 5 al hacer el sistema de borrar no escogiste 'Form Variable', sino que lo dejaste en 'URL Parameter'. Te lo había dicho en los pasos escritos, pero me equivoque al no ponerlo todo como debía en la imagen. Puedes hacer dos cosas:
1- Borra el que tienes (Ve al código y borrarlo, incluyendo las etiquetas html) y hazlo de nuevo, o
2- Arregla el que ya tienes. Lo arreglas así:
-Primero le das dos clicks al script en el panel de Aplications, en la pestaña de Server Behaviors. (debe ser el único que tienes en la página de borrar y dice Delete)
-Después cambias el paso 4 de arriba de 'URL Parameter' a 'Form Variable'. Le das a ok y ya está.
__________________
Por fin.. tengo algo parecido a un blog
Y por lo visto ya estoy escribiendo...
  #23 (permalink)  
Antiguo 06/04/2007, 12:49
Avatar de sumolari  
Fecha de Ingreso: mayo-2006
Ubicación: localhost
Mensajes: 1.367
Antigüedad: 18 años, 6 meses
Puntos: 18
Re: ¿eliminar un registro en DW8?

Ya funciona, muchas gracias juaquinillo,¡¡ eres un crack!!
  #24 (permalink)  
Antiguo 06/04/2007, 14:02
Avatar de juaniquillo
Colaborador
 
Fecha de Ingreso: noviembre-2005
Ubicación: San Juan, Puerto Rico
Mensajes: 5.745
Antigüedad: 19 años
Puntos: 281
Re: ¿eliminar un registro en DW8?

De nada sumolari, que bueno que te ha funcionado bien. saludos.
Otra cosa, en la página del script de borrar puedes eliminar las etiquetas html ya que no es una página html como tal, sino una aplicación. El usuario será enviado a otra página antes de llegar a la declaración de página (la etiquera DOCTYPE) o a cualquier etiqueta html. La parte a borrar (tomando en cuenta lo que pusiste arriba) es ésta:
Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title>
</head>

<body>
<?php echo $_POST['ID']; ?>
</body>
</html>
__________________
Por fin.. tengo algo parecido a un blog
Y por lo visto ya estoy escribiendo...

Última edición por juaniquillo; 06/04/2007 a las 14:10
  #25 (permalink)  
Antiguo 07/04/2007, 00:54
Avatar de sumolari  
Fecha de Ingreso: mayo-2006
Ubicación: localhost
Mensajes: 1.367
Antigüedad: 18 años, 6 meses
Puntos: 18
Re: ¿eliminar un registro en DW8?

OK, gracias de nuevo
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

SíEste tema le ha gustado a 2 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 21:53.