Foros del Web » Programando para Internet » PHP »

error by order fecha desc limit

Estas en el tema de error by order fecha desc limit en el foro de PHP en Foros del Web. hola chicos, pues eso, me sale un error de sintaxis, que no entendiendo , el error es este You have an error in your SQL ...
  #1 (permalink)  
Antiguo 14/01/2012, 07:54
 
Fecha de Ingreso: diciembre-2010
Ubicación: tenerife
Mensajes: 60
Antigüedad: 13 años, 4 meses
Puntos: 0
error by order fecha desc limit

hola chicos, pues eso, me sale un error de sintaxis, que no entendiendo , el error es este
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'BY fecha DESC LIMIT 1' at line
quizas no pueda usar la palabra FECHA , no lo se , la DB esta creada en phpmyadmin , y aki os dejo el codigo en la parte que me da el error a ver si se consigue arreglar, gracias

Código PHP:
Ver original
  1. mysql_select_db($database_nuevaconexion, $nuevaconexion);
  2.   $publicacion_sql = "SELECT id_mensajes FROM mensajes WHERE categorias = " .
  3.   $row_foros['id_categorias'];
  4.   $ultimo_sql = "SELECT autor, fecha FROM mensaje WHERE categorias = " .
  5.   $row_foros['id_categorias']." ORDER BY fecha DESC LIMIT 1" ; [B]posible error[/B]
  6.   $upost = mysql_query ($ultimo_sql) or die (mysql_error () );
  7.   $pTotales = mysql_query ($publicacion_sql) or die (mysql_error () );
  8.  
  9.   ?>
  10.     <tr>
  11.       <td height="47" class="categoria1"><a href="categorias.php?cat=
  12. <?php echo $row_foros['id_categorias']; ?>"> <?php echo $row_foros['nombre']; ?></a>
  13. <?php echo $row_foros['descripcion']; ?></td>
  14.       <td><?php echo mysql_num_rows ($pTotales) ; ?> </td>
  15.       <td><?php
  16.       $up = mysql_fetch_assoc ($upost) ;
  17.       echo $up ['fecha'] ;
  18.       echo '</br>' ;
  19.       echo $up ['autor'] ;
  20.       ?>
  21.       </td>
  22.     </tr>
  23.     <?php } while ($row_foros = mysql_fetch_assoc($foros)); ?>
  24. </table>
  25. </body>
  26. </html>
  27. <?php
  28.  
  29. ?>
  #2 (permalink)  
Antiguo 14/01/2012, 08:31
Avatar de charlyalegret  
Fecha de Ingreso: septiembre-2011
Ubicación: Barcelona
Mensajes: 705
Antigüedad: 12 años, 6 meses
Puntos: 140
Respuesta: error by order fecha desc limit

$publicacion_sql = "SELECT id_mensajes FROM mensajes WHERE categorias = " .
$row_foros['id_categorias'];

esto no está inacabado??

Debería ser:

$publicacion_sql = "SELECT id_mensajes FROM mensajes WHERE categorias = " . $row_foros['id_categorias'] . ";


Saludos
  #3 (permalink)  
Antiguo 14/01/2012, 13:31
 
Fecha de Ingreso: diciembre-2010
Ubicación: tenerife
Mensajes: 60
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: error by order fecha desc limit

pues no , no es ese el error , solo me marca algo de la fecha esta parte mas concretamente

BY fecha DESC LIMIT 1" ;
  #4 (permalink)  
Antiguo 14/01/2012, 13:35
Avatar de charlyalegret  
Fecha de Ingreso: septiembre-2011
Ubicación: Barcelona
Mensajes: 705
Antigüedad: 12 años, 6 meses
Puntos: 140
Respuesta: error by order fecha desc limit

El error te pone "near" (así es mysql), y normalmente se refiere a "antes de", según mi pobre experiencia.
y yo, sigo viendo inacabada la anterior consulta, pero bueno.


Tienes $row_foros['id_categorias'] correctamente? si la haces un hecho antes, qué te muestra?

Saludos
  #5 (permalink)  
Antiguo 14/01/2012, 13:58
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 11 meses
Puntos: 322
Respuesta: error by order fecha desc limit

Claro, MySQL dice que está el error antes de esa parte.

Me parece que $row_foros['id_categorias'] debes encerrarla entre comillas simples

Saludos
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #6 (permalink)  
Antiguo 14/01/2012, 15:23
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: error by order fecha desc limit

No necesariamente, eso sólo es obligatorio si el valor de esa columna es CHAR o VARCHAR. Además, si lo que estuviese poniendo fuese una cadena de caracteres, probablemente devolvería un mensaje "columna desconocida" y no "error de sintaxis".
Un error posible es que las variables en cuestión estuviesen vacías, caso en el que el valor a comparar no aparece y sí hay un error de sintaxis.

