PDA

View Full Version : [RELEASE] SQL Query


Wayne Luke
Tue 17th Oct '00, 9:05pm
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.:)

eva2000
Tue 24th Oct '00, 12:07am
LOL, my sig is really getting more attention that I am :) ... what does the query test php file do ?

Wayne Luke
Fri 27th Oct '00, 12:56pm
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.

John Harrison
Fri 27th Oct '00, 1:05pm
cool I will try it after 2.0 is out! :)

eva2000
Wed 23rd May '01, 11:01pm
bring up from the past :D

Wayne Luke
Wed 23rd May '01, 11:48pm
This works today in any version... 1.1.X or 2.0...

I still use it on a regular basis.

Freddie Bingham
Thu 24th May '01, 1:21am
I stuck a note to make something like this for v2.1 as it would be helpful to have.

eva2000
Thu 24th May '01, 2:14am
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

Christian
Tue 10th Jul '01, 6:51am
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?

Steve_C
Fri 28th Sep '01, 2:24pm
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.

Raz Meister
Fri 28th Sep '01, 2:35pm
Remove any spaces before <? and after ?>