Discussion Board
Welcome Guest! You can login or register. Login or Register.
2 Pages12>

Options
Go to last post Go to first unread
Zero2Cool  
#1 Posted : Friday, October 22, 2010 2:59:22 PM(UTC)
I'm trying to clean up the database.

My goal is to remove the posts from members that have been deleted.

I want a select statement that shows me how many of them there are before deleting.


I think I'll be using three tables with this.

table (field)
[ul]users (user_id)
posts (poster_id)
posts_text (post_id)[/ul]

Every post is given and id number. Then that id number is assigned to the post text.

The relationship between users and posts is the user_id and poster_id.
The relationship between posts and posts_text is the post_id.

I tried this, but it didn't work so well.

[php]SELECT *
FROM posts LEFT JOIN users
ON posts.poster_id != users.user_id[/php]


I think I caused some site load errors with this query too, lol.
dhpackr  
#2 Posted : Friday, October 22, 2010 3:09:19 PM(UTC)
bummer you can't delete posts
dhpackr  
#3 Posted : Friday, October 22, 2010 3:17:12 PM(UTC)
don't you want to use count

SELECT posts, COUNT(*) FROM posts WHERE Posterid=poster_id GROUP BY poster_id;

you have to play around with the table names, and you add quite a bit to a query with 'where' & 'group by' as well as 'orderby'

just running a select or count query should not break the site
Zero2Cool  
#4 Posted : Friday, October 22, 2010 3:22:57 PM(UTC)
I dunno, do I?
dhpackr  
#5 Posted : Friday, October 22, 2010 3:25:30 PM(UTC)
you know the answer, just play around till you get the query.

wanna let me in?

i'll try
otherwise this will help
Nonstopdrivel  
#6 Posted : Friday, October 22, 2010 3:31:11 PM(UTC)
I'm confused. Are you wanting to clean up deleted posts or posts by deleted members? The owner of the other board I used to administrate did the latter routinely; unfortunately, some of the most prolific members (e.g., instructors) were getting deleted. This resulted in some of our best threads being rendered nearly indecipherable, with members responding to phantom statements and questions. Threads came to resemble Swiss cheese, with much of the best content missing, rendering them all but useless. If this is what you want to do, I'd urge caution in implementing it.
Zero2Cool  
#7 Posted : Friday, October 22, 2010 3:36:19 PM(UTC)
627 posts returned.


Every post should have a valid relationship to a member.
Every topic should have a valid relationship to a post.
Every post should have a valid relationship to a topic.

I don't want rogue data out there.
Pack93z  
#8 Posted : Friday, October 22, 2010 3:44:48 PM(UTC)
Yes use the count, cleaner approach for your request in the first post.. as a review.
Pack93z  
#9 Posted : Friday, October 22, 2010 3:45:50 PM(UTC)
Okay.. with the timeout error, more than likely due to query gen, my comment now seems out of place. lol.
Zero2Cool  
#10 Posted : Friday, October 22, 2010 3:52:22 PM(UTC)
627 is what I got back, which is just a list of members who have 1 or more posts.

The member list shows 618 with a post.

That to me means we have posts for 9 members that have been deleted.
Zero2Cool  
#11 Posted : Friday, October 22, 2010 3:56:11 PM(UTC)
In the posts table, I have 13,155 posts.
The software shows 12,989.

I have 166 posts that were deleted, but not removed from the database??

Edit, actually it means I have 13,155 post ID's, but only 12,989 posts with a text.
Zero2Cool  
#12 Posted : Friday, October 22, 2010 4:11:55 PM(UTC)
[php]
SELECT _fpro_posts_text.post_id
FROM _fpro_posts, _fpro_posts_text
WHERE _fpro_posts.poster_id='2'
AND _fpro_posts_text.post_id != _fpro_posts.post_id
[/php]

Shouldn't this display a list of posts_text.post_id's that do not have a corresponding posts.posts_id for the poster_id 2?
Zero2Cool  
#13 Posted : Friday, October 22, 2010 4:33:07 PM(UTC)
This is hopeless. There's a ton of NULL's under id 2, okay, 136 or so, but I can't delete them records!
djcubez  
#14 Posted : Friday, October 22, 2010 9:47:14 PM(UTC)
From what you say this forum software works like other forum software with a POSTS table, a MEMBERS/USERS table and a TOPICS table. Each of them refer to each other by an auto-incremented value (topicID, postID and memberID). If you want to delete all the posts from members that don't exist you'd have to use multiple queries. For example:

Code:

<?php

// establish variables
$memberposts = "0";
$nonmemberposts = "0";