Lo primero que tendrías que hacer es capturar la sentencia completa una vez creada y mostrarla para que podamos ver qué es lo que realmente queda escrito.
Debería quedar algo parecido a esto:
Código MySQL:
Ver original
  1. SELECT autor, fecha
  2. FROM mensaje
  3. WHERE categorias = 1 -- O el valor que fuese
  4. ORDER BY fecha DESC

Si categoría fuese una cadena de texto, esto generaría un error de "columna desconocidia":

Código MySQL:
Ver original
  1. SELECT autor, fecha
  2. FROM mensaje
  3. WHERE categorias = noticias -- Suponiendo que "noticias" fuese una categoria.
  4. ORDER BY fecha DESC

Pero si la variable llega vacía, el resultado sería este:
Código MySQL:
Ver original
  1. SELECT autor, fecha
  2. FROM mensaje
  3. WHERE categorias =
  4. ORDER BY fecha DESC
Y eso sí generaría un error de sintaxis porque falta un parámetro del WHERE.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 16/01/2012, 08:15
 
Fecha de Ingreso: diciembre-2010
Ubicación: tenerife
Mensajes: 60
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: error by order fecha desc limit

no hay manera de arreglarlo , cuando no pongo la parte de order by , la pagina
me carga bien, no hay problemas, cuando le pongo ese codigo bag, se chafa todo
vpy a colocar el codigo completo a ver q pasa y una imagen de la base de datos a ver si es por ahi donde viene el fallo,

Código PHP:
Ver original
  1. <?php require_once('../Connections/prueba.php'); ?>
  2. <?php
  3. if (!function_exists("GetSQLValueString")) {
  4. function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
  5. {
  6.   if (PHP_VERSION < 6) {
  7.     $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  8.   }
  9.  
  10.   $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
  11.  
  12.   switch ($theType) {
  13.     case "text":
  14.       $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
  15.       break;    
  16.     case "long":
  17.     case "int":
  18.       $theValue = ($theValue != "") ? intval($theValue) : "NULL";
  19.       break;
  20.     case "double":
  21.       $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
  22.       break;
  23.     case "date":
  24.       $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
  25.       break;
  26.     case "defined":
  27.       $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
  28.       break;
  29.   }
  30.   return $theValue;
  31. }
  32. }
  33.  
  34. mysql_select_db($database_prueba, $prueba);
  35. $query_foros = "SELECT * FROM categorias";
  36. $foros = mysql_query($query_foros, $prueba) or die(mysql_error());
  37. $row_foros = mysql_fetch_assoc($foros);
  38. $totalRows_foros = mysql_num_rows($foros);
  39. ?>
  40.  
  41.  
  42. <?php do { ?>
  43.   <?php
  44.  mysql_select_db($database_prueba, $prueba);
  45.   $publicacion_sql = "SELECT id_mensaje FROM mensajes WHERE categoria = " .
  46.  $row_foros['id_categorias'];
  47.   $ultimo_sql = "SELECT autor , fecha FROM mensaje WHERE categoria = "  .
  48.   $row_foros['id_categorias'] . "ORDER BY fecha DESC LIMIT 1";
  49.   $upPost = mysql_query (date) or die (mysql_error ()) ;
  50.   $pTotales = mysql_query($publicacion_sql) or die (mysql_error ()) ;
  51.   ?>
  52.     <tr>
  53.       <td height="46" class="categoria1">
  54.       <div align="left" class="categoria2"><a href="untitled-8.php?cat=<?php echo $row_foros['id_categorias']; ?>"><font color="#FFFFFF"><?php echo $row_foros['nombre']; ?></font></a><br />
  55.         <span class="categoria4"><?php echo $row_foros['descripcion']; ?></span>
  56.       </div></td>
  57.       <td align="center"><?php echo mysql_num_rows($pTotales) ;?></td>
  58.       <td class="categoria2">
  59.       <?php
  60.       $up = mysql_fetch_assoc ($upost) ;
  61.       echo $up ['fecha'] ;
  62.       echo '</br>' ;
  63.       echo $up ['autor'] ;
  64.       ?>
  65.       </td>
  66.     </tr>
  67.     <?php } while ($row_foros = mysql_fetch_assoc($foros)); ?>
  68. </table>
  69. <p>&nbsp;</p>
  70. <p>&nbsp;</p>
  71. </body>
  72. </html>
  73. <?php
  74. ?>


http://imageshack.us/photo/my-images/502/dibujoxim.jpg/

Etiquetas: desc, fecha, html, limit, mysql, order, sql
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 02:59.