Avatar billede hoell Nybegynder
17. oktober 2003 - 00:36 Der er 8 kommentarer og
1 løsning

Lidt hjælp til kodeoptimering + fejlmeddelse

Jeg har behov for to ting:
1) nedenstående kode, må kunne gøres lettere spec. omkring udskrivning af query-resulatet.
2) Jeg får følgende fejl når jeg kører scriptet.

Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting ']' på linie 19

det er følgende linie:

echo "    Tilmeldingsfristen er:$row[tilmeldingsfrist]<br>";

Nogen bud på hvor det går galt?

<?php
session_start();
header("Cache-control: private");
include'style.php';
include 'db.php';
$SQL = "SELECT * FROM klubber order by klubnavn";
$result = mysql_query($SQL);
$_SESSION['kursus'] = $kursus; //POST-variable fra forrrigeside
echo '<h1>Tilmelding step 1</h1><br>';
echo '<h3>Du har valgt følgende kursus:</h3><br><br>';
echo '<h4>';
$query = "SELECT * FROM kurser WHERE kursusid = $kursus";
$result = mysql_query($query);
while($row = mysql_fetch_array($result))
    {
        echo "    $row[kursustype]-dommerkursus<br>";
        echo "    Afholdes d.$row[kursusdato]<br>";
        echo "    Værtsklubben er:$row[værtsklub]<br>";
        echo "    Tilmeldingsfristen er:$row[tilmeldingsfrist]<br>";
        echo "    Instruktøren er:$row[instruktor]<br>";
        $_SESSION['kursustype'] = $row[kursustype];
        $_SESSION['kursusdato'] = $row[kursusdato];
        $_SESSION['værtsklub'] = $row[værtsklub];
        $_SESSION['tilmeldingsfrist'] = $row[tilmeldingsfrist];
        $_SESSION['instruktor'] = $row[instruktor];   
    }
echo '</h4>';


På forhånd tak

/Hoell
Avatar billede detox Nybegynder
17. oktober 2003 - 01:24 #1
Hvad gør den første query?
Avatar billede detox Nybegynder
17. oktober 2003 - 01:42 #2
Jeg vil anbefale dig at fjerne 'æ' fra dine variabel/feltnavne, det kan nemt drille. Her er et udkast til et lettere forenklet script (uden 'æ'):

<?php
session_start();
header("Cache-control: private");
include'style.php';
include 'db.php';
$_SESSION['kursus'] = $_POST['kursus']; //POST-variable fra forrrigeside
$query = "SELECT * FROM kurser WHERE kursusid = $kursus";
$result = mysql_query($query);
$out = "";
if (mysql_num_rows($result) == 1) {
$row = mysql_fetch_assoc($result)
extract($row);
$out .= "    $kursustype-dommerkursus<br />
Afholdes d.$kursusdato<br />
Værtsklubben er:$vaertsklub<br />
    Tilmeldingsfristen er:$tilmeldingsfrist<br />
    Instruktøren er:$instruktor<br />";
$_SESSION['kursustype'] = $kursustype;
$_SESSION['kursusdato'] = $kursusdato;
$_SESSION['vaertsklub'] = $vaertsklub;
$_SESSION['tilmeldingsfrist'] = $tilmeldingsfrist;
$_SESSION['instruktor'] = $instruktor;
}else{
    $out .= "Der var ingen data der passede til din forespørgsel";
}
?>
<h1>Tilmelding step 1</h1><br />
<h3>Du har valgt følgende kursus:</h3><br /><br />
<h4><?=$out?></h4>
Avatar billede detox Nybegynder
17. oktober 2003 - 01:44 #3
I eksemplet går jeg ud fra at din forespørgsel kun matcher en række i din tabel, ellers skal den selvfølgelig laves om.
Avatar billede detox Nybegynder
17. oktober 2003 - 01:46 #4
Der mangler lige en ; her:

$row = mysql_fetch_assoc($result);
Avatar billede detox Nybegynder
17. oktober 2003 - 01:53 #5
Lidt enklere:

<?php
session_start();
header("Cache-control: private");
include'style.php';
include 'db.php';
$_SESSION['kursus'] = $_POST['kursus']; //POST-variable fra forrrigeside
$query = "SELECT * FROM kurser WHERE kursusid = $kursus";
$result = mysql_query($query);
$out = "";
if (mysql_num_rows($result) == 1) {
$row = mysql_fetch_assoc($result);
foreach ($row as $key=>$item) {
    $_SESSION[$key] = $item;
}
extract($row);
$out .= "    $kursustype-dommerkursus<br />
Afholdes d.$kursusdato<br />
Værtsklubben er:$vaertsklub<br />
    Tilmeldingsfristen er:$tilmeldingsfrist<br />
    Instruktøren er:$instruktor<br />";
}else{
    $out .= "Der var ingen data der passede til din forespørgsel";
}
?>
<h1>Tilmelding step 1</h1><br />
<h3>Du har valgt følgende kursus:</h3><br /><br />
<h4><?=$out?></h4>
Avatar billede hoell Nybegynder
17. oktober 2003 - 10:13 #6
Den første query skal bruges længere nede i scriptet, men dette har jeg kommenteret ud i min fejlsøgning, jeg burde nok flytte det derhen hvor jeg skal bruge det eller hva?

Du har ret i det med Æ,Ø,Å det var det der gav problemerne, nu har jeg desuden ændret i min db, så der heller ikke her anvendes disse tegn, for det gav mig faktisk et problem på en anden side, det havde jeg ikke lige være opmærksom på, men tak for hjælpen.

Jeg behøver vel ikke lave en $out variabel, da jeg hver gang er 100% sikker på at der findes en forespørgsel, da denne forespørgsel er valgt på foregående side?

/Hoell
Avatar billede detox Nybegynder
17. oktober 2003 - 11:06 #7
Nej du behøver naturligvis ikke en $out variabel (slet ikke når der kun er en række). Det er mere velegnet til løkker.
Og, ja den anden forespørgsel er det nok bedre at ligge længere nede, hvor du skal bruge den.
Håber du kan bruge det lille fif med:

foreach ($row as $key=>$item) {
    $_SESSION[$key] = $item;
}

Det vil lægge hvert enkelt felt fra din forespørgsel i en sessionvariabel.
Avatar billede hoell Nybegynder
17. oktober 2003 - 15:55 #8
yupiie den have jeg ikke lige set, det er skisme smart!!

Smider du et svar detox så er der point!

/Hoell
Avatar billede detox Nybegynder
17. oktober 2003 - 16:20 #9
Jep c",)
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