4images Help / Hilfe > Error Messages / Fehlermeldungen

Unknown column 'i.user_id' in 'on clause'

(1/2) > >>

V@no:
This error occur when used 4images v1.7 / 1.7.1 (and/or some old mods) and MySQL v5.x
It caused by the changes in MySQL v5 handling multiple tables on one query.
If your 4images is newer then v1.7.1 and you still get these errors, then you must have installed a mod that is not MySQL v5 compatible.

There are three ways fix the problem:
1) Downgrade MySQL to v3 or v4
2) Upgrade your 4images
3) In .php files replace all
FROM table1 ref, table2 ref

with:
FROM (table1 ref, table2 ref)


There are quiet a few places needs to be fixed, so I'd recommend use a text editor which allows use unix regular expressions to search and modify files.

This REGEX string I've used in UltraEdit:
--- Code: ---(FROM\s+)("\.[A-Z_]+\."\s+[a-z]+,\s*"\.[A-Z_]+\."\s+[a-z]+)
--- End code ---
and in replacing string used:
--- Code: ---\1(\2)
--- End code ---

it worked quiet well. That editor allows search and replace string in files without opening them in the editor, which would be the fastest way, however I'd strongly recommend do a complete backup of all .php files before you attempt doing it.


--- Quote from: dawolf on November 18, 2008, 12:29:12 PM ---I corrected this problem by running a perl command from the shell in the 4images root dir, the \admin dir and the \includes dir:


--- Code: ---perl -pi '-es/(FROM\s+)("\.[A-Z_]+\."\s+[a-z]+,\s*"\.[A-Z_]+\."\s+[a-z]+)/$1($2)/g' *.php
--- End code ---

This might be useful for people without access to Ultraedit.
Remember to BACK UP everything before you try this!


--- End quote ---

If you don't have such editor or for any other reasons can't use that REGEX, prepare yourself for a long journey modifying almost all 4images files manually.
The list below is only for non-modified 4images v1.7 / 1.7.1 That means if after fixing all these files you still getting errors there are only two reasons:
1) you missed a modification
2) you've installed a mod that also not MySQL v5 compatible.

In any case you'll need find and fix the problem yourself.

Hopefully after looking at the list below you'll understand what has to be changed.

Good luck.

Find in categories.php:
--- Code: ---FROM ".IMAGES_TABLE." i,  ".CATEGORIES_TABLE." c
--- End code ---
Replace with:
--- Code: ---FROM (".IMAGES_TABLE." i,  ".CATEGORIES_TABLE." c)
--- End code ---

Find in details.php:
--- Code: ---FROM ".IMAGES_TABLE." i,  ".CATEGORIES_TABLE." c
--- End code ---
Replace with:
--- Code: ---FROM (".IMAGES_TABLE." i,  ".CATEGORIES_TABLE." c)
--- End code ---

Find in index.php:
--- Code: ---FROM ".IMAGES_TABLE." i,  ".CATEGORIES_TABLE." c
--- End code ---
Replace with:
--- Code: ---FROM (".IMAGES_TABLE." i,  ".CATEGORIES_TABLE." c)
--- End code ---

Find in lightbox.php:
--- Code: ---FROM ".IMAGES_TABLE." i,  ".CATEGORIES_TABLE." c
--- End code ---
Replace with:
--- Code: ---FROM (".IMAGES_TABLE." i,  ".CATEGORIES_TABLE." c)
--- End code ---


Find in member.php (4 times):
--- Code: ---FROM ".COMMENTS_TABLE." c, ".IMAGES_TABLE." i
--- End code ---
Replace with:
--- Code: ---FROM (".COMMENTS_TABLE." c, ".IMAGES_TABLE." i)
--- End code ---

Find in postcards.php:
--- Code: ---FROM ".IMAGES_TABLE." i,  ".CATEGORIES_TABLE." c
--- End code ---
Replace with:
--- Code: ---FROM (".IMAGES_TABLE." i,  ".CATEGORIES_TABLE." c)
--- End code ---


Find in postcards.php:
--- Code: ---FROM ".POSTCARDS_TABLE." p, ".IMAGES_TABLE." i
--- End code ---
Replace with:
--- Code: ---FROM (".POSTCARDS_TABLE." p, ".IMAGES_TABLE." i)
--- End code ---


Find in search.php:
--- Code: ---FROM ".WORDLIST_TABLE." w, ".WORDMATCH_TABLE." m
--- End code ---
Replace with:
--- Code: ---FROM (".WORDLIST_TABLE." w, ".WORDMATCH_TABLE." m)
--- End code ---

