Twee onafhankelijke php variable aan 1 variable koppelen
("$id = $row["system_auto_id & od_id"];")
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
if (isset($_GET['zoek_artikel_id'])) {
$zoek_artikel_id = $_GET['zoek_artikel_id'];
$query =
"SELECT
system_auto_id,
od_id
FROM
systemen,
onderdelen
WHERE
system_auto_id OR
od_id = '$zoek_artikel_id'
LIMIT 1
";
$result = mysql_query($query)or die(mysql_error());
while ($row=mysql_fetch_array($result)) {
$id = $row["system_auto_id"];
}
}
$zoek_artikel_id = $_GET['zoek_artikel_id'];
$query =
"SELECT
system_auto_id,
od_id
FROM
systemen,
onderdelen
WHERE
system_auto_id OR
od_id = '$zoek_artikel_id'
LIMIT 1
";
$result = mysql_query($query)or die(mysql_error());
while ($row=mysql_fetch_array($result)) {
$id = $row["system_auto_id"];
}
}
system_auto_id = '$zoek_artikel_id' OR
od_id = '$zoek_artikel_id'
ik dacht omdat ik de OR gebruikte hij beide velde zou koppelen?
En hoe kan ik hierop $id = $row["system_auto_id"]; van regel 19 aapassen?
Het uitlezen doe je in twee variabelen, in twee elementen van een array, of kan je eventueel oplossen in SQL:
Code (php)
1
2
3
2
3
SELECT IF(system_auto_id = '$zoek_artikel_id', system_auto_id, od_id) AS found_id
FROM...
etc
FROM...
etc
Dit lees je dan dus uit via
Ik zou het zo overigens niet doen, omdat je dan kwijt bent welk id je nu gebruikt, maar dat is aan jou.
Het is wel belangrijk om te weten uit welke tabel de waardes nu precies gehaald heeft,
omdat de 'id' ook doorgestuurd moet worden naar een ander script.
od_id moet een andere lijst weergeven dan system_auto_id.
Is hiervoor ook een andere manier bekend?
Toevoeging op 15/05/2013 14:53:15:
Ik heb lopen denken, het maakt niet uit welke id ik gebruik.
Maar deze waardes moeten wel naar een ander script gestuurd worden.
Waarbij de waardes t/m 10000 naar ''od_id''
en daarboven naar ''system_auto_id''
Het probleem is nog het doorsturen naar een andere php script.
Toevoeging op 15/05/2013 15:11:14:
De waarden 'id' wordt wel doorgestuurd (getest met een echo )
maar als ik een if statement gebruik dan schrijnt het niet te werken:
if (strval($_GET['id']) <= 4999) {
Maar als ik vervolgens nog een if statement maak(zie hieronder) dan werkt deze niet, dus alleen onder de 4999
>= groter of gelijk
dat is precies wat ik gebruik heb (zie de 2 regels van mijn vorige 2 posts).
Wat bedoel je dan want ik begrijp je blijkbaar niet?
Ik denk dat de fout in de onderstaande code zit:
want als ik er 1tje helemaal uithaal werkt het wel, maar hij lijkt nu alleen tabellen van 'onderdelen' terug te geven.
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
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
<?
include("inc/db.php");
if (isset($_GET['zoek_artikel_id'])) {
$zoek_artikel_id = $_GET['zoek_artikel_id'];
$query =
"SELECT IF(system_auto_id = '$zoek_artikel_id', system_auto_id, od_id) AS found_id
FROM
systemen,
onderdelen
WHERE
system_auto_id = '$zoek_artikel_id'
OR
od_id = '$zoek_artikel_id'
LIMIT 1
";
$result = mysql_query($query)or die(mysql_error());
while ($row=mysql_fetch_array($result)) {
$id = $row["found_id"];
//$od_id = $row["od_id"];
}
}
?>
include("inc/db.php");
if (isset($_GET['zoek_artikel_id'])) {
$zoek_artikel_id = $_GET['zoek_artikel_id'];
$query =
"SELECT IF(system_auto_id = '$zoek_artikel_id', system_auto_id, od_id) AS found_id
FROM
systemen,
onderdelen
WHERE
system_auto_id = '$zoek_artikel_id'
OR
od_id = '$zoek_artikel_id'
LIMIT 1
";
$result = mysql_query($query)or die(mysql_error());
while ($row=mysql_fetch_array($result)) {
$id = $row["found_id"];
//$od_id = $row["od_id"];
}
}
?>
od_id selecteer je nu niet meer in je query, dus die kan je ook niet uitlezen. De regel $od_id = $row["od_id"]; zal dus een foutmelding opleveren.
Maar de query van Patrick is een cross join.
Dat weet ik Ger, maar hij probeer od_id uit te lezen na het uitvoeren van de query en dat kan dan niet meer....
Sorry, dan heb ik niks gezegd ...
Heeft iemand anders nog een idee?