Foros del Web » Programando para Internet » PHP »

error al pasar valor de una pagina a otra

Estas en el tema de error al pasar valor de una pagina a otra en el foro de PHP en Foros del Web. Otro problema es que cuando quiero editar la primera noticia con Código PHP: <a href="editar.php?id_nota= <?  echo( $nota [ id ]);  ?> "><font face="Verdana, Arial, Helvetica, sans-serif" size="1">Editar</font></a> Obtengo el mensaje ...
  #1 (permalink)  
Antiguo 03/12/2004, 10:43
Avatar de pereztroff  
Fecha de Ingreso: junio-2002
Ubicación: En la Internet.
Mensajes: 4.068
Antigüedad: 21 años, 10 meses
Puntos: 5
error al pasar valor de una pagina a otra

Otro problema es que cuando quiero editar la primera noticia con
Código PHP:
<a href="editar.php?id_nota=<? echo($nota[id]); ?>"><font face="Verdana, Arial, Helvetica, sans-serif" size="1">Editar</font></a>
Obtengo el mensaje de : Error en la consulta:
MySQL dice: Query was empty

Creo que no me pasa el valor de $nota[id] de una pagina a otra, porque por ejemplo si id_nota tiene valor 1, al pinchar el enlace se abre la pagina editar.php pero me da el error porque supuestamente no le he pasado ningun valor, ¿es asi verdad?

Ayuda por favor. Gracias.

Última edición por pereztroff; 03/12/2004 a las 11:44
  #2 (permalink)  
Antiguo 03/12/2004, 12:35
Avatar de FuLaNo_  
Fecha de Ingreso: mayo-2003
Ubicación: Don Torcuato, Buenos Aires, Argentina
Mensajes: 1.250
Antigüedad: 20 años, 11 meses
Puntos: 2
porque no haces un echo $_GET['id'] en la pagina editar.php, para saber si el valor llega a ella o no...
__________________
I Love Programming...
  #3 (permalink)  
Antiguo 03/12/2004, 14:16
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Deberías poner el código que usas para llegar a ejecutar tu "mysql_query()" .. por qué el mensaje de error te dice que absolutamente no tiene valor esa función .. así que si tienes algún condicional por ahí que evalue o componga tu sentencia SQL ... no está funcionando como esperas.

Un saludo,
  #4 (permalink)  
Antiguo 03/12/2004, 16:33
Avatar de pereztroff  
Fecha de Ingreso: junio-2002
Ubicación: En la Internet.
Mensajes: 4.068
Antigüedad: 21 años, 10 meses
Puntos: 5
Pongo todo el codigo php antes de enviar el valor id=1 por ejemplo
Código PHP:
<?
    
if (!($desde)) { $desde 0; };
    include(
'../inc/conexion.php');
    
$select_todas mysql_query("SELECT id FROM noticias ORDER BY id DESC");
    
$cantidad mysql_num_rows($select_todas);
    
$select_notas mysql_query("SELECT * FROM noticias ORDER BY id DESC LIMIT $desde, 51");
    
    for (
$x 1$x <= 50$x++) {
        
$nota mysql_fetch_array($select_notas);
        if (
$nota[titulo]!='') {
?>

    <tr valign="top"> 
      <td><font face="Verdana, Arial, Helvetica, sans-serif" size="1"> <?php echo $nota[titulo]; ?> 
        </font></td>
      <td width="200"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"> 
        <?php echo $nota[autor]; ?> </font></td>
      <td width="77"> <font face="Verdana, Arial, Helvetica, sans-serif" size="1"> 
        <?php echo $nota[fecha]; ?> &nbsp;</font></td>
      <td width="44" align="center" bgcolor="#FFE295"> <a href="editar.php?id_nota=<? echo($nota[id]); ?>"><font face="Verdana, Arial, Helvetica, sans-serif" size="1">Editar</font></a></td>
      
    </tr>
<?
    
}; 
        };
?>
  #5 (permalink)  
Antiguo 03/12/2004, 18:57
Avatar de pereztroff  
Fecha de Ingreso: junio-2002
Ubicación: En la Internet.
Mensajes: 4.068
Antigüedad: 21 años, 10 meses
Puntos: 5
¿como se usa lo del get?

en verdad ¿seria la solucion?

ayuda porfavor, me quede ahi.

muchas gracias por intentar ayudarme.
  #6 (permalink)  
Antiguo 03/12/2004, 19:05
 
Fecha de Ingreso: diciembre-2003
Mensajes: 1.583
Antigüedad: 20 años, 3 meses
Puntos: 13
Deberias usar comillas simples en las variables:

<?php echo $nota['titulo']; ?>
__________________
El conocimiento es libre: Movimiento por la Devolución
  #7 (permalink)  