Find in search.php:
--- Code: ---FROM ".IMAGES_TABLE." i,  ".CATEGORIES_TABLE." c
--- End code ---
Replace with:
--- Code: ---FROM (".IMAGES_TABLE." i,  ".CATEGORIES_TABLE." c)
--- End code ---

Find in top.php (4 times):
--- Code: ---FROM ".IMAGES_TABLE." i, ".CATEGORIES_TABLE." c
--- End code ---
Replace with:
--- Code: ---FROM (".IMAGES_TABLE." i, ".CATEGORIES_TABLE." c)
--- End code ---

Find in admin\comments.php:
--- Code: ---FROM ".COMMENTS_TABLE." c, ".IMAGES_TABLE." i
--- End code ---
Replace with:
--- Code: ---FROM (".COMMENTS_TABLE." c, ".IMAGES_TABLE." i)
--- End code ---


Find in admin\home.php:
--- Code: ---FROM ".USERS_TABLE." u, ".SESSIONS_TABLE." s
--- End code ---
Replace with:
--- Code: ---FROM (".USERS_TABLE." u, ".SESSIONS_TABLE." s)
--- End code ---

Find in admin\usergroups.php:
--- Code: ---FROM ".GROUPS_TABLE." g, ".GROUP_MATCH_TABLE." gm
--- End code ---
Replace with:
--- Code: ---FROM (".GROUPS_TABLE." g, ".GROUP_MATCH_TABLE." gm)
--- End code ---

Find in includes\auth.php:
--- Code: ---FROM ".GROUP_ACCESS_TABLE." a, ".GROUP_MATCH_TABLE." m
--- End code ---
Replace with:
--- Code: ---FROM (".GROUP_ACCESS_TABLE." a, ".GROUP_MATCH_TABLE." m)
--- End code ---


Find in includes\functions.php (2 times):
--- Code: ---FROM ".IMAGES_TABLE." i,  ".CATEGORIES_TABLE." c
--- End code ---
Replace with:
--- Code: ---FROM (".IMAGES_TABLE." i,  ".CATEGORIES_TABLE." c)
--- End code ---

Find in includes\sessions.php:
--- Code: ---FROM ".USERS_TABLE." u, ".LIGHTBOXES_TABLE." l
--- End code ---
Replace with:
--- Code: ---FROM (".USERS_TABLE." u, ".LIGHTBOXES_TABLE." l)
--- End code ---

sanko86:
thanks admin.

nabeel:
very nice

wooody:
Hello,
i got 2 errors , any help.


An unexpected error occured. Please try again later.
Bad SQL Query: SELECT DISTINCT i.image_id, i.cat_id, i.user_id, i.image_name, i.image_description, i.image_keywords, i.image_date, i.image_active, i.image_media_file, i.image_thumb_file, i.image_download_url, i.image_allow_comments, i.image_comments, i.image_downloads, i.image_votes, i.image_rating, i.image_hits, c.cat_name, u.user_name
            FROM (4images_images i,  4images_categories c)
            LEFT JOIN 4images_users u ON (u.user_id = i.user_id)
            WHERE i.image_active = 1 AND i.cat_id NOT IN (0) AND c.cat_id = i.cat_id
            ORDER BY i.image_downloads DESC LIMIT 1
Incorrect key file for table '/tmp/#sql_5169_3.MYI'; try to repair it


An unexpected error occured. Please try again later.
Bad SQL Query: SELECT i.image_id, i.cat_id, i.user_id, i.image_name, i.image_description, i.image_keywords, i.image_date, i.image_active, i.image_media_file, i.image_thumb_file, i.image_download_url, i.image_allow_comments, i.image_comments, i.image_downloads, i.image_votes, i.image_rating, i.image_hits, c.cat_name, u.user_name
        FROM (4images_images i,  4images_categories c)
        LEFT JOIN 4images_users u ON (u.user_id = i.user_id)
        WHERE i.image_active = 1 AND c.cat_id = i.cat_id AND i.cat_id NOT IN (0)
        ORDER BY RAND()
         LIMIT 28
Incorrect key file for table '/tmp/#sql_5169_2.MYI'; try to repair it


Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/logopub/public_html/includes/db_mysql.php on line 116

Read more: http://www.logopub.net/#ixzz1bhJFSAgI

V@no:
Hello.
For this you'll need contact your server's administrator, something wrong with the server.

Navigation

[0] Message Index

[#] Next page

Go to full version