// first query all posts
$post_query ="SELECT * FROM posts";
$post_result = mysql_query($post_query);
while($post_row = mysql_fetch_array($post_result)) {
	// now we can address each post individually
	// we should set some variables we need
	$postID = $post_row["id"];				// The post ID
	$memberID = $post_row["memberid"];		// The member that made this post
	$isMember = true;						// boolean for whether the member exists or not
	// now we need to figure out if the member with that id still exists
	// to do that you need to do a num_rows query
	$member_query = "SELECT * FROM members WHERE id='$memberID'";
	$member_count = mysql_num_rows($member_query);
	// check if it returns a result
	if($member_count < "1") {
		// the member does not exist
		$isMember = false;
	}
	// now we return the result of our script
	if($isMember) {
		// post verified
		$memberposts++;
	} else {
		// delete the post?
		// I wouldn't
		// $delete_query = "DELETE FROM posts WHERE id='$postID'";
		// mysql_query($delete_query);
		$nonmemberposts++;	
	}
}

// display a report at the end
echo "Total posts by members: " . $membersposts . "<br />total posts by non-members: " . $nonmemberposts;

?>


Obviously you'll have to replace the references I make to mysql rows and tables because I don't know whats yours are exactly. But if I do understand what you want this code should work, although I haven't tested it.

EDIT: Please don't run the script with the delete query in it until you've verified that it works. I would not want you to accidentally delete all the posts in this forum because of my bad code. I've already commented the delete query out so that if you want to you can just comment it back in.
Zero2Cool  
#15 Posted : Friday, October 22, 2010 10:48:33 PM(UTC)
Yeah, I don't want to delete them just yet. I want to see them first, that's why I was using the SQL query in the phpAdmin.

I can provide the three tables for you guys if that'll help.
dhpackr  
#16 Posted : Friday, October 22, 2010 10:53:44 PM(UTC)
Code:

<?php

// $delete_query = "DELETE ?????FROM posts WHERE id='$postID'";
		// mysql_query($delete_query);
		$nonmemberposts++;	
?>


wouldn't work if it wasn't commented out, this would cause an error, not telling what you want to delete.

why don't you just delete id #2, the whole row? if you are using auto increment for the id field, it wouldn't let you delete the row unless you delete the id
Zero2Cool  
#17 Posted : Friday, October 22, 2010 10:58:03 PM(UTC)
I've deleted members in the users table, but not their posts. Therefore there's posts out there that cause errors while searching.
dhpackr  
#18 Posted : Friday, October 22, 2010 11:23:58 PM(UTC)
imo, the best way to maintain your site would be to manually go into the database through php admin and delete the rows that way.

a script would be nice for maintenance, but you are risking wiping out data you want to keep.

just wondering, did you join the mysql forum. you should, and post questions in the forum.

you'll get your solution...if you are driven.

BTW..I find it humorous, a .NET Developer is running his forum using PHP, Microsoft's main nemesis.

Isn't that like sayin you work at Ford but drive a Toyota?

:icon_smile: just sayin!
Zero2Cool  
#19 Posted : Saturday, October 23, 2010 12:08:55 AM(UTC)
I was looking into developing my own software using ASP-MVC2 with SQL Server, but it seems like too much work. I'd be reinventing a lot of the options here.

Might as well stick with this and enhance it, instead of recreating everything, right?
dhpackr  
#20 Posted : Saturday, October 23, 2010 2:55:39 AM(UTC)
yes, stick with the PHP site. Classic ASP is an old technology. You have to write a ridiculous amount of "spaghetti" code to do even a simple database call.

Microsoft updated to .NET for a reason!
Rss Feed
Users browsing this topic
Guest
2 Pages12>
Forum Jump
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.

Notification

Icon
Error

