Helpful Information
 
 
Category: vBulletin.org Forum
SQL Query

I know there are more feature packed MySQL administrators available and you can do a lot with them. These serve their place in managing and maintaining a database. Often times though the overhead associated with them is too much when you want to run a quick query or add a field from within vBulletin.

What I did is simply edit the Query TEST script in "Professional PHP Programming" to work with vBulletin.

At the bottom and before the </BODY> tag of index.php in your admin directory add:

<p><b>Database Management</b><br>
<a href="query.php?action=new">Query</a><br>
<a href="mysqlstatus.php">MySQL Stats</a><br>


Then create a file called query.php and add the following code:

<HTML>
<HEAD>
<TITLE>SQL Query</TITLE>
</HEAD>
<BODY>
<?php
require ("global.php");
if ($action=="new") {
?>
<FORM ACTION="query.php?action=run" METHOD=POST>
Please input the SQL query to be executed:<BR><BR>
<TEXTAREA NAME="query" COLS=50 ROWS=10></TEXTAREA>
<BR><BR>
<INPUT TYPE=SUBMIT VALUE="Execute query!">
</FORM>
<?php
}

if ($action=="run") {

$query = stripSlashes($query) ;
$result = mysql_query($query);
?>
Results of query <B><?php echo($query); ?></B><HR>

<?php
if ($result == 0):
echo("<B>Error " . mysql_errno() . ": " . mysql_error() . "</B>");
elseif (mysql_num_rows($result) == 0):
echo("<B>Query executed successfully!</B>");
else:
?>
<TABLE BORDER=1>
<THEAD>
<TR>
<?php
for ($i = 0; $i < mysql_num_fields($result); $i++) {
echo("<TH>" . mysql_field_name($result,$i) . "</TH>");
}
?>
</TR>
</THEAD>
<TBODY>
<?php
for ($i = 0; $i < mysql_num_rows($result); $i++) {
echo("<TR>");
$row_array = mysql_fetch_row($result);
for ($j = 0; $j < mysql_num_fields($result); $j++) {
echo("<TD>" . $row_array[$j] . "</TD>");
}
echo("</TR>");
}
?>
</TBODY>
</TABLE>

<?php
endif;
}
?>
</BODY>
</HTML>


The second link connects to J. Eng's Extended Status Script which is available in this forum.. Just do a search for it or look for Eva2000's signature.:)

LOL, my sig is really getting more attention that I am :) ... what does the query test php file do ?

Originally posted by eva2000
LOL, my sig is really getting more attention that I am :) ... what does the query test php file do ?

Sorry for taking so long.. I missed your reply.

It creates a form with a text box and an execute button. It will allow you to run SQL queries directly from the vBulletin Control Panel.

This makes it easy to add fields to tables quickly when installing hacks or creating your own. Also allows you to create on the fly queries when your checking stats or anything else for that matter.

cool I will try it after 2.0 is out! :)

bring up from the past :D

This works today in any version... 1.1.X or 2.0...

I still use it on a regular basis.

I stuck a note to make something like this for v2.1 as it would be helpful to have.

Originally posted by freddie
I stuck a note to make something like this for v2.1 as it would be helpful to have. yup very helpful :D

To integrate it to the left nav bar you can add the following code to index.php:


<tr><td>
<table width="100%" border="0" cellspacing="0" cellpadding="2" id="navtable">
<?php maketableheader("Database Management"); ?>
</table>
<a href="query.php?action=new"> Query </a> |
<a href="mysqlstatus.php"> MySQL Stats </a>
</td></tr>


I put it between Custom BB codes and Backup database

That the query page is then in your cpl look (css works) create query.php with the following code:


<?php
require ("global.php");
if ($action=="new") {
cpheader();
?>
<FORM ACTION="query.php?action=run" METHOD=POST>
Please input the SQL query to be executed:<BR><BR>
<TEXTAREA NAME="query" COLS=50 ROWS=10></TEXTAREA>
<BR><BR>
<INPUT TYPE=SUBMIT VALUE="Execute query!">
</FORM>
<?php
}

if ($action=="run") {

$query = stripSlashes($query) ;
$result = mysql_query($query);
?>
Results of query <B><?php echo($query); ?></B><HR>

<?php
if ($result == 0):
echo("<B>Error " . mysql_errno() . ": " . mysql_error() . "</B>");
elseif (mysql_num_rows($result) == 0):
echo("<B>Query executed successfully!</B>");
else:
?>
<TABLE BORDER=1>
<THEAD>
<TR>
<?php
for ($i = 0; $i < mysql_num_fields($result); $i++) {
echo("<TH>" . mysql_field_name($result,$i) . "</TH>");
}
?>
</TR>
</THEAD>
<TBODY>
<?php
for ($i = 0; $i < mysql_num_rows($result); $i++) {
echo("<TR>");
$row_array = mysql_fetch_row($result);
for ($j = 0; $j < mysql_num_fields($result); $j++) {
echo("<TD>" . $row_array[$j] . "</TD>");
}
echo("</TR>");
}
?>
</TBODY>
</TABLE>

<?php
endif;
}
?>



But now I have a question:

You made a link to mysqlstatus.php!
Can you give the source of this file?

I get this when I click on Query:

Warning: Cannot add header information - headers already sent by (output started at /usr/www/users/gandalf/starwarsguide.com/forums/admin/query.php:6) in /usr/www/users/gandalf/starwarsguide.com/forums/admin/global.php on line 95

Warning: Cannot add header information - headers already sent by (output started at /usr/www/users/gandalf/starwarsguide.com/forums/admin/query.php:6) in /usr/www/users/gandalf/starwarsguide.com/forums/admin/global.php on line 96

Warning: Cannot add header information - headers already sent by (output started at /usr/www/users/gandalf/starwarsguide.com/forums/admin/query.php:6) in /usr/www/users/gandalf/starwarsguide.com/forums/admin/global.php on line 97

Warning: Cannot add header information - headers already sent by (output started at /usr/www/users/gandalf/starwarsguide.com/forums/admin/query.php:6) in /usr/www/users/gandalf/starwarsguide.com/forums/admin/global.php on line 98

then the query box.

Remove any spaces before <? and after ?>










privacy (GDPR)