Avatar billede lsskaarup Nybegynder
21. oktober 2008 - 10:18 Der er 5 kommentarer og
1 løsning

Ikke data i hele arrayet

Jeg har et array indeholdende data fra en database, men af en eller anden grund, indeholder arrayet ikke data, hvor jeg forventer det skal indeholde data.

Det er sikkert en lille fejl, men nu har jeg stirret mig blind på problemet...

Selve udtrækket, $search er bare nogle søgkriterier der bliver sat ind.

$query="SELECT id, navn, bygNavn2, adresse1, bygAdresse2, postby FROM bygherre ".$search." ORDER BY navn ASC";

$sql = mysql_query($query) or die(mysql_error());

$res = array();
if (mysql_num_rows($sql)) {
    while ($foo = mysql_fetch_array($sql)){
        $res[] = $foo;
        //echo $foo['bygNavn2'];
        //echo $res[1]['navn'] ." " .$res[1]['bygNavn2']. " ".$res[1]['adresse1'];
    }
}

Senere kører jeg denne:
<?php
    if (!sizeof($res)) {
?>
Ingen bygherrer fundet !<br>

    <input type="button" name="close" class="submit" value="Luk" onCLick="window.close();">
<?php
    } else {
?>
    <b><?php echo sizeof($res); ?> bygherre(r) fundet.</b><br><br>
<?php
        for ($i=0; $i<sizeof($res); $i++) {
   
            $search = "";

            //$tNavn = $navn;
            echo $i."<br>";
            echo sizeof($res[$i]['$adresse1']);
            echo $bygNavn2 = $res[$i]['$bygNavn2']."<br>";
            //echo $res[1]['bygNavn2'];
            //$tNavn2 = $bygNavn2;
            echo $adresse = $res[$i]['adresse1']."<br>";
            //$tAdresse = $adresse;
            echo $bygAdresse2 = $res[$i]['bygAdresse2']."<br>";
            //$tAdresse2 = $bygAdresse;
            echo $postby = $res[$i]['postby']."<br>";
            //$tPost = $postby;

Det mærkelige er at, $res[$i]['$bygNavn2'] og $res[$i]['bygAdresse2'] ikke returnerer data. Indsætter jeg et tal i stedet for $i, kan jeg godt få returneret data.

Altså skulle man tro at jeg ikke kan løbe $res[] igennem ved $i, men der er andre udtræk som virker på denne måde.
Avatar billede erikjacobsen Ekspert
21. oktober 2008 - 10:33 #1
Det er i hvert fald helt forkert at skrive '$bygNavn2' - Du mener garanteret

      echo $bygNavn2 = $res[$i]['bygNavn2']."<br>";

Og hvis du ikke skal bruge variablen, kan du bare:

      echo $res[$i]['bygNavn2']."<br>";
Avatar billede majbom Novice
21. oktober 2008 - 10:35 #2
hvorfor skriver du ikke bare data ud når du kører din while(mysql_fetch_array($sql))?
Avatar billede erikjacobsen Ekspert
21. oktober 2008 - 10:50 #3
Sikkert fordi det er ganske fornuftigt at adskille database og præsentation. Og måske fordi man skal bruge det mere end en gang. Modsat spaghetti-kode. ;)
Avatar billede lsskaarup Nybegynder
21. oktober 2008 - 11:08 #4
Ja, se det var bare det lille $...

Sommetider kan man godt nok ikke se skoven for bare træer ;-)

og jo jeg bruger variablerne til at søge videre med.

Tak for hjælpen, smid et svar.
Avatar billede erikjacobsen Ekspert
21. oktober 2008 - 11:30 #5
Jeg samler slet ikke på point, tak.
Avatar billede lsskaarup Nybegynder
22. oktober 2008 - 10:22 #6
Nå, jamen så lukker jeg da bare
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