lms
27/12/2009, 18:05
Acceso a datos de Tablas, (query_first, query_read, query_write)
Cuando estemos haciendo un archivo PHP o un Plugin, que es netamente código PHP, vBulletin nos ofrece 3 funciones para acceder a los datos, estos son:
$vbulletin->db->query_first("SELECT");
$vbulletin->db->query_read("SELECT");
$vbulletin->db->query_write("INSERT o UPDATE");
Diferencias:
query_first nos devuelve el primer resultado de la consulta en forma de un registro, es útil si usas consultas que devuelven 1 sola fila como por ejemplo un conteo de registro o algún registro en especial
Ejemplo:
$usuario = $vbulletin->db->query_first("SELECT *
FROM " . TABLE_PREFIX . "user
WHERE userid=1");
echo $usuario['userid'];
echo $usuario['username'];
echo $usuario['email'];
//Etc de los demás campos
query_read nos devuelve una colección de registros que debemos recorrer para obtener cada registro
Ejemplo:
$usuario = $vbulletin->db->query_read("SELECT * FROM " . TABLE_PREFIX . "user"); //todos los registros
if ($vbulletin->db->num_rows($usuario) > 0) //si hay 1 o más registros
{
$tabla = '<table border="0">';
$tabla .= '<tr><td class="tcat">Userid</td><td class="tcat">Nombre</td><td class="tcat">Correo</td></tr>';
while ($reg_usuario = $vbulletin->db->fetch_array($usuario)) //lleno $reg_usuario por cada usuario en los registros devueltos
{
$tabla .= '<tr><td class="alt1">'.$reg_usuario['userid'].'</td><td class="alt2">'.$reg_usuario['username'].'</td><td class="alt1">'.$reg_usuario['email'].'</td></tr>';
}
$tabla .= '</table>';
}
echo $tabla; //muestra todo una tabla con todos los usuarios del foro
query_write no hay mucho que decir de esta función... básicamente se usa para hacer INSERTS o UPDATE de campos en tablas
$vbulletin->db->query_write("UPDATE " . TABLE_PREFIX . "user SET
username = 'Nuevo Nick'
WHERE userid=1
");
//Actualizar un registro en la Base de datos
PD: TABLE_PREFIX es una costante definida en vBulletin que contiene el prefijo que has configurado para tu foro, es recomendable usarlo siempre ya que los nombres de tablas pueden varias de foro en foro (websites)
Salud2
Cuando estemos haciendo un archivo PHP o un Plugin, que es netamente código PHP, vBulletin nos ofrece 3 funciones para acceder a los datos, estos son:
$vbulletin->db->query_first("SELECT");
$vbulletin->db->query_read("SELECT");
$vbulletin->db->query_write("INSERT o UPDATE");
Diferencias:
query_first nos devuelve el primer resultado de la consulta en forma de un registro, es útil si usas consultas que devuelven 1 sola fila como por ejemplo un conteo de registro o algún registro en especial
Ejemplo:
$usuario = $vbulletin->db->query_first("SELECT *
FROM " . TABLE_PREFIX . "user
WHERE userid=1");
echo $usuario['userid'];
echo $usuario['username'];
echo $usuario['email'];
//Etc de los demás campos
query_read nos devuelve una colección de registros que debemos recorrer para obtener cada registro
Ejemplo:
$usuario = $vbulletin->db->query_read("SELECT * FROM " . TABLE_PREFIX . "user"); //todos los registros
if ($vbulletin->db->num_rows($usuario) > 0) //si hay 1 o más registros
{
$tabla = '<table border="0">';
$tabla .= '<tr><td class="tcat">Userid</td><td class="tcat">Nombre</td><td class="tcat">Correo</td></tr>';
while ($reg_usuario = $vbulletin->db->fetch_array($usuario)) //lleno $reg_usuario por cada usuario en los registros devueltos
{
$tabla .= '<tr><td class="alt1">'.$reg_usuario['userid'].'</td><td class="alt2">'.$reg_usuario['username'].'</td><td class="alt1">'.$reg_usuario['email'].'</td></tr>';
}
$tabla .= '</table>';
}
echo $tabla; //muestra todo una tabla con todos los usuarios del foro
query_write no hay mucho que decir de esta función... básicamente se usa para hacer INSERTS o UPDATE de campos en tablas
$vbulletin->db->query_write("UPDATE " . TABLE_PREFIX . "user SET
username = 'Nuevo Nick'
WHERE userid=1
");
//Actualizar un registro en la Base de datos
PD: TABLE_PREFIX es una costante definida en vBulletin que contiene el prefijo que has configurado para tu foro, es recomendable usarlo siempre ya que los nombres de tablas pueden varias de foro en foro (websites)
Salud2