Foros del Web » Programando para Internet » PHP »

como ordenar resultado

Estas en el tema de como ordenar resultado en el foro de PHP en Foros del Web. hola amigos tengo este codigo en donde extraigo los datos de mi lista de youtube y tambien filtro el sustado con strpos , pero nesecito ...
  #1 (permalink)  
Antiguo 24/03/2012, 10:58
 
Fecha de Ingreso: abril-2008
Mensajes: 310
Antigüedad: 16 años
Puntos: 4
como ordenar resultados con php

hola amigos tengo este codigo en donde extraigo los datos de mi lista de youtube
y tambien filtro el sustado con strpos , pero nesecito que este resultado de orderne de manera descende en donde el valor de la posicion es $position para cada item,


Código PHP:
Ver original
  1. <?php
  2.  
  3.  
  4.     // set feed URL
  5.     $feedURL = 'http://gdata.youtube.com/feeds/api/users/xxxx/playlists';
  6.    
  7.     // read feed into SimpleXML object
  8.     $sxml = simplexml_load_file($feedURL);
  9.    
  10.     // iterate over entries in feed
  11.  
  12.  
  13.     foreach ($sxml->entry as $entry) :
  14.       $titlecate = $entry->title;
  15.       $buscar = "parametro";
  16.  
  17. if( strpos( $titlecate, $buscar ) !== false ):
  18.         //if(eregi($buscar, $titlecate)) :
  19.  
  20.  
  21.    $titlecate = str_replace($buscar," ",$titlecate);
  22.  
  23.             // get nodes in media: namespace for media information
  24.         $media = $entry->children('http://search.yahoo.com/mrss/');
  25.    
  26.         // obtener <yt:playlistId> node    
  27.         $yt = $entry->children('http://gdata.youtube.com/schemas/2007');
  28.         $playlistId = $yt->playlistId;
  29.  
  30.  // get <yt:duration> node for video length
  31.       $yt = $media->children('http://gdata.youtube.com/schemas/2007');
  32.       $position = $yt->position;
  33.    
  34.         echo "<li>".html::link("index/categoria/$titlecate/$playlistId",$titlecate)."</li>";
  35.    
  36.      endif;
  37.  
  38.     endforeach;
  39.  
  40. ?>

espero me entiendan y colaboren
graicas
  #2 (permalink)  
Antiguo 24/03/2012, 13:54
 
Fecha de Ingreso: abril-2008
Mensajes: 310
Antigüedad: 16 años
Puntos: 4
Respuesta: como ordenar resultados con php

mi idea es que genere el lista

position 3 carro
position 2 casa
postion 1 empleos

pues por defecto esta de forma ascendente
  #3 (permalink)  
Antiguo 25/03/2012, 23:59
 
Fecha de Ingreso: abril-2008
Mensajes: 310
Antigüedad: 16 años
Puntos: 4
Respuesta: como ordenar resultados con php

he encontrado esta funcion sera que puede servir
rsort

gracias
  #4 (permalink)  
Antiguo 10/04/2012, 08:53
 
Fecha de Ingreso: abril-2008
Mensajes: 310
Antigüedad: 16 años
Puntos: 4
como ordenar resultado

hola amigos como puedo hacer para ordenar un conjunto de resultado sacados con el api de youtube y simplexml en donde tengo un valor position q seria el q me puede ordenar pero no se que función puedo usar
si alguien me pudiera ayudar le agradecería
  #5 (permalink)  
Antiguo 10/04/2012, 09:44
Avatar de p414  
Fecha de Ingreso: agosto-2009
Ubicación: casi casi casi... a un lado de la cuna...
Mensajes: 575
Antigüedad: 14 años, 7 meses
Puntos: 44
Respuesta: como ordenar resultado

y si pones algo más??? algo de código????? un ejemplo de tu "conjunto de resultados"?????
  #6 (permalink)  
Antiguo 10/04/2012, 09:46
 
Fecha de Ingreso: abril-2008
Mensajes: 310
Antigüedad: 16 años
Puntos: 4
Respuesta: como ordenar resultado

claro disculpa