Fan Shout
uffda udfa (3h) : He ain't done yet for this season. Can Hundley handle?
uffda udfa (3h) : Aaron Rodgers finally communicates on Instagram: COMEBACK STARTS NOW
Barfarn (13h) : Bart's not on injury report, he's startin'
Smokey (13h) : I hope that means that he (Bart Starr) is in better health these days .
Zero2Cool (13h) : Bart Starr returning to Lambeau Field for Packers-Saints game Sunday
Porforis (19-Oct) : Glad to have King back. And House. Packers need 'em.
Zero2Cool (19-Oct) : Good! smack some posts in the forum right?!? :-) can't wait to read it
uffda udfa (18-Oct) : No more clutter.
Cheesey (18-Oct) : Go get him Uncle Ted!!
Zero2Cool (18-Oct) : Former Packers pass-rusher Datone Jones is back on the market.
Zero2Cool (18-Oct) : Good news for #Packers secondary: rookie CB Kevin King and vet CB Davon House (quad) both practiced. King has cleared concussion protocol.
Zero2Cool (18-Oct) : Vince Biegel back on practice field!!
Zero2Cool (18-Oct) : Maybe this little shout has no value if people gonna use it instead of the forum.
Zero2Cool (18-Oct) : He's not writing. He's shouting, and its making the shout kind of without point with the clutter.
buckeyepackfan (18-Oct) : Just like last year at 4-6. The guy is just too funny!
buckeyepackfan (18-Oct) : GOOD news Uffda is already all but writing The Packers off for 2017!
uffda udfa (18-Oct) : Masturbation talk from Barfan? Nothing could make me COME back, quicker.
wpr (18-Oct) : Maybe the shout box needs to take a timeout. People keep using it. ;)
Zero2Cool (18-Oct) : Why do this is in shout? So frustrating. Post in forums. Thanks
Barfarn (18-Oct) : Masterbation will relieve some of that nervous tension!
uffda udfa (17-Oct) : Now, a guy they really liked and have groomed for 3 years is the guy. Tons of toys on O. Let's see how it runs with a great coach, now.
uffda udfa (17-Oct) : The Flynn Patriots game has been used to say that he is. Seneca and Scott showed otherwise.
uffda udfa (17-Oct) : Hundley is going to settle the debate once and for all in whether Mike McCarthy is a great coach, or not.
uffda udfa (17-Oct) : Doesn't speak well to the talent acquired by the org, does it? Easy to say talent is great until Rodgers is gone and you have to see it wit
Porforis (17-Oct) : Could Sam Bradford come into the Packers and post a winning record from here on out? Are there any non-starters in the NFL that could?
Zero2Cool (17-Oct) : Teddy is replaceable. Aaron is not. Vikings have a really good defense. We do not. Understand??
Zero2Cool (17-Oct) : You are wise enough to know the difference. Right?
uffda udfa (17-Oct) : Here's one for you, Z. Vikes lose Teddy B. and go out and aggressively get Bradford. Packers lose 12 and go out and get a UDFA.
uffda udfa (17-Oct) : :) Evans had a pre-draft visit with Packers.
Zero2Cool (17-Oct) : Put it in a topic. My lord why so difficult lol
uffda udfa (17-Oct) : http://www.nfl.com/draft/2017/profiles/jerod-evans?id=2558099
uffda udfa (17-Oct) : http://www.foxsports.com/nfl/story/former-virginia-tech-qb-jerod-evans-issues-warning-after-going-undrafted-043017
uffda udfa (17-Oct) : Oh, Jerod Evans formerly of Va Tech is our Hokie QB plan
uffda udfa (17-Oct) : Was previously on Eagles PS
uffda udfa (17-Oct) : Tweeted the below due to huge chip on his shoulder for going undrafted after leaving early.
Please sign in to use Fan Shout
2017 Packers Schedule
Sunday, Sep 10 @ 3:25 PM
SEAHAWKS
Sunday, Sep 17 @ 7:30 PM
at Falcons
Sunday, Sep 24 @ 3:25 PM
BENGALS
Thursday, Sep 28 @ 7:25 PM
BEARS
Sunday, Oct 8 @ 3:25 PM
at Cowboys
Sunday, Oct 15 @ 12:00 PM
at Vikings
Sunday, Oct 22 @ 12:00 PM
SAINTS
Sunday, Oct 29 @ 12:00 AM
- BYE -
Monday, Nov 6 @ 7:30 PM
LIONS
Sunday, Nov 12 @ 12:00 PM
at Bears
Sunday, Nov 19 @ 12:00 PM
RAVENS
Sunday, Nov 26 @ 7:30 PM
at Steelers
Sunday, Dec 3 @ 12:00 PM
BUCCANEERS
Sunday, Dec 10 @ 12:00 PM
at Browns
Sunday, Dec 17 @ 12:00 PM
at Panthers
Saturday, Dec 23 @ 7:30 PM
VIKINGS
Sunday, Dec 31 @ 12:00 PM
at Lions
Think About It
Think About It
Recent Topics
1h / Green Bay Packers Talk / uffda udfa

3h / Green Bay Packers Talk / beast

3h / Green Bay Packers Talk / beast

3h / Green Bay Packers Talk / uffda udfa

5h / Fantasy Sports Talk / Smokey

6h / Green Bay Packers Talk / nerdmann

6h / Green Bay Packers Talk / Barfarn

7h / Green Bay Packers Talk / nerdmann

19-Oct / Green Bay Packers Talk / Barfarn

19-Oct / Green Bay Packers Talk / yooperfan

18-Oct / Green Bay Packers Talk / isocleas2

18-Oct / Green Bay Packers Talk / wpr

17-Oct / Around The NFL / Zero2Cool

17-Oct / Green Bay Packers Talk / gotarace

17-Oct / Green Bay Packers Talk / nerdmann

Headlines