Autor Tema: Consultas SQL (CERRADO)  (Leído 2259 veces)

0 Usuarios y 1 Visitante están viendo este tema.

abr4xas

  • Visitante
Consultas SQL (CERRADO)
« : 13 de diciembre de 2012, 05:19:18 pm »
Saludos, estoy (bueno, retomando el desarrollo) desarrollando un pequeño sistema específicamente un blog pero he tenido algunos detalles y quisiera que me dieran una ayuda:

Tengo el siguiente código:

Código: [Seleccionar]
<?php
$id_notas $_GET["id"];
$sql sprintf("SELECT *  FROM post WHERE id = &#39;$id_notas&#39;  ");
$query $DB->HConsulta($sql);
$post =  mysql_fetch_array($query);
echo "<div id=\"post\"><h1>".$post[title]."</a></h1><br /><p>".$post[extract]."</p><br /><p>".$post[post]."</p>
<div id=\"submenu\">
  <ul>
   <li class=\"date\">&nbsp;"
.$post[date]."</li>
   <li class=\"author\">&nbsp;"
.$post[author]."</li>
 </ul>
       </div>
     </div>"
;  
?>
El sql que estoy usando es

Código: [Seleccionar]
CREATE TABLE IF NOT EXISTS `post` (
  `id` int(7) NOT NULL AUTO_INCREMENT,
  `author` longtext NOT NULL,
  `category` longtext NOT NULL,
  `title` longtext NOT NULL,
  `post` longtext NOT NULL,
  `url` longtext NOT NULL,
  `date` date NOT NULL,
  `extract` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  KEY `id` (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;

Al momento de ejecutar la consulta, efectivamente me regresa la id seleccionada al hacer clic en un enlace y me muestra toda la data contenida en dicho enlace sin embargo, me sigue mostrando los valores de la siguiente consulta:

Código: [Seleccionar]
<?php

 
$sql sprintf("SELECT *  FROM post ORDER BY id DESC LIMIT 0,4");
 $query $DB->HConsulta($sql);
 $x=0;
  while ($post =  mysql_fetch_array($query))
   { $post[extract] =  strip_tags($post[extract]);
    if ($x == 0) { 
 echo "<div id=\"post\"><h1><a href=\"index.php?id=".$post["id"]."&amp;op=Publish&amp;post=".urlencode($post["title"])."\"alt=\"$post[title]\">$post[title]</a></h1>";
 } else {
 echo "<div id=\"post\"><h1><a href=\"index.php?id=".$post["id"]."&amp;op=Publish&amp;post=".urlencode($post["title"])."\"alt=\"$post[title]\">$post[title]</a></h1>";
      }
 echo "<p>".$post[extract]."</p>";
 echo "<div id=\"read-more\"><p><a href=\"index.php?id=".$post["id"]."&amp;op=Publish&amp;post=".urlencode($post["title"])."\"alt=\"$post[title]\">".readm."</a></p></div>
<div id=\"submenu\">
 <ul>
  <li class=\"date\">&nbsp;"
.$post[date]."</li>
 </ul>
</div>
</div>"
;
 $x 1;
  }
?>

Adicional a eso, el enlace para lo que seria el "readm" no me funciona.
Código: [Seleccionar]
<?php 
echo "<div id=\"read-more\"><p><a href=\"index.php?id=".$post["id"]."&amp;op=Publish&amp;post=".urlencode($post["title"])."\"alt=\"$post[title]\">".readm."</a>";
?>

Gracias por la ayuda que me pueden dar.
« Última Modificación: 17 de diciembre de 2012, 04:16:10 pm por abr4xas »

Desconectado Carlos Belisario

  • Moderador Global
  • Fanático
  • *****
  • Mensajes: 263
  • Puntuación: 17
  • Sexo: Masculino
  • software lover
    • Ver Perfil
Re:Consultas SQL
« Respuesta #1 : 13 de diciembre de 2012, 07:37:46 pm »
creo que no capte bien tu duda, lo que quieres es mostrar el post que seleccionaste sin que se muestren los otros??
con un simple condicional por los parámetros que pasas por la url deberías de solucionarse eso.

OFFTOPIC porque si vas a hacer un blog no usar directo wordpress (simple y te da varias funciones para trabajar el blog), ahora si lo estas realizando para practicar, te recomendaría mejor el uso de un framework donde hagas uso de la programación orientada a objetos, uses buenas prácticas de programación ya que lo que muestras según veo estas uniendo vista con lógica de negocio y eso al final hace que a medida que el sistema crezca se ponga inmantenible, claro es solo un consejo u opinión, :) saludos

abr4xas

  • Visitante
Re:Consultas SQL
« Respuesta #2 : 17 de diciembre de 2012, 04:15:45 pm »
Gracias por responder,

Ciertamente lo hago para practicar y para tener un sistemita propio porque de alguna manera estoy cansado de wordpress.
Gracias por el consejo pero ya logre modificar el script sin problemas.



Desconectado Carlos Belisario

  • Moderador Global
  • Fanático
  • *****
  • Mensajes: 263
  • Puntuación: 17
  • Sexo: Masculino
  • software lover
    • Ver Perfil
Re:Consultas SQL (CERRADO)
« Respuesta #3 : 19 de diciembre de 2012, 02:07:33 pm »
por otra parte también si te interesa aprender y manejar un poco mas, deberías de migrar de mysql_ a PDO, aca el porque de mi recomendación http://php.net/manual/es/intro.mysql.php demás de que pdo te brinda una interfaz para manejar distintas db, y es mas orientado a objetos, sludos

Desconectado el_santo

  • Usuario Dedicado
  • ***
  • Mensajes: 225
  • Puntuación: 9
  • Sexo: Masculino
    • Ver Perfil
Re:Consultas SQL (CERRADO)
« Respuesta #4 : 20 de diciembre de 2012, 08:58:25 am »
Se fue un tanto por la tangente el asunto...

Lo de pdo y frameworks es un tanto casuistico ya ke es cuestion de criterios... en mi opinion si es por cuestiones didacticas tu desarrollo valla a pie sin apoyarse en librerias de terceros,, muchos programadores hacen uso indiscriminado de frameworks (en mi opinion) no en el 100% de los casos un framework es una alternativa...

Asi como para darle uso al post...

veo haces un uso algo extraño del sprintf()

En esta linea haces esto

Código: [Seleccionar]
$sql = sprintf("SELECT *  FROM post ORDER BY id DESC LIMIT 0,4");
Cuando es exactamente lo mismo

Código: [Seleccionar]
$sql = "SELECT *  FROM post ORDER BY id DESC LIMIT 0,4"
En el caso de:

Código: [Seleccionar]
$sql = sprintf("SELECT *  FROM post WHERE id = '$id_notas'  ");
Un uso correcto seria

Código: [Seleccionar]
$sql = sprintf("SELECT *  FROM post WHERE id = %u  ",$id_notas); //como ejemplo
Veo que en WHERE id = '$id_notas' el campo id es un int por lo que no deberias encerrar en '', en '' se encierran las cadenas.

http://php.net/manual/es/function.sprintf.php


Estas son pequeñas cosas que usando un framework o pdo no podras corregir ya que te dirige a otra vía, sino a pie viendo a detalle el trabajo que vas realizando.

Te invito a que sigas y publiques todo lo que puedas
« Última Modificación: 20 de diciembre de 2012, 09:02:59 am por el_santo »
Yo hablo php........!!!