Avatar billede 120769 Nybegynder
02. august 2006 - 18:02 Der er 13 kommentarer og
1 løsning

PHP - Mysql problem

Hejsa.
Ved ikke helt om det er et PHP eller Mysql problem, men jeg prøver.
Jeg sidder og roder med noget kode som jeg har fundt på nettet, men der er en fejl i koden, håber at der er en der kan hjælpe!

Problemet ligger i "$country" den får den samme værdi heletiden, selv om den skulle få forskellige værdier.

Håber der en der kan hjælpe mig på vej....

//    Get the details of the locations to be listed
    $locationlist = parse_mysql_query('locationlist.sql');

//    Get the details of the countries
    $countrylist = parse_mysql_query('countrylist.sql');

    for ($i=0; $i<count($locationlist); $i++) {
//        Get this country
        $country = "";
        for($j=0; $j<count($countrylist); $j++) {
            if ($countrylist[$j]['ID'] = $locationlist[$i]['CountryID']) {
                $country = $countrylist[$j]['Country'];
            }
        }

//        Get this city
        $globals['locid'] = $locationlist[$i]['ID'];
        $citydetails = parse_mysql_query('onecity.sql');
        $city = $citydetails[0]['City'];

        echo " <tr class=\"divecontent\">\n";
        echo "  <td><a href=\"divesite.php?loc=". $locationlist[$i]['ID'];
        echo "\" title=\"". $locationlist[$i]['Place'];
        echo " ". $_lang['logbook_place_linktitle'] ."\">";
        echo $locationlist[$i]['Place'] ."</a></td>\n";
        echo "  <td>". $city ."</td>\n";
        echo "  <td>". $country."</td>\n";
        echo "  <td>". $locationlist[$i]['MaxDepth'] ." ". $_lang['unit_length_short'] ."</td>\n";
        echo " </tr>\n";
    }