Código PHP:
Ver original
  1. <ul id="grid-content">  
  2.  
  3. <?php
  4.     $feedURL = "http://gdata.youtube.com/feeds/api/playlists/$playlistid?v=2&start-index=1&max-results=10";
  5.     // read feed into SimpleXML object
  6.     $sxml = simplexml_load_file($feedURL);
  7.  
  8.  
  9.       // get summary counts from opensearch: namespace
  10.     $counts = $sxml->children('http://a9.com/-/spec/opensearch/1.1/');
  11.     $total = $counts->totalResults;  
  12.  
  13.      // $sxml->children('http://a9.com/-/spec/opensearch/1.1/');
  14.      // $total = $sxml->totalResults;
  15.     $startIndex = $counts->startIndex;
  16.     $endOffset = ($startIndex-1) + $counts->itemsPerPage;
  17.      
  18. ?>
  19.  
  20.  
  21.      <h1> <?echo $sxml->title;?> </h1>
  22.    
  23.    <?php
  24.     // iterate over entries in feed
  25.     foreach ($sxml->entry as $entry) :
  26.       // get nodes in media: namespace for media information
  27.       $media = $entry->children('http://search.yahoo.com/mrss/');
  28.        
  29.       // get video player URL
  30.       $attrs = $media->group->player->attributes();
  31.       $watch = $attrs['url'];
  32.        
  33.       // get video thumbnail
  34.       $attrs = $media->group->thumbnail[0]->attributes();
  35.       $thumbnail = $attrs['url'];
  36.              
  37.       // get <yt:duration> node for video length
  38.       $yt = $media->children('http://gdata.youtube.com/schemas/2007');
  39.       $attrs = $yt->duration->attributes();
  40.       $length = $attrs['seconds'];
  41.        
  42.       // get <yt:stats> node for viewer statistics
  43.       $yt = $entry->children('http://gdata.youtube.com/schemas/2007');
  44.       $attrs = $yt->statistics->attributes();
  45.       $viewCount = $attrs['viewCount'];
  46.        
  47.       // get <gd:rating> node for video ratings
  48.       $gd = $entry->children('http://schemas.google.com/g/2005');
  49.       if ($gd->rating) {
  50.         $attrs = $gd->rating->attributes();
  51.         $rating = $attrs['average'];
  52.       } else {
  53.         $rating = 0;
  54.       }
  55.        
  56.  
  57.       // obtener <yt:videoId> node    
  58.       $yt = $media->children('http://gdata.youtube.com/schemas/2007');
  59.       $videoid = $yt->videoid;      
  60.  
  61.       // get <yt:duration> node for video length
  62.       $yt = $entry->children('http://gdata.youtube.com/schemas/2007');
  63.       $position = $yt->position;
  64.  
  65.  
  66.       ?>
  67.  
  68.  
  69.       <li>
  70.     <div class="view view-first">        
  71.           <? echo Html::link("index/ver/$videoid/$playlistid", "<img src=$thumbnail />") ;?>
  72.  
  73.      <div class="mask">
  74.      <h2 style="padding: 5px;"><?php echo Html::link("index/ver/$videoid/$playlistid", substr($media->group->title,0,20)) ?></h2>
  75.            <br> position :<? echo $position ?><br>
  76.  
  77.      <?php echo Html::link("index/ver/$videoid/$playlistid","Play","class='button .btn-danger'"); ?>
  78.      </div>        
  79.     </div>
  80.     </li>                      
  81.  
  82.  
  83.          
  84.    <?php  endforeach; ?>
  85.  
  86.  
  87. </ul>
  #7 (permalink)  
Antiguo 10/04/2012, 09:48
Avatar de p414  
Fecha de Ingreso: agosto-2009
Ubicación: casi casi casi... a un lado de la cuna...
Mensajes: 575
Antigüedad: 14 años, 7 meses
Puntos: 44
Respuesta: como ordenar resultado

ok, me imagino que este es el valor que quieres ordenar:
Código PHP:
Ver original
  1. $position = $yt->position;

pero... ???? de qué forma lo quieres ordenar???
  #8 (permalink)  
Antiguo 10/04/2012, 09:49
 
Fecha de Ingreso: abril-2008
Mensajes: 310
Antigüedad: 16 años
Puntos: 4
Respuesta: como ordenar resultado

sii ese es de mayor a menor
checa esta url de prueba q tengo

http://atodosonido.com/index/categor...439B9FECB47914

hay muestra el resultado fijate q el position por defecto esta de menor a mayor entonces siempre se mostrar de primero el resultado mas viejo
  #9 (permalink)  
Antiguo 10/04/2012, 09:59
Avatar de p414  
Fecha de Ingreso: agosto-2009
Ubicación: casi casi casi... a un lado de la cuna...
Mensajes: 575
Antigüedad: 14 años, 7 meses
Puntos: 44
Respuesta: como ordenar resultado

y una pregunta relativa...

