PDA

View Full Version : Searching for MySQL-Query


pizzaservice
06-23-2010, 01:39 AM
Hello,
I got a small problem. I used SMF Forum before and I had Trade-Feedback Plugin. Now I changed to vBulletin and I have iTrader plugin.
I want to import old feedback to the new. The problem is, that new userids are different from the old.
My idea is that I take the new "user" table and check for login-names and set on the old table the new id. The login is same.

That is what I want:

http://www.imagebanana.com/img/tqa19vae/tables.PNG

I just don't know how to realize this with SQL query. Can someone help me and make a sample for that action? There are about 8.000 users in the table.

Thanks!

Marco van Herwaarden
06-24-2010, 05:40 AM
If you have used ImpEx to import your SMF forum to vBulletin, then the user table will contain an import_userid column with the old SMF userid.

pizzaservice
06-24-2010, 10:20 PM
I know... But we used an other methode and now the userid's aren't same...
I were very thankful to anyone who will tell me how to do it. Maybe I could make it with some php script?

pizzaservice
06-27-2010, 07:53 PM
*push*

marrr
06-27-2010, 08:35 PM
The best method for this is to write a small php script to query the old table and grab all the user id's and their corresponding usernames. Then store that in an array. Loop through the array and update the new table with the old id's. This is a little risky so be careful of what you do. The code below is a pretty good start to do what you want. Remember that you need to change the information for your database host, username, password, database name. You also need to make sure the right table and field names are used!

/* Connect to your database */
mysql_connect("localhost", "username", "password") or die(mysql_error());
mysql_select_db("test") or die(mysql_error());

/* Create array for old id's and query the database for all the old id's */
$old_ids = array();
$result = mysql_query("SELECT user_id, username FROM users");

/* Store all old id's with their corresponding username */
while ($row = mysql_fetch_row($result)) {
$old_ids = array('user_id' => $row['user_id'], 'username' => $row['username']);
}

/* Update every user that existed in the old table with their old user id number */
foreach ($old_ids as $old_id) {
mysql_query("UPDATE table_name SET user_id=".$old_id['user_id']." WHERE username=`".$old_id['username']."`")or die(mysql_error());
}

pizzaservice
07-02-2010, 01:28 AM
Thanks dude, I'll try it!