2 variabelen in while lus

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Sven

Sven

14/08/2007 14:32:00
Quote Anchor link
Is het mogelijk om bijv het volgende te doen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
while($arr1 = mysql_fetch_array($res1) AND $arr2 = mysql_fetch_array($res2)) {

}

?>


Ik wil namelijk 2 waarden uit 2 tabellen halen en die met elkaar vergelijken, maar het lukt me niet...
 
PHP hulp

PHP hulp

20/04/2024 12:31:44
 
Frank -

Frank -

14/08/2007 14:44:00
Quote Anchor link
Waarom vergelijk je niet in de query?

Ik neem aan dat er een verband zit tussen de data, anders valt er toch al niets te vergelijken...
 
Sven

Sven

14/08/2007 14:49:00
Quote Anchor link
Heb je een voorbeeldje..?
 
Frank -

Frank -

14/08/2007 14:52:00
Quote Anchor link
Sven schreef op 14.08.2007 14:49:
Heb je een voorbeeldje..?

Een voorbeeld waarvan? Van een vergelijking? Zie de handleiding van jouw database of duik even in de SQL-boeken.
 
Sven

Sven

14/08/2007 14:56:00
Quote Anchor link
Een voorbeeldje van hoe ik zou kunnen vergelijken...
En ik heb nu even geen sql-boeken bij de hand, en het internet is op dit gebied zo een oerwoud dat je door de bomen het bos niet meer kunt zien...
 
Frank -

Frank -

14/08/2007 15:00:00
Quote Anchor link
Wanneer je dat oerwoud even beperkt tot de tutorials op phphulp, dan ben zo klaar: link

Ps. Ik kan niet raden waar jij mee bezig bent en wat een passend voorbeeld zou kunnen zijn. Ik neem aan dat je met de WHERE in SQL kunt omgaan...
 
Sven

Sven

14/08/2007 15:53:00
Quote Anchor link
ik heb de tut gelezen, ben er wat mee aan de gang gegaan, maar het wil me maar niet lukken.

Ik snap het laatste gedeelte van de JOIN, de ON niet...


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
<?php
$res
= mysql_query("
    SELECT
        kw_comb_table.id AS comb_id,
        kw_comb_table.kw1 AS comb_kw,
        kw_comb_table.alias AS comb_alias,
        kw_table.id AS kw_id,
        kw_table.kw AS kw_kw,
        kw_table.alias AS kw_alias
    FROM
        kw_comb_table, kw_table
    JOIN
        kw_table
    ON
        comb_kw = kw_kw
    WHERE
        comb_alias = kw_alias
        "
);
?>


dit is niet goed, iemand een idee hoe het wel moet?
Gewijzigd op 01/01/1970 01:00:00 door Sven
 
Frank -

Frank -

14/08/2007 16:03:00
Quote Anchor link
Zet nooit een query in de functie die de query uitvoert! Is niet te debuggen.

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
<?
$query
= "
SELECT
        kw_comb_table.id AS comb_id,
        kw_comb_table.kw1 AS comb_kw,
        kw_comb_table.alias AS comb_alias,
        kw_table.id AS kw_id,
        kw_table.kw AS kw_kw,
        kw_table.alias AS kw_alias
FROM
        kw_comb_table
          JOIN kw_table ON kw_comb_table.comb_kw = kw_table.kw_kw
"
;
?>

1) Wat een onmogelijke tabel- en kolomnamen heb je verzonnen! Geen touw aan vast te knopen. Een tabelnaam geef je NOOIT de naam table o.i.d., het lijkt mij logisch dat een tabel een tabel is. Verzin betere namen, dit is echt rampzalig.
2) Met de ON geef jij aan welke kolommen met elkaar zijn verbonden. Daar waar kw_comb_table.comb_kw dezelfde waarde bevat als kw_table.kw_kw, horen de gegevens bijelkaar. Daar heb je dus geen WHERE voor nodig.
3) Wellicht zijn er nog andere voorwaarden die niets met de koppeling tussen 2 tabellen hebben te maken, die neem je op in de WHERE-clausule.
Gewijzigd op 01/01/1970 01:00:00 door Frank -
 
Sven

Sven

14/08/2007 16:08:00
Quote Anchor link
...

Bedankt voor de reactie.

1) De tabelnamen heb ik zo gemaakt, dat ik ze begrijp, maar dat iemand anders er geen touw aan vast kan knopen.. ;)
Anders gaat mn idee naar de haaien.
2) Bedankt, wilde ik weten
3) Daar ga ik nu over nadenken
Gewijzigd op 01/01/1970 01:00:00 door Sven
 
Frank -

Frank -

14/08/2007 16:11:00
Quote Anchor link
Quote:
De tabelnamen heb ik zo gemaakt, dat ik ze begrijp
Ik hoop voor jou dat dit over een aantal maanden nog steeds zo is...