Antiguo 03/12/2004, 19:16
Avatar de pereztroff  
Fecha de Ingreso: junio-2002
Ubicación: En la Internet.
Mensajes: 4.068
Antigüedad: 21 años, 10 meses
Puntos: 5
Amigo, no entiendo porque las comillas que me comentas puede provocar el error que comente en los post anteriores.
si me explicas, gracias,
  #8 (permalink)  
Antiguo 03/12/2004, 19:32
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
No utilizar comillas para un índice de tipo String es una malapráctica que en el futuro podría producir conflictos con algunas nuevas constantes... pero por ahora no obtendrás error debido a eso. De todos modos, es MUY recomendable ponerle las comillas... Puedes leerlo en el manual:
http://www.php.net/manual/es/language.types.array.php
Cita:
Iniciado por manual de php
(...)
Recomendaciones sobre matrices y cosas a evitar
¿Porqué es incorrecto $foo[bar]?

Siempre deben usarse comillas alrededor de un índice de matriz tipo cadena literal.(...)
(Esto está más o menos a la tercera parte de la página citada).

Ahora... si la primera página se genera bien.. verifica que los enlaces se generan bien. Esto lo puedes verificar haciendo un "ver>código fuente" en el navegador o viendo en la barra de estado al poner el mouse sobre el enlace.

Si todo eso está bien... entonces lo que más interesa es que nos pongas el código del otro script (editar.php).

Saludos
  #9 (permalink)  
Antiguo 03/12/2004, 19:37
Avatar de pereztroff  
Fecha de Ingreso: junio-2002
Ubicación: En la Internet.
Mensajes: 4.068
Antigüedad: 21 años, 10 meses
Puntos: 5
cuando pongo el puntero en el link sale correctamente el valor asignado a la variable.........

en editar.php tengo:
Código PHP:
<?
include('../inc/conexion.php');
$select_notas mysql_query("SELECT * FROM noticias WHERE id=$id_notas");
if (!
mysql_query($select_notas)) {
  echo 
"Error en la consulta: $select_notas <br>";
  echo 
"MySQL dice: ".mysql_error();
  exit;

$nota mysql_fetch_array($select_noticias);
?>
  #10 (permalink)  
Antiguo 03/12/2004, 19:43
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Estás haciendo un mysql_query() 2 veces... La segunda vez le haces el query a $select_notas que no es una cadena SQL sino ya el resultado de un query anterior... por eso te produce error.

Si la primera consulta hubiera fallado, $select_notas tomaría el valor false... eso es lo único quedebes verificar.
Código PHP:
$select_notas mysql_query("SELECT * FROM noticias WHERE id=$id_notas");
if (!
$select_notas) {
  echo 
"Error en la consulta:<br>";
  echo 
"MySQL dice: ".mysql_error();
  exit;

Saludos
  #11 (permalink)  
Antiguo 03/12/2004, 19:47
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Aunque para tener más orden deberías sacar la cadena sql en otra variable (creo que eso es lo que has querido hacer). De esa forma es más fácil detectar errores:
Código PHP:
 $sql_notas "SELECT * FROM noticias WHERE id=$id_notas";
$result_notas mysql_query($sql_notas);
if (!
$result_notas) {
  
//Aquí sí puedes mostrar tu cadena SQL en caso de error ($sql_notas)
  //Como lo hacías antes no se podía.
  
echo "Error en la consulta: $sql_notas<br>";
  echo 
"MySQL dice: ".mysql_error();
  exit;

Saludos
  #12 (permalink)  
Antiguo 03/12/2004, 20:01
Avatar de pereztroff  
Fecha de Ingreso: junio-2002
Ubicación: En la Internet.
Mensajes: 4.068
Antigüedad: 21 años, 10 meses
Puntos: 5
GRACIAS, SOLUCIONADO. UN DESPISTE ENTRE OTRAS COSAS.


Última edición por pereztroff; 03/12/2004 a las 20:14
  #13 (permalink)  
Antiguo 04/12/2004, 18:22
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
El hecho de no usar comillas como indice de un array en general tambièn puede llegar a confusiones con nombres de constantes ..ya sean de tu còdigo predefinidas o bien de constantes predefinidas de PHP.

Usa comillas tambièn en tu sentencia SQL . .pese que digas que es un "numero" ese $id_notas ... justamente cuando ese $id_notas podría ser un string Mysql lo tomarà como literal e intentará ejecutar esa sentencia SQL que para nada es una sentencia SQL.

Código PHP:
$sql_notas "SELECT * FROM noticias WHERE id='".$id_notas."'"
Un saludo,
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 07:06.