Twee onafhankelijke php variable aan 1 variable koppelen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Patrick cos

patrick cos

15/05/2013 11:54:24
Quote Anchor link
Is het mogelijk om system_auto_id & od_id de variable ID te geven?
("$id = $row["system_auto_id & od_id"];")

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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"];
        }
    }    
 
PHP hulp

PHP hulp

23/12/2024 02:56:06
 
Erwin H

Erwin H

15/05/2013 11:58:37
Quote Anchor link
WHERE
system_auto_id = '$zoek_artikel_id' OR
od_id = '$zoek_artikel_id'
 
Patrick cos

patrick cos

15/05/2013 12:02:27
Quote Anchor link
Moet je ze appart de variable $zoek_artikel_id meegeven?
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?
 
Erwin H

Erwin H

15/05/2013 12:19:41
Quote Anchor link
Ja je moet elk apart doen. OR is niet 'dit of dat gelijk aan iets', maar 'dit gelijk aan iets of dat gelijk aan iets'.

Het uitlezen doe je in twee variabelen, in twee elementen van een array, of kan je eventueel oplossen in SQL:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
SELECT IF(system_auto_id = '$zoek_artikel_id', system_auto_id, od_id) AS found_id
FROM...
etc

Dit lees je dan dus uit via
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$id
= $row["found_id"];
?>

Ik zou het zo overigens niet doen, omdat je dan kwijt bent welk id je nu gebruikt, maar dat is aan jou.
 
Patrick cos

patrick cos

15/05/2013 13:27:15
Quote Anchor link
Bedankt voor je hulp!

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
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
echo $_GET['id'];
)

maar als ik een if statement gebruik dan schrijnt het niet te werken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
if ($_GET['id'] <= 4999) {
 
- SanThe -

- SanThe -

15/05/2013 15:18:21
Quote Anchor link
if (strval($_GET['id']) <= 4999) {
 
Patrick cos

patrick cos

15/05/2013 15:49:35
Quote Anchor link
Bedankt,

Maar als ik vervolgens nog een if statement maak(zie hieronder) dan werkt deze niet, dus alleen onder de 4999

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
if (strval($_GET['id']) >= 4999) {
 
- SanThe -

- SanThe -

15/05/2013 15:51:45
Quote Anchor link
<= kleiner of gelijk
>= groter of gelijk
 
Patrick cos

patrick cos

15/05/2013 15:53:39
Quote Anchor link
dat is precies wat ik gebruik heb (zie de 2 regels van mijn vorige 2 posts).
 
- SanThe -

- SanThe -

15/05/2013 15:56:06
Quote Anchor link
Wat bedoel je dan want ik begrijp je blijkbaar niet?
 
Patrick cos

patrick cos

15/05/2013 17:24:57
Quote Anchor link
de if statement lijken denk ik toch goed te zijn.

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)
PHP script in nieuw venster Selecteer het PHP script
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
<?
    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"];
        }
    }
    

?>

 
Erwin H

Erwin H

15/05/2013 17:46:40
Quote Anchor link
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.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

15/05/2013 17:59:51
Quote Anchor link
Waarom Erwin? Het is helemaal niet nodig om kolommen, waarop wordt gefilterd met where, in de select list te hebben staan.

Maar de query van Patrick is een cross join.
 
Erwin H

Erwin H

15/05/2013 18:07:18
Quote Anchor link
Dat weet ik Ger, maar hij probeer od_id uit te lezen na het uitvoeren van de query en dat kan dan niet meer....
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

15/05/2013 18:30:41
Quote Anchor link
Sorry, dan heb ik niks gezegd ...
 
Patrick cos

patrick cos

22/05/2013 09:26:23
Quote Anchor link
Heeft iemand anders nog een idee?
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.