Ga geen geheimtaal in je code gebruiken, dat kost je extra tijd en bugs. Hopelijk was dit slechts een voorbeeldje om op het forum te plaatsen.
 
Sven

Sven

14/08/2007 16:15:00
Quote Anchor link
Nog een vraagje, kan dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
JOIN kw_table ON kw_comb_table.comb_kw = kw_table.kw_kw, kw_comb_table.comb_alias = kw_table.kw_alias
 
- wes  -

- wes -

14/08/2007 16:18:00
Quote Anchor link
probeer het es luie donder
 
Frank -

Frank -

14/08/2007 16:21:00
Quote Anchor link
Tuurlijk kan dat, maar ik krijg nu wel hele grote bedenkingen over jouw database en de opzet daarvan. Dit soort constructies zijn zelden of nooit nodig en gezien jouw kennis van SQL lijkt het mij niet dat jij dit nodig hebt.

Ps. Hoe heb jij de foreignkey's ingesteld?
 
Sven

Sven

14/08/2007 16:26:00
Quote Anchor link
Dit:

$res = mysql_query("
SELECT
kw_comb_table.id AS comb_id,
kw_comb_table.kw1 AS comb_kw,
kw_comb_table.alias AS comb_alias,
kw_table.id AS kw_id,
kw_table.kw AS kw_kw,
kw_table.alias AS kw_alias
FROM
kw_comb_table
JOIN
kw_table
ON
kw_comb_table.comb_kw = kw_table.kw_kw,
kw_comb_table.comb_alias = kw_table.kw_alias
");

$numRows = mysql_num_rows($res);

resulteert in dit:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in **** on line 60

P.S. foreignkeys?
Gewijzigd op 01/01/1970 01:00:00 door Sven
 
Frank -

Frank -

14/08/2007 16:29:00
Quote Anchor link
En waar controleer jij of de query wel is gelukt?

Maar heb je al eens bedacht waarom je deze constructie nodig hebt? Leg eens uit waar je mee bezig bent, met bovenstaande query kan ik me echt niks voorstellen. Het geven van hulp wordt er dus niet eenvoudiger op...

Ps. Je moet in de ON wel aliassen gaan gebruiken, anders gaat fout bij dubbel gebruik van een tabelnaam. Dat zal hier ook het geval zijn.
 
Sven

Sven

14/08/2007 16:35:00
Quote Anchor link
dit is gewoon een stukje uit de code...

maar ik zal even uitleggen

ik haal gegevens van een site, die zet ik in een string in een tabel, daarna split ik de string en zet deze in ee nvolgende tabel, met combinaties van de gegevens (ik haal 1,2 en 3 op, en in de database krijg ik dus dit: 1|1, 1|2, 1|3, 2|1, 2|2, 2|3, enz.. (| is scheiding tusse n2 kolommen))
daarna wil ik dubbele combinaties er uit filteren, wat me al is gelukt, en nu wil ik dus kijken of er een paar van die combinaties al bestaan in de volgende tabel, wat me dus niet echt lukt...

Snap je het? :P
Gewijzigd op 01/01/1970 01:00:00 door Sven
 
- wes  -

- wes -

14/08/2007 16:38:00
Quote Anchor link
- lama -
Gewijzigd op 01/01/1970 01:00:00 door - wes -
 
Sven

Sven

14/08/2007 16:39:00
Quote Anchor link
hoezo, ik heb toch niet alles in 1 tabelleke staan?
kan ik het nog verder splitten dan voor elk deel 1 tabel dan?
dan wordt het pas ingewikkeld...
Gewijzigd op 01/01/1970 01:00:00 door Sven
 
Sven

Sven

14/08/2007 16:44:00
Quote Anchor link
Maar.. ik weet nog steeds niet hoe ik het moet oplossen en ik zou het graag voor 5 uur af hebben.. :)
 
Frank -

Frank -

14/08/2007 16:44:00
Quote Anchor link
Even terugkomen op jouw ps-je: foreignkeys?

Wanneer je niet weet wat fk's zijn, dan kun je beter eens in de boeken gaan duiken om die kennis alsnog op te doen. Dit is namelijk precies waar je nu mee bezig bent en waar je blijkbaar geen touw aan vast kunt knopen.

Het datamodel is mij trouwens nog steeds niet 100% duidelijk, 'een volgende tabel' klinkt mij wat vaag in de oren, dit bestaat niet in een goede opzet. Het is altijd heel specifiek in bv. tabel A en tabel B komen de gegevens X, Y en Z te staan. 'een volgende tabel' is niet specifiek en voor mij onduidelijk.

Ik ben bang dat ik je niet verder kan helpen.
 
Sven

Sven

14/08/2007 16:54:00
Quote Anchor link
En als ik nou 2 queries pak ipv joinen?
Het gaat maar om het controleren...

Dus SELECT * FROM kw_comb_table, en SELECT * FROM kw_table, en die daarna met elkaar vergelijk?
 



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.