ordenar base de datos de manera ascendente

Iniciado por adamsst, 15 Mayo 2015, 21:01 PM

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

adamsst

hola a todos tengo una pagina web la cual le hago promocion via twitter

googleando por alli consegui la manera de hacerlo y me funciona pero no de la manera que yo espero

la cuestion es simple funciona de la siguiente manera

creas una base de datos alli introduces los twetts que deseas publicar y el codigo en php te los va publicando

pero hay un problema que siempre me envia practicamente los mismos tweets o tiene preferencia por algunos no mencionando otros que son tambien de importancia

en mi base de datos tengo 35 twetts me gustaria que los fuera publicando de uno en uno de manera ascendente osea empiece por el 1 luego el 2 despues el 3 mas adelante el 4 mas tarde el 5 y asi hasta llegar al 35 y se devuelva de nuevo al 1 y siga su ciclo de nuevo pero no consigo como hacerlo


ACA PEGO EL CODIGO ORIGINAL


<?php
//www.webinfopedia.com
//http://www.webinfopedia.com/auto-tweet-with-oauth-in-php.html esta es la pagina de donde saque la informacion pero en estos instante no funciona la pagina


$consumerKey    'mi consumer key';
$consumerSecret ' mi consumer secret';
$oAuthToken     'mi oAuthToken';
$oAuthSecret    'mi oAuthSecret';

require_once(
'twitteroauth.php'); // este es un archivo que me descargue 

$tweet = new TwitterOAuth($consumerKey$consumerSecret$oAuthToken$oAuthSecret);

require_once(
"db.php"); // este es mi archivo de conexion

$sql=mysql_query("select title from tweets order by rand()");
$showfetch=mysql_fetch_array($sql);
$tweet->post('statuses/update', array('status' => $showfetch['title'] ));

?>




ESTE ES OTRO EDITADO PERO ME DA LOS MISMOS ERRORES TWITTEA PERO DE MANERA ALEATORIA Y CON PREFERENCIA A CIERTOS TWEETS


<?php
//www.webinfopedia.com
//http://www.webinfopedia.com/auto-tweet-with-oauth-in-php.html


$consumerKey    'mi consumerkey';
$consumerSecret 'mi consumersecret';
$oAuthToken     'mi oAuthToken';
$oAuthSecret    'mi oAuthSecret';

require_once(
'twitteroauth.php');

$tweet = new TwitterOAuth($consumerKey$consumerSecret$oAuthToken$oAuthSecret);

require_once(
"db.php");
$i=0;
$sql=mysql_query("SELECT title FROM tweets ORDER BY id ASC");
while(
$row mysql_fetch_array($sql)){
$showfetch[$i++]['title']=$row;
}
shuffle($showfetch);
$tweet->post('statuses/update', array('status' => $showfetch[0]['title'] ));

?>





sinceramente ya no se que mas hacer

engel lex

puedes colocarle un "ultima fecha"

tal que si lo twittea, coloque la fecha... y le agregas que los descarte tambien por fecha...


es decir...

si twittea lo coloca la fecha en la tabla, si twitteas a cada 5 minutos, ninguno se debería repetir antes de la mitad del tiempo...

Código (sql) [Seleccionar]
select title from tweets where fecha < UNIX_TIMESTAMP(NOW() - INTERVAL 90 minutes) order by rand() limit 1

es decir, selecciona los twitts cual fecha sea menor que este momento -90 minutos, los ordena al azar y retorna solo uno (el primero)

no te sirve? así disminuirías la tendencia... (no lo pongas al tiempo maximo porque si no se vuelve un ciclo lineal)
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

adamsst

no entendi muy bien tu respuesta

me dices que coloque tu codigo tal cual como esta

SELECT title FROM tweets WHERE fecha < UNIX_TIMESTAMP(NOW() - INTERVAL 90 minutes) ORDER BY rand() LIMIT 1

y me cree una tabla fecha donde se guardaran las fechas de cada tweets que se envioa

ahora mi pregunta es con que codigo se va a introducir esas fechas a la tabla fecha

engel lex

no... a tu tabla...

agregas el campo fecha...

seleccionas como te dejé...

si se twittea, haces update a la fecha...

y listo... el valor predeterminado de fecha, debe ser 0

ya que tienes pocas lineas, debeías cambiar la extension mysql por mysqli (es mayormente identico... basicamente le agregas la "i" a todo XD)

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

adamsst

Citarsi se twittea, haces update a la fecha

pero ese update lo hace el codigo que tu me enviastes ose mi pregunta directa es 

creando un campo fecha

colocando tu codigo

SELECT title FROM tweets WHERE fecha < UNIX_TIMESTAMP(NOW() - INTERVAL 90 minutes) ORDER BY rand() LIMIT 1

ese mismo codigo inserta en en campo fecha las fechas de cada twetts enviado y hec el udate

en pocas palabras

creo un campo fecha
copio y pego eso y mas nada problema resuelto



engel lex

no! D:

eso es un select! D: eso solo toma los datos...


luego el update sería con

Código (sql) [Seleccionar]
UPDATE tweets SET fecha=NOW() where title='$showfetch[title]'

en esa ultima variable no estoy seguro... pero es algo que identifique únicamente al twitt en tu base de datos
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

adamsst

aja y como ingresaria la fecha de los tweets en la base de datos

se hace de forma automatica o como

engel lex

colocas un nuevo campo tipo date con valor prederteminado 0... si lo haces en phpmyadmin es solo eso
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.