sigue teniendo problemas (PHP SQLite)

  • greentiger
  • Newbie
  • Newbie
  • No Avatar
  • Registrado: Jun 29, 2009
  • Mensajes: 7
  • Status: Offline

Nota Julio 6th, 2009, 6:29 pm

im a tener problemas de ajuste mi cabeza declaraciones concedan y los diversos instrucciones JOIN ahí fuera, abajo es mi código, es fácil ver lo que im tratando de lograr, pero sé theres una manera mejor de hacerlo, pero necesito una buena explicación de cómo:


Código: [ Select ]
 
    // grab pertinent records
    $db = sqlite_open($ticketdb) or die ("can not create or read file $ticketdb");
        $r = sqlite_escape_string($r);
 
    if(!isset($u)) {
        $query = "SELECT ticketid, status, severity, priority, madeby, madedate, assignto, described, body
                    FROM tickets ORDER BY madedate DESC LIMIT $r, $hits;";
        }
    else {
            $u = sqlite_escape_string($u);
        $query = "SELECT ticketid, status, severity, priority, madeby, madedate, assignto, described, body
                    FROM tickets WHERE assignto = '$u' ORDER BY madedate DESC LIMIT $r, $hits;";
        }
    $result = sqlite_query($db, $query);
    $arrayTickets = sqlite_fetch_all($result);
    sqlite_close($db);
 
... SNIP PRINT TABLE ...
 
    foreach($arrayTickets as $row)
        {
        $madeby = $row[4];
        $assignto = $row[6];
 
        $dbuser = sqlite_open($chatdb) or die ("can not create or read file $chatdb");
            $madeby = sqlite_escape_string($madeby);
            $query = "SELECT username FROM users WHERE userid='$madeby';";
            $result = sqlite_query($dbuser, $query);
            $array = sqlite_fetch_array($result);
            $madeby = $array[0];
 
            $assignto = sqlite_escape_string($assignto);
            $query = "SELECT username FROM users WHERE userid='$assignto';";
            $result = sqlite_query($dbuser, $query);
            $array = sqlite_fetch_array($result);
            $assignto = $array[0];
        sqlite_close($dbuser);
 
... SNIP PRINT TABLE ...
 
  1.  
  2.     // grab pertinent records
  3.     $db = sqlite_open($ticketdb) or die ("can not create or read file $ticketdb");
  4.         $r = sqlite_escape_string($r);
  5.  
  6.     if(!isset($u)) {
  7.         $query = "SELECT ticketid, status, severity, priority, madeby, madedate, assignto, described, body
  8.                     FROM tickets ORDER BY madedate DESC LIMIT $r, $hits;";
  9.         }
  10.     else {
  11.             $u = sqlite_escape_string($u);
  12.         $query = "SELECT ticketid, status, severity, priority, madeby, madedate, assignto, described, body
  13.                     FROM tickets WHERE assignto = '$u' ORDER BY madedate DESC LIMIT $r, $hits;";
  14.         }
  15.     $result = sqlite_query($db, $query);
  16.     $arrayTickets = sqlite_fetch_all($result);
  17.     sqlite_close($db);
  18.  
  19. ... SNIP PRINT TABLE ...
  20.  
  21.     foreach($arrayTickets as $row)
  22.         {
  23.         $madeby = $row[4];
  24.         $assignto = $row[6];
  25.  
  26.         $dbuser = sqlite_open($chatdb) or die ("can not create or read file $chatdb");
  27.             $madeby = sqlite_escape_string($madeby);
  28.             $query = "SELECT username FROM users WHERE userid='$madeby';";
  29.             $result = sqlite_query($dbuser, $query);
  30.             $array = sqlite_fetch_array($result);
  31.             $madeby = $array[0];
  32.  
  33.             $assignto = sqlite_escape_string($assignto);
  34.             $query = "SELECT username FROM users WHERE userid='$assignto';";
  35.             $result = sqlite_query($dbuser, $query);
  36.             $array = sqlite_fetch_array($result);
  37.             $assignto = $array[0];
  38.         sqlite_close($dbuser);
  39.  
  40. ... SNIP PRINT TABLE ...
  41.  


ayuda sería apreciada! gracias.
  • Anonymous
  • Bot
  • No Avatar
  • Registrado: 25 Feb 2008
  • Mensajes: ?
  • Loc: Ozzuland
  • Status: Online

Nota Julio 6th, 2009, 6:29 pm

  • Bogey
  • Bogey
  • Genius
  • Avatar de Usuario
  • Registrado: Jul 14, 2005
  • Mensajes: 8211
  • Loc: USA
  • Status: Offline

Nota Julio 6th, 2009, 10:16 pm

No sé SQLite, y francamente, no sé si la sugerencia Im que va a hacer es buena digno para SQLite :lol:

¿Por qué abrir una conexión con SQLite dentro de un bucle? Hacerlo fuera del bucle...
"Bring forth therefore fruits meet for repentance:" Matthew 3:8
  • greentiger
  • Newbie
  • Newbie
  • No Avatar
  • Registrado: Jun 29, 2009
  • Mensajes: 7
  • Status: Offline

Nota Julio 7th, 2009, 11:18 am

Bogey escribió:
No sé SQLite, y francamente, no sé si la sugerencia Im que va a hacer es buena digno para SQLite :lol:

¿Por qué abrir una conexión con SQLite dentro de un bucle? Hacerlo fuera del bucle...


así SQLite es una base de datos de archivo de texto. básicamente es una solución a medio paso entre la escritura de un archivo de texto y una "verdadera" solución de base de datos como MySQL. SQLite con el problema entonces, es que tiene varias limitaciones, un "verdadero" PP wouldnt. como el tamaño de los archivos, bloqueo de archivos, etc...

y para ayudar a evitar algunos de estos problemas que he escrito la aplicación de utilizar dos bases de datos (bien en el final itll probablemente unos pocos) y la declaración de ATE se supone que permiten SQLite para unir dos bases de datos y construir temporalmente como una sola tabla. im sigue sin estar claro sobre cómo hacerlo así que lo que terminé haciendo es leer los resultados de las entradas db y entonces los usuarios consultar la base de datos para nombres de usuarios (de ahí el bucle). una cosa buena de esto es que SQLite es extremadamente rápido en las lecturas.

pero hay una solución más elegante pero no sé cómo ponerlo en práctica.

Publicar Información

  • Total de mensajes en este tema: 3 mensajes
  • Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 109 invitados
  • No puede abrir nuevos temas en este Foro
  • No puede responder a temas en este Foro
  • No puede editar sus mensajes en este Foro
  • No puede borrar sus mensajes en este Foro
  • No puede enviar adjuntos en este Foro
 
 

© 2011 Unmelted, LLC. Ozzu® es una marca registrada de Unmelted, LLC