Avatar billede scifo Nybegynder
16. februar 2007 - 04:51 Der er 7 kommentarer og
1 løsning

Gennemse 2 select sætninger for match

Hej Alle.

Jeg har meget kort flg. kode:

$hent = mysql_query("SELECT id, navn FROM ordre WHERE id = '$fra_form'") or die(mysql_error());

while($rows = mysql_fetch_array($hent)) {
echo ''.$row["navn"].'';

$hent2 = mysql_query("SELECT id, navn FROM person WHERE id = '1'") or die(mysql_error());

while($rows = mysql_fetch_array($hent2)) {

MIT PROBLEM:
if('.$hent1["navn"].' == '.$hent["navn"].'){
echo 'Der er en match';
} else {
echo 'Der var ikke nogen match';
}}}

I skal ikke tage jer af den måde det er sat op på, det der er mit problem er at jeg har 2 mysql_fetch_array's kørende inde i hinanden og skal checke om der kommer et match mellem 2 a array'sne. but how?

Med Venlig Hilsen
Scifo
Avatar billede scifo Nybegynder
16. februar 2007 - 05:33 #1
if('.$hent1["navn"].' == '.$hent["navn"].'){

der skulle self. have stået:
if('.$hent2["navn"].' == '.$hent["navn"].'){
Avatar billede fixxxer Nybegynder
16. februar 2007 - 08:21 #2
$hent = mysql_query("SELECT id, navn FROM ordre WHERE id = '$fra_form'") or die(mysql_error());

while($rows = mysql_fetch_array($hent)) {
echo ''.$rows["navn"].'';

$hent2 = mysql_query("SELECT id, navn FROM person WHERE id = '1'") or die(mysql_error());

while($rows2 = mysql_fetch_array($hent2)) {
  echo $rows2['navn'];
}
}


Du læser ikke data fra resultatet, men læser resultatet med mysql_fetch_array() og læser data herfra - så grundlæggende er der noget du har misforstået, eller har du bare stirret dig blind, hvilket jo kan ske for enhver :)
Avatar billede scifo Nybegynder
19. februar 2007 - 09:02 #3
Hej fixxxer.
Tror ikke du er med på hvor mit problem ligger, er helt med på hvordan min select og mysql_fetch_array sætninger skal skrives (Ved godt det ikke er helt korrekt i toppen, men det var bare for at illustrere)

Prøver at forklare på en anden måde:
Jeg har 2 tabeller, og begge har et feldt der hedder navn.
Jeg henter først et Item fra tabel 1.
Jeg laver efterfølgende en <SELECT> box , der hiver en liste over tabel 2:

<SELECT>
while($rows2 = mysql_fetch_array($hent2)) {
echo "<OPTION>'.$rows2["navn"].'</OPTION>"
}
</SELECT>

Hvis der kommer et match (Tabel1.navn = Tabel2.navn)
skal denne være selected.

Håber dette er bedre forklaret. :-)
Avatar billede fixxxer Nybegynder
19. februar 2007 - 09:23 #4
Nu kan jeg ikke gennemskue hvad du helt præcist ønsker at opnå, men hvis du skal markere en bestemt option i en select, bruger du "selected"-attributten på option-elementet:

while ($rows = ...) {
<SELECT>
while($rows2 = mysql_fetch_array($hent2)) {
$sel = ($rows['navn'] == $rows2['navn']) ? 'selected' : '';
echo '<OPTION '.$sel.'>'.$rows2["navn"].'</OPTION>';
}
</SELECT>
}
Avatar billede scifo Nybegynder
19. februar 2007 - 09:37 #5
Det er netop det der er problemet:
Tabel 1
|id | Navn |
------------
| 1 | Lars |
------------
| 2 | Kim  |
------------

Tabel 2:
------------
| id | navn |
------------
|  1 | nick |
------------
|  2 | Lars |
------------

while sætningen laver et gennemløb af tabel to og skriver
<select>
<option>nick</option>
<option>lars</option>
</select>

Og da lars fremgår i begge tabeller, skal lars være selected, sorry er ikke så god til at forklare det.
Avatar billede fixxxer Nybegynder
19. februar 2007 - 12:52 #6
Prøv med et link..
Avatar billede scifo Nybegynder
19. februar 2007 - 14:41 #7
Har ikke noget sted at ligge den ud, den er kun på min egen pc :-(
Avatar billede scifo Nybegynder
21. marts 2007 - 18:02 #8
lukker da der ikke er kommet andet svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester