Avatar billede gf Nybegynder
08. marts 2005 - 20:46 Der er 11 kommentarer og
1 løsning

in_array problem

Hej

Jeg har et problem jeg ikke helt forstår.

Når jeg afvikler den første kodestump får jeg følgende fejl

Warning: in_array() [function.in-array]: Wrong datatype for second argument in line 49 som er in_array linien. I anden kodestump hvor jeg sætter værdien ind i en selectbox i stedet for at echo den er der ingen problemer.

<?php // herunder hentes nevnene ud paa de elever der ikke er på skolen således, at disse ikke listes i "elever på skolen
$sql1 = "SELECT navn FROM sygeelever WHERE dato = '$datorediger'";
$qh1 = mysql_query($sql1) or die( mysql_error());
while ($row1 = mysql_fetch_array($qh1)) {
$navn1[] = $row1[navn];
}
$sql2 = "SELECT navn FROM koekken WHERE dato = '$datorediger'";
$qh2 = mysql_query($sql2) or die( mysql_error());
while ($row2 = mysql_fetch_array($qh2)) {
$navn2[] = $row2[navn];
}
$sql3 = "SELECT navn FROM hjemme WHERE dato = '$datorediger'";
$qh3 = mysql_query( $sql3 ) or die( mysql_error());
while ($row = mysql_fetch_array($qh3)) {
$navn3[] = $row3[navn];
}
$sql4 = "SELECT navn FROM elevdata";
$qh4 = mysql_query( $sql4 ) or die( mysql_error());
while ($row4 = mysql_fetch_array($qh4)) {
$tjek = $row4[navn];
if (in_array($tjek, $navn1) OR in_array($tjek, $navn2) OR in_array($tjek, $navn3)) {
// elevnavnet fra elevdata er identisk med et navn på en elev der ikke er på skolen
} else {
echo "navn:"." "."$row4[navn]";
}
} ?>   

Sætter jeg derimod $row[navn] ind i en selectbox er der ingen fejl..

<select name="select" size="19" multiple id="elever" style="width:138px">
<?php // herunder hentes nevnene ud paa de elever der ikke er på skolen således, at disse ikke listes i "elever på skolen
$sql = "SELECT navn FROM sygeelever WHERE dato = '$datorediger'";
$qh = mysql_query( $sql ) or die( mysql_error() );
while ( $row = mysql_fetch_assoc( $qh ) ) {
$navn1[] = $row[navn];
}
$sql = "SELECT navn FROM koekken WHERE dato = '$datorediger'";
$qh = mysql_query( $sql ) or die( mysql_error() );
while ( $row = mysql_fetch_assoc( $qh ) ) {
$navn2[] = $row[navn];
}
$sql = "SELECT navn FROM hjemme WHERE dato = '$datorediger'";
$qh = mysql_query( $sql ) or die( mysql_error() );
while ( $row = mysql_fetch_assoc( $qh ) ) {
$navn3[] = $row[navn];
}
$sql = "SELECT navn FROM elevdata";
$qh = mysql_query( $sql ) or die( mysql_error() );
while ( $row = mysql_fetch_assoc( $qh ) ) {
$tjek = $row[navn];
                   
if (in_array($tjek, $navn1) or in_array($tjek, $navn2) or in_array($tjek, $navn3)) {
// elevnavnet fra elevdata er identisk med et navn på en elev der ikke er på skolen
} else {
?>
<option value="<?=$row[navn]?>"><?=$row[navn]?></option>
<? }
} ?>
</select>           

Nogen der har en forklaring?

mvh gf
Avatar billede bromer Nybegynder
08. marts 2005 - 20:48 #1
har du prøvet at lave en var_export på andet argument i funktionskaldet
Avatar billede erikjacobsen Ekspert
08. marts 2005 - 21:06 #2
Du skal altid  være sikker på det er et array, fx ved at oprette det som et sådant inden du putter noget i det. Så er det et array, selv når du ikke finder elementer:

$navn1 = Array();
Avatar billede gf Nybegynder
08. marts 2005 - 21:19 #3
Hej

Tak for jeres komentarer. jeg har prøvet erikjacobsens forslag dog uden succes. Det jeg ikke forstår er, at den sidste "kodestump" ikke giver fejlen den eneste forskel i forhold til den første stump er, at variablen sættes ind i en selectbox og i den første echo'es der?

Mvh gf
Avatar billede gf Nybegynder
08. marts 2005 - 21:43 #4
Hej igen

så virkede det, jeg vik lige placeret $navn1 = Array(); osv er lidt uheldigt sted i mit script.

1000 tak for hjælpen
svar udbedes.

Mvh gf
Avatar billede erikjacobsen Ekspert
08. marts 2005 - 22:01 #5
Ingen point til mig, tak. Jeg samler ikke på dem.
Avatar billede gf Nybegynder
08. marts 2005 - 22:26 #6
Hm, du har da efterhånden gjort dig fortjænt til flere flasker rødvin :)

Mvh gf
Avatar billede erikjacobsen Ekspert
08. marts 2005 - 22:27 #7
Ingen rødvin til mig, tak. Jeg samler ikke på dem.    ;)
Avatar billede gf Nybegynder
08. marts 2005 - 22:29 #8
he he

noget må du da samle på

mvh gf
Avatar billede erikjacobsen Ekspert
08. marts 2005 - 22:31 #9
Tilfredse kunder, såmænd.

Men det er vist ok at du selv svarer, og acceptere eget svar, så spørgmålet kan lukkes.
Avatar billede gf Nybegynder
08. marts 2005 - 22:31 #10
ok
Avatar billede olebole Juniormester
09. marts 2005 - 15:02 #11
pssssssst ....... prøv med hvidvin i stedet ...... Frascatti er et forsigtigt, men nok meget godt bud  ;o)
Avatar billede erikjacobsen Ekspert
09. marts 2005 - 15:20 #12
Du har en hukommelse som en elefant, Ole - selvfølgelig ment positivt ;)
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