1054 - Unknown column 'fg.products_id' in 'on clause'
1054 - Unknown column 'fg.products_id' in 'on clause'
SELECT fg.*, p.products_id, pd.products_name FROM free_gifts fg, products p LEFT JOIN products_description pd ON (pd.products_id=fg.products_id) WHERE pd.language_id = '4' AND p.products_id = fg.products_id ORDER BY fg.threshold ASC
Heeft dit met een php betandje te maken of zit de fout in msql 5?
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
$gift_query = tep_db_query("SELECT fg.*, p.products_id, pd.products_name FROM " . TABLE_CARROT . " fg, products p
LEFT JOIN products_description pd ON (pd.products_id=fg.products_id)
WHERE pd.language_id = '".$languages_id."'
AND p.products_id = fg.products_id
ORDER BY fg.threshold ASC");
$gift_query = tep_db_query("SELECT fg.*, p.products_id, pd.products_name FROM " . TABLE_CARROT . " fg, products p
LEFT JOIN products_description pd ON (pd.products_id=fg.products_id)
WHERE pd.language_id = '".$languages_id."'
AND p.products_id = fg.products_id
ORDER BY fg.threshold ASC");
kan geloof ik niet in mysql..
maak hiervan:
SELECT fg.products_id, fg.threshold
Hmm heb het geprobeerd, maar werkt niet
misschien een dubbele is, ik neem aan dat je ze vergelijkt daar?
en niet toekent:P
Gewijzigd op 01/01/1970 01:00:00 door Marvin S
kreeg wel een tip? wat ik niet begrijp.. misschien zegt jou het wat en waar moet ik dat zoeken:
het probleem zit hier p.products_id = fg.products_id di ,zit in de where....and clausule, deze moet een join worden
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
$query = "
SELECT
fg.*,
p.products_id,
pd.products_name
FROM
" . TABLE_CARROT . " fg,
products p
LEFT JOIN products_description pd ON fg.products_id = pd.products_id
WHERE
pd.language_id = '".$languages_id."'
AND
p.products_id = fg.products_id
ORDER BY
fg.threshold ASC
";
$gift_query = tep_db_query($query);
?>
$query = "
SELECT
fg.*,
p.products_id,
pd.products_name
FROM
" . TABLE_CARROT . " fg,
products p
LEFT JOIN products_description pd ON fg.products_id = pd.products_id
WHERE
pd.language_id = '".$languages_id."'
AND
p.products_id = fg.products_id
ORDER BY
fg.threshold ASC
";
$gift_query = tep_db_query($query);
?>
Verder lijkt mij $gift_query geen query maar een result-set. $result of iets wat daar op lijkt, ligt dan ook meer voor de hand.
De join lijkt mij niet goed, je left een JOIN tussen 'products' en 'products_description' maar je noemt de tabel 'fg'. Dat gaat niet goed.
Edit: Probeer deze eens:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
SELECT
fg.*,
p.products_id,
pd.products_name
FROM
" . TABLE_CARROT . " fg
LEFT JOIN products_description pd ON fg.products_id = pd.products_id,
products p
WHERE
pd.language_id = '".$languages_id."'
AND
p.products_id = fg.products_id
ORDER BY
fg.threshold ASC
fg.*,
p.products_id,
pd.products_name
FROM
" . TABLE_CARROT . " fg
LEFT JOIN products_description pd ON fg.products_id = pd.products_id,
products p
WHERE
pd.language_id = '".$languages_id."'
AND
p.products_id = fg.products_id
ORDER BY
fg.threshold ASC
Gewijzigd op 01/01/1970 01:00:00 door Frank -
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\Program Files\xampp\htdocs\onlineshopping\winkelsystem\includes\functions\database.php on line 99 (daar staat: return mysql_fetch_array($db_query, MYSQL_ASSOC);)
heeft dit niets te maken met het stukje wat onder het script staat?(zo is het 1 geheel.
while ($gift = tep_db_fetch_array($gift_query)) {
echo '<form action="gift_add.php" method="GET"><tr>
<td class="smallText">$<input type="text" size="4" name="threshold" value="'.$gift['threshold'].'"></td>
<td class="smallText">'.$gift['products_id'].'</td>
<td class="smallText">'.$gift['products_name'].'</td>
<td><a href="gift_add.php?ID=' . $gift['products_id'] . '&action=delete">' . tep_image_button('button_delete.gif', 'Delete') . '</a> <a href="categories.php?pID=' . $gift['products_id'] . '&action=new_product">' . tep_image_button('button_edit.gif', 'Edit') . '</a></td>
</tr></form>';
}
ps krijg nu wel wat script functies te zien, maar ze werken nog niet
Gewijzigd op 01/01/1970 01:00:00 door flashfocus
dus doe eens een mysql_error();
Bloos bloos, hoe doe je dat ( ben echt een newbie )
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?
if($gift_query){ // query gelukt
// doe iets
}
else { // query mislukt
echo mysql_error();
}
?>
if($gift_query){ // query gelukt
// doe iets
}
else { // query mislukt
echo mysql_error();
}
?>
Foutafhandeling mag nooit ontbreken.
foutmelding blijft het zelfde?
flashfocus schreef op 29.03.2007 20:11:
Ligt eraan wat je fout doet. Met deze check kun je nooit een fout krijgen op bv. mysql_fetch_assoc(), maar uitsluitend op het uitvoeren van de query. Dat is namelijk fout gegaan.foutmelding blijft het zelfde?
moet ik dit in php uitvoeren. (waar invoer staat vul ik nat mijn gegevens in)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
//verbinding maken met je database
$link = mysql_connect('localhost','invoer','invoer');
mysql_select_db('invoer') or die ('Error connecting to database // Fout bij het verbinden met de database');
//dit is dus de query
$query = "
SELECT
fg.*,
p.products_id,
pd.products_name
FROM
fg,
products p
LEFT JOIN products_description pd ON fg.products_id = pd.products_id
WHERE
pd.language_id = '".$languages_id."'
AND
p.products_id = fg.products_id
ORDER BY
fg.threshold ASC";
$result = mysql_query($query) or die('Fout bij het ophalen van de gegevens uit de database... (' . mysql_error().' )');
$resultaten = mysql_num_rows($result);
if(!$resultaten == 0 OR !$resultaten > 1){
while($table = mysql_fetch_array($result)){
}
}
echo 'Laatste post ...:';
?>
//verbinding maken met je database
$link = mysql_connect('localhost','invoer','invoer');
mysql_select_db('invoer') or die ('Error connecting to database // Fout bij het verbinden met de database');
//dit is dus de query
$query = "
SELECT
fg.*,
p.products_id,
pd.products_name
FROM
fg,
products p
LEFT JOIN products_description pd ON fg.products_id = pd.products_id
WHERE
pd.language_id = '".$languages_id."'
AND
p.products_id = fg.products_id
ORDER BY
fg.threshold ASC";
$result = mysql_query($query) or die('Fout bij het ophalen van de gegevens uit de database... (' . mysql_error().' )');
$resultaten = mysql_num_rows($result);
if(!$resultaten == 0 OR !$resultaten > 1){
while($table = mysql_fetch_array($result)){
}
}
echo 'Laatste post ...:';
?>
Of mis ik nog wat?
bumpen na 24uur
hetzelfde als
?
toevoeging:
ik zag dat bij frank de
'.$languages_id.'
erin geslopen was.. staat deze ook gedefinieerd in jou script?
'.$languages_id.'
erin geslopen was.. staat deze ook gedefinieerd in jou script?
toevoeging2:
je schreef dit stukje code:
Gebruik je nu 2 codes door elkaar? als je dit stukje gebruikt in combinatie met die ander werkt het niet omdat je in je laatste post dit zet:
$table = mysql_fetch_array($query);
en je probeerd ze terug te roepen met
$gift['naam']
dat moet dan natuurlijk worden:
$table['naam']
Gebruik je nu 2 codes door elkaar? als je dit stukje gebruikt in combinatie met die ander werkt het niet omdat je in je laatste post dit zet:
$table = mysql_fetch_array($query);
en je probeerd ze terug te roepen met
$gift['naam']
dat moet dan natuurlijk worden:
$table['naam']
Gewijzigd op 01/01/1970 01:00:00 door Marvin S
Dit is het stukje scrip in zijn geheel.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
$gift_query = tep_db_query("SELECT fg.*, p.products_id, pd.products_name FROM " . TABLE_CARROT . " fg, products p
LEFT JOIN products_description pd ON (pd.products_id=fg.products_id)
WHERE pd.language_id = '".$languages_id."'
AND p.products_id = fg.products_id
ORDER BY fg.threshold ASC");
while ($gift = tep_db_fetch_array($gift_query)) {
echo '<form action="gift_add.php" method="GET"><tr>
<td class="smallText">$<input type="text" size="4" name="threshold" value="'.$gift['threshold'].'"></td>
<td class="smallText">'.$gift['products_id'].'</td>
<td class="smallText">'.$gift['products_name'].'</td>
<td><a href="gift_add.php?ID=' . $gift['products_id'] . '&action=delete">' . tep_image_button('button_delete.gif', 'Delete') . '</a> <a href="categories.php?pID=' . $gift['products_id'] . '&action=new_product">' . tep_image_button('button_edit.gif', 'Edit') . '</a></td>
</tr></form>';
}
?>
$gift_query = tep_db_query("SELECT fg.*, p.products_id, pd.products_name FROM " . TABLE_CARROT . " fg, products p
LEFT JOIN products_description pd ON (pd.products_id=fg.products_id)
WHERE pd.language_id = '".$languages_id."'
AND p.products_id = fg.products_id
ORDER BY fg.threshold ASC");
while ($gift = tep_db_fetch_array($gift_query)) {
echo '<form action="gift_add.php" method="GET"><tr>
<td class="smallText">$<input type="text" size="4" name="threshold" value="'.$gift['threshold'].'"></td>
<td class="smallText">'.$gift['products_id'].'</td>
<td class="smallText">'.$gift['products_name'].'</td>
<td><a href="gift_add.php?ID=' . $gift['products_id'] . '&action=delete">' . tep_image_button('button_delete.gif', 'Delete') . '</a> <a href="categories.php?pID=' . $gift['products_id'] . '&action=new_product">' . tep_image_button('button_edit.gif', 'Edit') . '</a></td>
</tr></form>';
}
?>
Met dit stukje script krijg ik fout code:
1054 - Unknown column 'fg.products_id' in 'on clause'
SELECT fg.*, p.products_id, pd.products_name FROM free_gifts fg, products p LEFT JOIN products_description pd ON (pd.products_id=fg.products_id) WHERE pd.language_id = '4' AND p.products_id = fg.products_id ORDER BY fg.threshold ASC
Dit is het sql bestandje:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
CREATE TABLE `free_gifts` (
`gift_id` tinyint(4) NOT NULL auto_increment,
`threshold` mediumint(9) NOT NULL default '0',
`products_id` mediumint(9) NOT NULL default '0',
PRIMARY KEY (`gift_id`)
) TYPE=MyISAM;
insert into configuration (configuration_id, configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, last_modified, date_added, use_function, set_function) values (1200, 'Gifts Image Width', 'GIFTS_IMAGE_WIDTH', '90', 'The pixel width of heading images', '4', '25', now(), now(), NULL, NULL);
insert into configuration (configuration_id, configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, last_modified, date_added, use_function, set_function) values (1201, 'Gifts Image Height', 'GIFTS_IMAGE_HEIGHT', '100', 'The pixel height of heading images', '4', '26', now(), now(), NULL, NULL);
UPDATE configuration_group SET sort_order=last_insert_id() WHERE configuration_group_id=last_insert_id();
ALTER TABLE `products` ADD `products_carrot` tinyint(1) default '0' AFTER `products_status` ;
`gift_id` tinyint(4) NOT NULL auto_increment,
`threshold` mediumint(9) NOT NULL default '0',
`products_id` mediumint(9) NOT NULL default '0',
PRIMARY KEY (`gift_id`)
) TYPE=MyISAM;
insert into configuration (configuration_id, configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, last_modified, date_added, use_function, set_function) values (1200, 'Gifts Image Width', 'GIFTS_IMAGE_WIDTH', '90', 'The pixel width of heading images', '4', '25', now(), now(), NULL, NULL);
insert into configuration (configuration_id, configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, last_modified, date_added, use_function, set_function) values (1201, 'Gifts Image Height', 'GIFTS_IMAGE_HEIGHT', '100', 'The pixel height of heading images', '4', '26', now(), now(), NULL, NULL);
UPDATE configuration_group SET sort_order=last_insert_id() WHERE configuration_group_id=last_insert_id();
ALTER TABLE `products` ADD `products_carrot` tinyint(1) default '0' AFTER `products_status` ;
Waar zit precies de fout. Ik ben een nieuweling qua php. Ik begrijp nog niet veel. Enkeld dat of de script fout is.. of iets in de database.
Totaal script zorgt ervoor dat klanten bij besteding van bijvoorbeeld 50 euro automatisch een cadeau krijgen in hun winkelwagen.
Dit stukje script bevind zich bij mij in de admin gedeelte en dient om de instellingen weer te geven, nieuwe cadeau toevoegen en in te stellen.
SELECT fg.*, p.products_id, pd.products_name FROM " . TABLE_CARROT . " AS fg, products AS p
dus met AS ertussen. Mocht dat ook niet werken, probeer dan maar eens de volledige tabelnaam. Ik zie overigens nog steeds geen errorchecking in je script. Dit is toch wel het minste:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
$gift_query = "
SELECT fg.*, p.products_id, pd.products_name FROM " . TABLE_CARROT . " AS fg, products AS p
LEFT JOIN products_description pd ON (pd.products_id=fg.products_id)
WHERE pd.language_id = '".$languages_id."'
AND p.products_id = fg.products_id
ORDER BY fg.threshold ASC";
if (!$res = mysql_query ($sql)) {
echo '<p>' . mysql_errno () . ': ' . mysql_error () . '</p>';
echo '<pre>' . htmlentitie (str_replace ("\t", '', $sql)) . '</pre>';
}
?>
$gift_query = "
SELECT fg.*, p.products_id, pd.products_name FROM " . TABLE_CARROT . " AS fg, products AS p
LEFT JOIN products_description pd ON (pd.products_id=fg.products_id)
WHERE pd.language_id = '".$languages_id."'
AND p.products_id = fg.products_id
ORDER BY fg.threshold ASC";
if (!$res = mysql_query ($sql)) {
echo '<p>' . mysql_errno () . ': ' . mysql_error () . '</p>';
echo '<pre>' . htmlentitie (str_replace ("\t", '', $sql)) . '</pre>';
}
?>
Heb even gebrobeerd wat je zei. AS helpt ook niet.
Heb echter wel jou stukje script erin geplakt error check:
Ik kreeg nu deze melding:
1065: Query was empty
Fatal error: Call to undefined function htmlentitie() in C:\Program Files\xampp\htdocs\onlineshopping\winkelsystem\gift_add.php on line 94
$gift_query =
mysql_query ($sql)
Ik mag hopen dat je de fout zelf ziet...