si $startIndex = $counts->startIndex; lo conviertes a $startIndex = $counts->itemsPerPage;
y tu bucle lo haces pero ... al revès... en teoría debería de funcionar
  #10 (permalink)  
Antiguo 10/04/2012, 09:59
 
Fecha de Ingreso: septiembre-2010
Ubicación: /home/
Mensajes: 103
Antigüedad: 13 años, 7 meses
Puntos: 17
Respuesta: como ordenar resultado

Hola charlescuellar

corrígeme si me equivoco pero la variable $position no deja de ser un array no?

entonces [URL="http://php.net/manual/es/array.sorting.php"]http://php.net/manual/es/array.sorting.php[/URL]

concretamente la función [URL="http://www.php.net/manual/es/function.arsort.php"]http://www.php.net/manual/es/function.arsort.php[/URL]

saludos
  #11 (permalink)  
Antiguo 10/04/2012, 10:07
Avatar de p414  
Fecha de Ingreso: agosto-2009
Ubicación: casi casi casi... a un lado de la cuna...
Mensajes: 575
Antigüedad: 14 años, 7 meses
Puntos: 44
Respuesta: como ordenar resultado

bugger... no importa que sea un xml ?????? nunca he hecho un sort en un xml al menos no así jejejeje siempre lo hago con un bucle :P

pero vamos a probarlo
  #12 (permalink)  
Antiguo 10/04/2012, 10:09
 
Fecha de Ingreso: septiembre-2010
Ubicación: /home/
Mensajes: 103
Antigüedad: 13 años, 7 meses
Puntos: 17
Respuesta: como ordenar resultado

Cita:
Iniciado por p414 Ver Mensaje
bugger... no importa que sea un xml ?????? nunca he hecho un sort en un xml al menos no así jejejeje siempre lo hago con un bucle :P

pero vamos a probarlo
ups, no leí lo del xml....

así que ni idea ahora mismo....

sorry
  #13 (permalink)  
Antiguo 10/04/2012, 10:26
 
Fecha de Ingreso: abril-2008
Mensajes: 310
Antigüedad: 16 años
Puntos: 4
Respuesta: como ordenar resultado

Cita:
Iniciado por p414 Ver Mensaje

si $startIndex = $counts->startIndex; lo conviertes a $startIndex = $counts->itemsPerPage;
y tu bucle lo haces pero ... al revès... en teoría debería de funcionar
como al reves
  #14 (permalink)  
Antiguo 10/04/2012, 10:42
Avatar de p414  
Fecha de Ingreso: agosto-2009
Ubicación: casi casi casi... a un lado de la cuna...
Mensajes: 575
Antigüedad: 14 años, 7 meses
Puntos: 44
Respuesta: como ordenar resultado

$startIndex = $counts->startIndex;


te india que tu indice inicial será el primero que tenga... ahora que sucede si inviertes el orden... en lugar de que sea el primero... que sea el último y en lugar de que vaya hacia adelante... que vaya hacia atrás algo como


(1,2,3,4)

(4,3,2,1)

solo en teoría tienes que cambiar el orden del bucle
  #15 (permalink)  
Antiguo 10/04/2012, 10:52
 
Fecha de Ingreso: abril-2008
Mensajes: 310
Antigüedad: 16 años
Puntos: 4
Respuesta: como ordenar resultado

en un chat tambien pregunte y me disen haga esto pero no lo entiendo del todo

Código PHP:
Ver original
  1. $result[$position] = array("titulo"=>$titlecate,"id"=> $playlistId);
  2. con eso ordeneas $result o lo imprimes al reves
  3. for($i=count($result); $i<0; $i--){  $obj=$result[$i]; echo "<li>".html::link("index/categoria/{$obj['titulo']}/{$obj['id']}",{$obj['titulo']})."</li>"; }
  #16 (permalink)  
Antiguo 10/04/2012, 10:54
Avatar de p414  
Fecha de Ingreso: agosto-2009
Ubicación: casi casi casi... a un lado de la cuna...
Mensajes: 575
Antigüedad: 14 años, 7 meses
Puntos: 44
Respuesta: como ordenar resultado

si.. es exactamente lo que te estoy tratando de decir jajajajajajaja xD si te fijas... cuentan cantos resultados hay en tu array, luego hacen el bucle hacia atras ($i--) y de ahi van imprimiendo los resultados

trata de imprimir solo el último resultado... trata de que solo sea ese el que se muestre va???

y luego nos dices que tal te va con ello

Etiquetas: html, resultados
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 00:43.