Avatar billede taager-kongen Nybegynder
24. marts 2003 - 17:32 Der er 20 kommentarer og
1 løsning

en hurtig en

da der har været nogen problemmer på exp har jeg fået - ponits? mærkeligt nok....håber nogen vil hjælpe med denne...:
hvorfor virker denne ikke? det er & det går galt i:
$strMenu = $strMenu & "<a href=\"".$row["til"] ."\">". $row["text"] ."</a>";
Avatar billede fangel Nybegynder
24. marts 2003 - 17:34 #1
prøv

$strMenu .= "<a href=\"".$row["til"] ."\">". $row["text"] ."</a>";
Avatar billede taager-kongen Nybegynder
24. marts 2003 - 17:37 #2
virker ikke :(... siger :
Notice: Undefined variable: strMenu in c:\inetpub\wwwroot\rasmus\cms+\menu.php on line 9
Avatar billede fangel Nybegynder
24. marts 2003 - 17:46 #3
hvorfor har du så den krølle med $var = $var . "mer text"; hvis variablen alligevel ikke findes før?

men for at lave et 100% kopi af din kode, dog med rigtig syntaks... så er det sådan her...

$strMenu = $strMenu . "<a href=\"".$row["til"] ."\">". $row["text"] ."</a>"; // . stedet for &

Morten
Avatar billede taager-kongen Nybegynder
24. marts 2003 - 17:49 #4
det virker altså ikke.. vil du se hele koden?
Avatar billede supermand69 Nybegynder
24. marts 2003 - 18:02 #5
$strMenu = $strMenu & '<a href=".$row[til].'">'.$row[text].'</a>';
Avatar billede supermand69 Nybegynder
24. marts 2003 - 18:03 #6
$strMenu .= '<a href=".$row[til].'">'.$row[text].'</a>';
Avatar billede supermand69 Nybegynder
24. marts 2003 - 18:04 #7
arh fårg mand... :)
'<a href="'.$row[til].'">'.$row[text].'</a>';
Avatar billede taager-kongen Nybegynder
24. marts 2003 - 18:05 #8
virker heller ikke...
Avatar billede supermand69 Nybegynder
24. marts 2003 - 18:06 #9
hvilken fejl får du?
Avatar billede taager-kongen Nybegynder
24. marts 2003 - 18:08 #10
er den sidste:

Notice: Use of undefined constant til - assumed 'til' in c:\inetpub\wwwroot\rasmus\cms+\menu.php on line 9

Notice: Use of undefined constant text - assumed 'text' in c:\inetpub\wwwroot\rasmus\cms+\menu.php on line 9

Notice: Undefined variable: strMenu in c:\inetpub\wwwroot\rasmus\cms+\menu.php on line 9
Avatar billede fangel Nybegynder
24. marts 2003 - 18:13 #11
$strMenu .= "<a href=\"".$row['til'] ."\">". $row['text'] ."</a>";

dette lægger "<a href=\"".$row['til'] ."\">". $row['text'] ."</a>"; til den værdig strMenu i forvejen har... den sidste fejl er fordi strMenu ikke findes i forvejen... derfor skal du oprette variablen får du går igang med din while løkke...

Morten
Avatar billede taager-kongen Nybegynder
24. marts 2003 - 18:14 #12
nej:
Notice: Undefined variable: strMenu in c:\inetpub\wwwroot\rasmus\cms+\menu.php on line 9
Avatar billede supermand69 Nybegynder
24. marts 2003 - 18:15 #13
kan du ikke lige give noget mere kode ?? :)
Avatar billede taager-kongen Nybegynder
24. marts 2003 - 18:31 #14
<?php
include("php\connect.php");
mysql_select_db("cms");
$strMenu = "";

function Menu_Data() {
$res2 = mysql_query("SELECT * FROM menu9 order by plads desc");
while($row = mysql_fetch_array($res2)) {
$strMenu .= "<a href=\"".$row['til'] ."\">". $row['text'] ."</a>";
}
}
$strData = Menu_Data();
echo mysql_error();
include("php\luk.php");
echo $strData;
?>
Avatar billede taager-kongen Nybegynder
24. marts 2003 - 18:54 #15
kan nogen hjælpe?
Avatar billede supermand69 Nybegynder
24. marts 2003 - 20:17 #16
du må undskylde, men jeg kan ikke lige se formålet med at sætte det i en funktion?? :)
Avatar billede olebole Juniormester
25. marts 2003 - 03:05 #17
<ole>

supermand69 >> årsagen er 'god kodeskik'. Lægger du det i en funktion, du kan kalde nede i HTML'en (hvor det skal stå) gør, at du har dit PHP liggende øverst og ikke koger en uigennemskuelig vælling af sammenrodet PHP og HTML over hele siden  ;o)
At det så er temmelig unødvendigt, hvis det er skrevet præcis, som det står her, er så en anden ting.

taager-kongen >> Årsagen er, at din funktion ikke kan læse variabler, der erklæret udenfor funktionen - og omvendt. Så skal du referere til den som global:

<?php
include("php\connect.php");
mysql_select_db("cms");
$strMenu = "";

function Menu_Data() {
global $strMenu;
$res2 = mysql_query("SELECT * FROM menu9 order by plads desc");
while($row = mysql_fetch_array($res2)) {
$strMenu .= "<a href=\"".$row['til'] ."\">". $row['text'] ."</a>";
}
}
$strData = Menu_Data();
echo mysql_error();
include("php\luk.php");
echo $strData;
?>

/mvh
</bole>
Avatar billede taager-kongen Nybegynder
25. marts 2003 - 18:47 #18
takker... meget... men hvad hjælp det med globals?
Avatar billede olebole Juniormester
25. marts 2003 - 18:58 #19
En variabel, der erklæres udenfor en funktion, kan ikke læses udenfor funktionen. Prøv de her små eksempler, så kan du se, hvad 'global' gør:

<?
$noget = "bla";
funktion skriv() {
  print $noget;
  print " Kan ikke læse variablen :(";
}
skriv();
?>

<?
$noget = "bla";
funktion skriv() {
  global $noget;
  print $noget;
  print " Kan godt læse variablen :)";
}
skriv();
?>

<?
funktion doVar() {
  $noget = "bla";
}
doVar();
print $noget;
print " Kan ikke læse variablen :(";
?>

<?
funktion doVar() {
  global $noget;
  $noget = "bla";
}
doVar();
print $noget;
print " Kan godt læse variablen :)";
?>

/mvh
Avatar billede taager-kongen Nybegynder
25. marts 2003 - 19:02 #20
altså ved at bruge global inde eller uden for funktion kan man bruge dem begge steder?
Avatar billede olebole Juniormester
25. marts 2003 - 20:02 #21
Ja, en global variabel er 'global'  ;o)
Men du skal ikke overbruge det. Alt koster resourcer, så variabler, der ikke skal bruges globalt, bør du heller ikke erklære globalt. Nøjes med kun at gøre det, når det er nødvendigt.
Derudover er det en stor fordel, at dine funktioner har hver sine 'private' variabler - og kun få fælles. Det giver et mere overskueligt variabel-scope.
/mvh
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