Discussion:
Ambiguous?
Karl-Arne Gjersøyen
2013-08-09 12:00:26 UTC
Permalink
1) query
foreach($varenr_inn_pa_lager as $vnr){
include('../../tilkobling.php');
$sql = "SELECT * FROM exan,dynamit WHERE varenr = '$vnr' LIMIT
1";
$resultat = mysql_query($sql, $tilkobling) or
die(mysql_error());

2) Result:
Column 'varenr' in where clause is ambiguous

3) Tables in MySQL database

mysql> SELECT * FROM exan;
+------------+-------------+-------+----------+----------+-------------+
| leverandor | valgt_lager | un_nr | varenavn | varenr | kg_pa_lager |
+------------+-------------+-------+----------+----------+-------------+

mysql> SELECT * FROM dynamit;
+------------+-------------+---------------+--------+-------+---------------------+------------+-------------+
| leverandor | valgt_lager | type | dim_mm | un_nr |
varenavn | varenr | kg_pa_lager |
+------------+-------------+---------------+--------+-------+---------------------+------------+-------------+

4) My question:
What means with "ambiguous" here?

Thanks.
Karl
Stuart Dallas
2013-08-09 12:02:33 UTC
Permalink
Post by Karl-Arne Gjersøyen
1) query
foreach($varenr_inn_pa_lager as $vnr){
include('../../tilkobling.php');
$sql = "SELECT * FROM exan,dynamit WHERE varenr = '$vnr' LIMIT
1";
$resultat = mysql_query($sql, $tilkobling) or
die(mysql_error());
Column 'varenr' in where clause is ambiguous
3) Tables in MySQL database
mysql> SELECT * FROM exan;
+------------+-------------+-------+----------+----------+-------------+
| leverandor | valgt_lager | un_nr | varenavn | varenr | kg_pa_lager |
+------------+-------------+-------+----------+----------+-------------+
mysql> SELECT * FROM dynamit;
+------------+-------------+---------------+--------+-------+---------------------+------------+-------------+
| leverandor | valgt_lager | type | dim_mm | un_nr |
varenavn | varenr | kg_pa_lager |
+------------+-------------+---------------+--------+-------+---------------------+------------+-------------+
What means with "ambiguous" here?
The field exists in both tables, so you need to specify which one you mean.

Please learn how to use Google, it knows the answer to almost everything!

-Stuart
--
Stuart Dallas
3ft9 Ltd
http://3ft9.com/
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
Floyd Resler
2013-08-09 12:48:35 UTC
Permalink
Post by Karl-Arne Gjersøyen
1) query
foreach($varenr_inn_pa_lager as $vnr){
include('../../tilkobling.php');
$sql = "SELECT * FROM exan,dynamit WHERE varenr = '$vnr' LIMIT
1";
$resultat = mysql_query($sql, $tilkobling) or
die(mysql_error());
Column 'varenr' in where clause is ambiguous
3) Tables in MySQL database
mysql> SELECT * FROM exan;
+------------+-------------+-------+----------+----------+-------------+
| leverandor | valgt_lager | un_nr | varenavn | varenr | kg_pa_lager |
+------------+-------------+-------+----------+----------+-------------+
mysql> SELECT * FROM dynamit;
+------------+-------------+---------------+--------+-------+---------------------+------------+-------------+
| leverandor | valgt_lager | type | dim_mm | un_nr |
varenavn | varenr | kg_pa_lager |
+------------+-------------+---------------+--------+-------+---------------------+------------+-------------+
What means with "ambiguous" here?
Thanks.
Karl
Your field "varenr" is in both tables you are joining. Therefore, MySQL doesn't know which table it should use the field from. So, you need to qualify it by putting the table name in front of the field. Such as:
SELECT * FROM exan,dynamit WHERE exan.varenr='$vnr' LIMIT 1

Take care,
Floyd
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
richard gray
2013-08-09 12:54:38 UTC
Permalink
Post by Karl-Arne Gjersøyen
1) query
foreach($varenr_inn_pa_lager as $vnr){
include('../../tilkobling.php');
$sql = "SELECT * FROM exan,dynamit WHERE varenr = '$vnr' LIMIT
1";
$resultat = mysql_query($sql, $tilkobling) or
die(mysql_error());
Column 'varenr' in where clause is ambiguous
3) Tables in MySQL database
mysql> SELECT * FROM exan;
+------------+-------------+-------+----------+----------+-------------+
| leverandor | valgt_lager | un_nr | varenavn | varenr | kg_pa_lager |
+------------+-------------+-------+----------+----------+-------------+
mysql> SELECT * FROM dynamit;
+------------+-------------+---------------+--------+-------+---------------------+------------+-------------+
| leverandor | valgt_lager | type | dim_mm | un_nr |
varenavn | varenr | kg_pa_lager |
+------------+-------------+---------------+--------+-------+---------------------+------------+-------------+
What means with "ambiguous" here?
Thanks.
Karl
a field named 'varenr' exists in both tables - your sql query needs to
specify from which table you are selecting the data.
Post by Karl-Arne Gjersøyen
foreach($varenr_inn_pa_lager as $vnr){
include('../../tilkobling.php');
$sql = "SELECT * FROM exan,dynamit WHERE varenr = '$vnr' LIMIT
do you really need to include the file 'tilkobling.php' repeatedly for
each iteration over $varenr_inn_pa_lager??

Rich
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
Loading...