Avatar billede dl Nybegynder
27. december 2004 - 20:12 Der er 17 kommentarer og
1 løsning

While i php

Jeg har en database 'MenuSystem'.
Som jeg skal lave et udtræk på.

Mit problem ligger i while ... der kommer den første fejl.
Den anden kommer ved : mysql_free_result($MenuSystemResult);

Hvaad går der galt?



<start kode>

<?php
    Require ($_SERVER["DOCUMENT_ROOT"]."/system/db_ind.inc");
       
    $MenuSystemLink = mysql_connect($mysql_db_host,$mysql_db_username,$mysql_db_pass);
    if (!$MenuSystemLink) {
        die('Could not connect: ' . mysql_error());
    }


    // make MenuSystem the current db for the connection MenuSystemLink
    $MenuSystemLink_db_selected = mysql_select_db('tcwc_dk',$MenuSystemLink);
    if (!$MenuSystemLink_db_selected) {
        die ('Could not connect to db: ' . mysql_error());
    }           

?>   


    <table class="Border" align="center" cellpadding="0" cellspacing="0" width="95%">
       
<?php
    $menu = $_GET["menu"];

    if (isset($menu)) {
        $MenuSystemResult = mysql_query("select * from menusystem where MenuID = '$menu'");

        while ($MenuSystemRow = mysql_fetch_array($MenuSystemResult)) {
            print '<tr>';   
            print '    <td width="100%" colspan="2">' . $MenuSystemRow[MenuPunktName] . '</td>';
            print '</tr>';
        }
        mysql_free_result($MenuSystemResult);
    }

?>

   
    </table>





<?php
    mysql_close($MenuSystemLink);
?>

<slut kode>

Fejl:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /customers/tcwc.dk/tcwc.dk/httpd.www/index.php on line 48

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in /customers/tcwc.dk/tcwc.dk/httpd.www/index.php on line 53
Avatar billede arne_v Ekspert
27. december 2004 - 20:14 #1
Din query fejler.

prøv:

$MenuSystemResult = mysql_query("select * from menusystem where MenuID = '$menu'") or die(mysql_error());
Avatar billede dl Nybegynder
27. december 2004 - 20:15 #2
hmm ... husk stor og små bogstaver..
Avatar billede dl Nybegynder
27. december 2004 - 20:16 #3
den rigtig : $MenuSystemResult = mysql_query("select * from MenuSystem where MenuID = '$menu'");

Vil du have point ?
Avatar billede arne_v Ekspert
27. december 2004 - 20:18 #4
Kun hvis du brugte or die til at finde fejlen med
Avatar billede dl Nybegynder
27. december 2004 - 20:40 #5
nej, det gjore jeh ikke .... MEN jeg vil faktisk godt bruge den ... da jeg så får en fejl kode... hvis det går galt.
;)

//dl

PS. så kom med et svar.
Avatar billede dl Nybegynder
27. december 2004 - 20:42 #6
hvor virker min while nu ikke:

<?php
    $menu = $_GET["menu"];

    if (isset($menu)) {
        $MenuSystemResult = mysql_query("select * from MenuSystem where MenuID = '$menu'");

        while ($MenuSystemRow = mysql_fetch_array($MenuSystemResult)) or die ('Could not fetch array: ' . mysql_error()) {
            print '<tr>';   
            print '    <td width="100%" colspan="2">' . $MenuSystemRow[MenuPunktName] . '</td>';
            print '</tr>';
        }
        mysql_free_result($MenuSystemResult);
    }

?>
Avatar billede arne_v Ekspert
27. december 2004 - 20:47 #7
Hvad sker der ?
Avatar billede arne_v Ekspert
27. december 2004 - 20:48 #8
Umiddelbart ville jeg tro at

$MenuSystemRow[MenuPunktName]

skulle være

$MenuSystemRow["MenuPunktName"]
Avatar billede arne_v Ekspert
27. december 2004 - 20:48 #9
og et svar
Avatar billede dl Nybegynder
27. december 2004 - 20:54 #10
nej, for det virker hvis hvis jeg fjerner :  or die ('Could not fetch array: ' . mysql_error())

og bare køre det som dette:
<?php
    $menu = $_GET["menu"];

    if (isset($menu)) {
        $MenuSystemResult = mysql_query("select * from MenuSystem where MenuID = '$menu'");

        while ($MenuSystemRow = mysql_fetch_array($MenuSystemResult)) {
            print '<tr>'; 
            print '    <td width="100%" colspan="2">' . $MenuSystemRow[MenuPunktName] . '</td>';
            print '</tr>';
        }
        mysql_free_result($MenuSystemResult);
    }

?>
Avatar billede arne_v Ekspert
27. december 2004 - 20:56 #11
Hm.

Det er nu også lidt utraditionelt at putte or die på mysql_fetch_array - normalt
er det mysql_query man bruger den på.
Avatar billede dl Nybegynder
27. december 2004 - 20:57 #12
k, det kan jeg da også ... bare jeg kan fejl finde når det er :)
Avatar billede morteeart Nybegynder
27. december 2004 - 20:58 #13
put: or die() på mysql_query

sæt @ foran mysql_fetch_array (så slipper du for fejlmeddelsen)

og det hedder: $MenuSystemRow['MenuPunktName'] altså med ' '
Avatar billede dl Nybegynder
27. december 2004 - 21:00 #14
Hvornår bruger man "  og '
Avatar billede morteeart Nybegynder
27. december 2004 - 21:03 #15
echo "text";
echo $array['1'];
echo $array['hej'];
Avatar billede dl Nybegynder
27. december 2004 - 21:04 #16
k, takker.
Avatar billede morteeart Nybegynder
27. december 2004 - 21:05 #17
Avatar billede arne_v Ekspert
27. december 2004 - 21:27 #18
PHP er faktisk ret fleksibel med hensyn til array index.

Jeg har lige siddet og leget lidt.

Prøv og kør det her eksempel:

<?php
$a = array("Linie 1","Linie 2","Linie 3");
print $a[0] . "<br>";
print $a['1'] . "<br>";
print $a["2"] . "<br>";
$b = array('Linie 4','Linie 5','Linie 6');
print $b[0] . '<br>';
print $b['1'] . '<br>';
print $b["2"] . '<br>';
$c = '1';
print $a[$c] . '<br>';
print $a['$c'] . '<br>';
print $a["$c"] . '<br>';
?>

Det skulle gerne vise lidt om hvad man kan og hvad man ikke kan.
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