Toon posts:

[php] bestaat select option in array?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik wil met een knop kijken of de geselecteerde optie van een select bestaat in een tabel van de database. Ik heb een selectbox, waarin een aantal vt's staan, deze komen uit de tabel vt uit een MySQL database.
Nu wil ik dat hij, als ik een optie selecteer en op de knop druk, aangeeft of hij ook in de tabel onderhoud staat.

Hieronder staat hoe ik het gedaan heb.
code:
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
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>

<?  include ("c:/stevesup/Connections/connection.php");
    $sql="SELECT * FROM vt";
    $resultaat = mysql_query($sql) or die (mysql_error());
    
    $sql2="SELECT vcknr FROM onderhoud";
    $resultaat2 = mysql_query($sql2) or die (mysql_error());
?>  
  <form name="frm_criteria" action="" method="post" onSubmit="">
  <table width="" border="0" align="center">
     <tr align="left" valign="top"> 
         <td width="56%" height="105"> 
         <select multiple size="10" name="auto" style="width: 175" >
         <? while ($row = mysql_fetch_array($resultaat, MYSQL_NUM)) {  ?>
            <option value="<? echo $row[1]; ?>"><? echo $row[1]; } ?> 
            </select></td>
            <td width="44%" align="center" valign="top"> 
             <input <? $i=0; while ($row2 = mysql_fetch_array($resultaat2, MYSQL_NUM)) 
             {?>onclick=" javascript:if(this.form.auto.options[this.form.auto.selectedIndex].text =='<? echo $row2[$i]; $i++;?>') 
            {this.form.check.innerText='wel'} 
            else {this.form.check.innerText='niet'} "<? } ?> type="button" value="check">
             <input name="check" type="text" value="" size="5" readonly>
               </td>
        </table></td>
    </tr>
</form>
</body>
</html>


Hij bekijkt nu echter alleen de eerste waarde uit $row2. Als de gelecteerde waarde bovenin de tabel onderhoud staat doet hij het, voor alle andere waarden uit $row2, (de overige rijen uit onderhoud) werkt hijh niet.

Wat doe ik fout? Of kan het helemaal niet op deze manier? Hoe dan wel??? 8)7

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 28-08 12:00

Janoz

Moderator Devschuur®

!litemod

Het lijkt me handig om ff wat tutorials over sql door te nemen. En dan vooral het hoofdstuk over het joinen van verschillende tabellen. Dat het hier misgaat komt omdat je alleen bij de eerste optie de hele resultset uitleest. Bij de tweede optie ben je al door je hele resultset heen.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Topicstarter
Hoe bedoel je dat? Ik ben al 3 dagen bezig, heb ongeveer alles al geprobeerd, kun je iets duidelijker zijn. Ik snap echt niet hoe het nu wel moet...

Heb ook al geprobeerd om $row2 om te zetten naar JavaScript, maar ook dat lukt me niet.

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

crispy chips:
Hoe bedoel je dat? Ik ben al 3 dagen bezig, heb ongeveer alles al geprobeerd, kun je iets duidelijker zijn. Ik snap echt niet hoe het nu wel moet...
Janoz:
[...] ff wat tutorials over sql door te nemen. [...] het hoofdstuk over het joinen van verschillende tabellen.
Ga dat even doen, en ga dus met JOINs aan de slag. Als je er daarmee niet uit komt, kom dan terug met duidelijke informatie over wat er met de JOINs misgaat, of wat je er niet aan snapt :)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Verwijderd

Topicstarter
Ken de begrippen join, inner en outer wel, weet ook wel hoe die werken, maar ik zie niet in hoe ik dat hierin moet gebruiken, zie de link tussen mijn probleem en een join, of heb ik een verkeerde join ingedachte.

Ik denk bij een join aan iets als:

SELECT veld1, veld2, veld3
FROM table1
INNER JOIN table2
ON table1.keyveld = table2.foreign_keyveld

  • Banpei
  • Registratie: Juli 2001
  • Laatst online: 28-08 10:35
Verwijderd schreef op 24 oktober 2002 @ 14:08:
Ken de begrippen join, inner en outer wel, weet ook wel hoe die werken, maar ik zie niet in hoe ik dat hierin moet gebruiken, zie de link tussen mijn probleem en een join, of heb ik een verkeerde join ingedachte.

Ik denk bij een join aan iets als:

SELECT veld1, veld2, veld3
FROM table1
INNER JOIN table2
ON table1.keyveld = table2.foreign_keyveld
IMHO heb je de goede join in gedachten, en bedenk er nu maar eens van wat het nut er van is. ;)

Verwijderd

Topicstarter
Ik heb nu alles uitkomsten van de joins die ik kon bedenken bekeken, zowel inner als left en right outerjoins, maar ik snap echt niet wat ik nou met deze waardes moet. Ik moet gewoon kijken of de waarde die ik selecteer zich in mijn $row2 (array met waarden van 2e sql-query) voorkomt.
$row (1e sql query) gebruik ik alleen om de select te vullen. Waarom moet ik een join doen???

Heb echt geen idee wat ik er mee aan moet hoor. Ik wil gewoon zien of de waarde die ik selecteer (eigenlijk een waarde uit de tabel vt (zie $sql)), voorkomt in de tabel onderhoud($sql2) Als dit het geval is wil ik dat hij "wel" in dat textfield zet. (later moet er een andere actie aangehangen worden, die ik al af heb, maar zo is het iets overzichtelijker)

Als ik mijn while-loop ipv achter de input-tag, ervoor zet, dan krijgik uiteraard meerdere knoppen, maar die werken dan wel. knop1 kijkt naar de eerste vt in $row2, knop 2 naar de tweede etc. Kan het niet gewoon door mijn while loop anders neer te zetten?? Zit daar niet de fout???
Pagina: 1