Foros del Web » Programando para Internet » PHP »

que tiene de malo?

Estas en el tema de que tiene de malo? en el foro de PHP en Foros del Web. hola me he dado de kabezazos durante dias con este maldito code y no se donde esta el error. Código PHP: <? include ( "conexion.php.inc" ); ...
  #1 (permalink)  
Antiguo 04/01/2004, 18:15
Avatar de cadrogui  
Fecha de Ingreso: junio-2003
Mensajes: 875
Antigüedad: 14 años, 6 meses
Puntos: 5
que tiene de malo?

hola me he dado de kabezazos durante dias con este maldito code y no se donde esta el error.


Código PHP:
<?
include ("conexion.php.inc");
$consulta mysql_query("select * from tribu_articulo");
$muestra mysql_fetch_array($consulta);

if (isset(
$busca)){
echo 
$id_articulo;
$consulta2 mysql_db_query("$bd","select * from tribu_articulo where id_articulo='$id_articulo'") or die (mysql_error());
$muestra2 mysql_fetch_array($consulta2);
print(
"$muestra2[titulo]");
}

if (
$Submit){
mysql_db_query("$bd","update tribu_articulo set id_articulo='$id_articulo', id_usuario='$id_usuario',autor='$autor',titulo='$titulo',introduccion='$introduccion',    
cuerpo='$cuerpo',fecha='$fecha' WHERE id_articulo='$id_articulo'"
) or die ("no se puede actualizar");
}
if (
$Submit2){
mysql_db_query("$db","insert into tribu_articulo () values 
('$')"
);
}

if (
$Submit3){
mysql_db_query("$bd","delete  from tribu_articulo Where id_articulo='id_usuario='$id_usuario',autor='$autor',titulo='$titulo',introduccion='$introduccion',    
cuerpo='$cuerpo',fecha='$fecha'" 
);
}

?>

<html>
<head>
<title>tribu articulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form name="form1" method="post" action="<? $_SERVER['PHP_SELF'?>">
  <p> 
<? echo $id?>

<?
echo '<select name = "id_articulo">';
while (
$resultdos mysql_fetch_array($consulta))
{echo 
'<option>'.$resultdos["id_articulo"];}
?>
</select>
 
    <input name="busca" type="submit" id="busca" value="buscar">
  </p>
  <p>
    <input name="id_articulo" type="text" id="id_articulo" value="<? print("$muestra2[id_articulo]"); ?>">
  </p>
  <p> 
    <input name="id_usuario" type="text" id="id_usuario" value="<? print("$muestra2[id_usuario]"); ?>">
  </p>
  <p> 
    <input name="autor" type="text" id="autor" value="<? print("$muestra2[autor]"); ?>">
  </p>
  <p> 
    <input name="titulo" type="text" id="titulo" value="<? print("$muestra2[titulo]"); ?>">
  </p>
  <p> 
    <input name="introduccion" type="text" id="introduccion" value="<? print("$muestra2[introduccion]"); ?>">
  </p>
  <p> 
    <input name="cuerpo" type="text" id="cuerpo" value="<? print("$muestra2[cuerpo]"); ?>">
  </p>
  <p> 
    <input name="fecha" type="text" id="fecha" value="<? print("$muestra2[fecha]"); ?>">
  </p>
  <p> 
    <input type="submit" name="Submit" value="Actualizar">
    <input type="submit" name="Submit2" value="Ingresar">
    <input type="submit" name="Submit3" value="Borrar">
  </p>
</form>
</body>
</html>
lo que no me resulta es que cuando se presione el boton (buscar), envie la variable id_articulo al formulario para que aparezcan los contenidos en relacion a la id...no logro hacerlo....

alguna sugerencia?

salu2
__________________
La mejor manera de aprender es por medio de un aprendizaje significativo....

http://www.cocert.cl
  #2 (permalink)  
Antiguo 05/01/2004, 18:37
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Ya habrás leído millones de veces en este foro sobre encontrar errores en las funciones que requieren cadenas como parámetros, por ejemplo mysql_query()... Con el código como tú lo pones, no hay forma de verificar si la sentencia sql que se está pasando es válida.

Para resolver esto se suele almacenar la sentencia en una variable y luego pasar esa variable como parámetro.
Código PHP:
$sentencia="delete  from tribu_articulo Where  id_articulo='id_usuario='$id_usuario',autor='$autor',titulo='$titulo',introduccion='$introduccion',    
cuerpo='$cuerpo',fecha='$fecha'"
;

mysql_db_query($db$sentencia); 
De esa manera podrás verificar la sentencia haciendo un echo $sentencia;

Ahora, sobre posibles errores:

1.-)No sé si Mysql soporte las condiciones WHERE como las pones tú, separadas con comas... yo creo que debes hacer uso de OR o AND, según sea el caso... quedaría así:
Código PHP:
$sentencia="delete  from tribu_articulo Where  id_articulo='$id_articulo' AND id_usuario='$id_usuario' AND autor='$autor' AND titulo='$titulo' AND introduccion='$introduccion' AND cuerpo='$cuerpo' AND fecha='$fecha'"
2.-)Si te fijas, en la sentencia anterior, tampoco estabas poniendo valor al id_articulo para la condición.

3.-)Si estás utilizando la misma base de datos para todas las tablas... entonces hay otro error en la base de datos ... en algunos pones $db en otros $bd...

Pero, como te digo, se complica la detección de estos errores si lo metes todo en una línea... A veces es mejor poner algunas líneas de más... pero tu código estará más claro para ti mismo y para otros...

Saludos
  #3 (permalink)  
Antiguo 05/01/2004, 18:43
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Si vas a utilizar la misma bd, es mejor incluir en conexion.inc.php la siguiente línea:
Código PHP:
mysql_select_db($tu_base$link_de_conexion) or die("Error al seleccionar DB: ".mysql_error()"); 
De esta manera cambias la función mysql_db_query() simplemente por:
Código PHP:
mysql_query($sentencia_sql); 
También es bueno incluir el or die() en las líneas como mysql_connect(), mysql_query(), mysql_select_db()... De esa forma tendrás más control de tu código.

Saludos
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 12:07.