Avatar billede Slettet bruger
02. august 2006 - 18:05 #1
Hvad gør funktionen parse_mysql_query? Kan ikke finde den på php.net nemlig.
Avatar billede 120769 Nybegynder
02. august 2006 - 18:20 #2
Ved det ikke helt :-(
Men som jeg forstår det, så gør "$locationlist = parse_mysql_query('locationlist.sql');" det at den går ud i 'locationlist.sql' læser den sql søgesætning der ligger der, går ud i databasen læser værdierne, og smider dem over i  "$locationlist".
Avatar billede nielle Nybegynder
02. august 2006 - 19:28 #3
Prøv at smide et par print_r()-kald ind sådan at vi kan se indholdet af $locationlist og $countrylist:

// Get the details of the locations to be listed
$locationlist = parse_mysql_query('locationlist.sql');
print_r($locationlist);

// Get the details of the countries
$countrylist = parse_mysql_query('countrylist.sql');
print_r($countrylist);
Avatar billede 120769 Nybegynder
02. august 2006 - 21:36 #4
Det kommer her:
Array ( [0] => Array ( [ID] => 10 [CountryID] => 1 [Place] => Anemone Reef [MaxDepth] => ) [1] => Array ( [ID] => 17 [CountryID] => 2 [Place] => Helnæs Bogaard [MaxDepth] => 6 ) [2] => Array ( [ID] => 14 [CountryID] => 2 [Place] => Kattegat Centeret [MaxDepth] => ) [3] => Array ( [ID] => 12 [CountryID] => 1 [Place] => Koh Doc Mai [MaxDepth] => ) [4] => Array ( [ID] => 16 [CountryID] => 3 [Place] => Lighthouse Point [MaxDepth] => 21 ) [5] => Array ( [ID] => 3 [CountryID] => 2 [Place] => Lyngsbo / Ammoniak Havnen / Hullerne [MaxDepth] => ) [6] => Array ( [ID] => 8 [CountryID] => 2 [Place] => Motortorpedobåd nr. 4 [MaxDepth] => 10 ) [7] => Array ( [ID] => 13 [CountryID] => 1 [Place] => Racha Yai [MaxDepth] => ) [8] => Array ( [ID] => 11 [CountryID] => 1 [Place] => Shark Point [MaxDepth] => ) [9] => Array ( [ID] => 7 [CountryID] => 2 [Place] => Storbælt's Broen [MaxDepth] => ) [10] => Array ( [ID] => 5 [CountryID] => 2 [Place] => Søbadet [MaxDepth] => 27 ) [11] => Array ( [ID] => 9 [CountryID] => 2 [Place] => Sønderballe Strand [MaxDepth] => ) [12] => Array ( [ID] => 15 [CountryID] => 3 [Place] => Wreck Rock [MaxDepth] => 25 ) ) Array ( [0] => Array ( [LogID] => 0 [ID] => 1 [Country] => Thailand ) [1] => Array ( [LogID] => 0 [ID] => 2 [Country] => Danmark ) [2] => Array ( [LogID] => 0 [ID] => 3 [Country] => Tyrkiet ) )
Avatar billede nielle Nybegynder
02. august 2006 - 21:51 #5
Jeg tror vist at det er så simpelt som at:

if ($countrylist[$j]['ID'] = $locationlist[$i]['CountryID']) {

- skal rettes til:

if ($countrylist[$j]['ID'] == $locationlist[$i]['CountryID']) {
Avatar billede 120769 Nybegynder
02. august 2006 - 21:56 #6
det ser ud til at det virker nu, tak for hjælpen

Sender du lige et svar
Avatar billede nielle Nybegynder
02. august 2006 - 21:57 #7
Svar :^)
Avatar billede Slettet bruger
02. august 2006 - 21:58 #8
Men frem over når du laver en print_r() så smid et <pre> tag omkring.

Altså:
<pre>
<?PHP print_r($countrylist); ?>
</pre>
Avatar billede Slettet bruger
02. august 2006 - 21:58 #9
så ser det pænere ud dit array print.
Avatar billede nielle Nybegynder
02. august 2006 - 22:00 #10
Ja, brugte lang tid på at sidde og formatere det sådan at jeg junne gennemskue strukturen:

Array (
    [0] => Array (
        [ID] => 10
        [CountryID] => 1
        [Place] => Anemone Reef
        [MaxDepth] =>
        )
    [1] => Array (
        [ID] => 17
        [CountryID] => 2
        [Place] => Helnæs Bogaard
        [MaxDepth] => 6
        )
    [2] => Array (
        [ID] => 14
        [CountryID] => 2
        [Place] => Kattegat Centeret
        [MaxDepth] =>
        )
    [3] => Array (
        [ID] => 12
        [CountryID] => 1
        [Place] => Koh Doc Mai
        [MaxDepth] =>
        )
    [4] => Array (
        [ID] => 16
        [CountryID] => 3
        [Place] => Lighthouse Point
        [MaxDepth] => 21
        )
    [5] => Array (
        [ID] => 3
        [CountryID] => 2
        [Place] => Lyngsbo / Ammoniak Havnen / Hullerne
        [MaxDepth] =>
        )
    [6] => Array (
        [ID] => 8
        [CountryID] => 2
        [Place] => Motortorpedobåd nr. 4
        [MaxDepth] => 10
        )
    [7] => Array (
        [ID] => 13
        [CountryID] => 1
        [Place] => Racha Yai
        [MaxDepth] =>
        )
    [8] => Array (
        [ID] => 11
        [CountryID] => 1
        [Place] => Shark Point
        [MaxDepth] =>
        )
    [9] => Array (
        [ID] => 7
        [CountryID] => 2
        [Place] => Storbælt's Broen
        [MaxDepth] =>
        )
    [10] => Array (
        [ID] => 5
        [CountryID] => 2
        [Place] => Søbadet
        [MaxDepth] => 27
        )
    [11] => Array (
        [ID] => 9
        [CountryID] => 2
        [Place] => Sønderballe Strand
        [MaxDepth] =>
        )
    [12] => Array (
        [ID] => 15
        [CountryID] => 3
        [Place] => Wreck Rock
        [MaxDepth] => 25
        )
    )

Array (
    [0] => Array (
        [LogID] => 0
        [ID] => 1
        [Country] => Thailand
        )
    [1] => Array (
        [LogID] => 0
        [ID] => 2
        [Country] => Danmark
        )
    [2] => Array (
        [LogID] => 0
        [ID] => 3
        [Country] => Tyrkiet
        )
    )
Avatar billede nielle Nybegynder
02. august 2006 - 22:01 #11
... men det var jo min egen skyld - skrev ikke noget om brugen af <pre>. ;^)
Avatar billede Slettet bruger
02. august 2006 - 22:05 #12
hehe smiler.... ja sådan gjorder jeg squ også i starten da jeg begyndte at lege med arrays, og inde jeg fandt ud af <pre> tag'et. ;D
Avatar billede 120769 Nybegynder
02. august 2006 - 22:17 #13
Tak for hjælpen, og tips
Avatar billede nielle Nybegynder
02. august 2006 - 22:18 #14
Tak for point :^)
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