Avatar billede fk87 Nybegynder
14. september 2008 - 16:41 Der er 23 kommentarer og
1 løsning

Visning af php

Hej Eksperter,

Hvorfor kan den ikke vise det med der kommer under "Flyt spiller" i nedenstående fil:

<?php
require 'common.php';

$db = new Database();

$classlist = $db->get_classes();

$page_title = "";
?>
<? require 'header.php' ?>
<div align="center">
    <table border="0" width="500" cellpadding="0" height="500" bordercolor="#000000" style="border-collapse: collapse">
        <tr>
            <td valign="top">
<table border="1" width="100%" style="border-width: 0px" cellspacing="0" cellpadding="0">
    <tr>
        <td style="border-style: none; border-width: medium">
        <p align="left"><font face="Verdana" size="1">
        &#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;<br>
        <b><br>
        </b><br>
        &#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;</font></td>
        <td style="border-style: none; border-width: medium" width="169">
        <font face="Verdana" size="1">
        &#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;<br>
        <br>
        <br>
        &#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;</font></td>
    </tr>
</table>
            <h2><font face="Verdana" size="1">Opret ny spiller:</font></h2>
<ul>
    <font face="Verdana" size="1">
    <? foreach($classlist as $class) { ?>
    </font>
    <li><a href="new.php?id=<?=$class['id']?>"><font size="1" face="Verdana"><?=$class['navn']?></font></a><font size="1" face="Verdana"></li>
    <? } ?>
</font>
</ul>
<h2><font face="Verdana" size="1">Overflytning af spiller:</font></h2>
<ul>
    <li><font face="Verdana" size="1"><a href="move.php">Flyt spiller</a></font></li>
</ul>


<font face="Verdana" size="1">


<? if($db) { $queue = $db->get_queue(); ?>
</font>
<u1>
<h2><font face="Verdana" size="1">E-mail kø:</font></h2></u1>
<font size="1" face="Verdana"><form method="post" action="email.php">
<input type="hidden" name="id" value="<?=$id?>" />
<input type="submit" name="mailit" value="Send E-mail" style="border: 1px solid #000000; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px; background-color: #FFFFFF;" /></form></font>


<ul>
<font face="Verdana" size="1">
<?php foreach($queue as $id => $n)?> <? { ?>
    </font>
    <li><form method="post" action="email.php"><font face="Verdana" size="1">
        <font size="1"><input type="hidden" name="id" value="<?=$id?>" />
        </font><?=htmlentities($n)?>
        <input type="submit" name="delete" value="Slet" style="border: 1px solid #000000; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px; background-color: #FFFFFF" /></font></form>
    <font face="Verdana" size="1">
<? } ?>
</ul>
<p align="center">
&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;&#903;<br>
</font>
</td>
        </tr>

</div>
<? } ?><? require 'footer.php' ?>

På forhånd tak.
Avatar billede mcardle Nybegynder
14. september 2008 - 18:41 #1
Ved ikke lige hvorfor din kode ikke vises. Prøv at echo dine ting ud i stedet for at afslutte din PHP.

Desuden burde du begynde at lave noget nyere kode. Det MEGET gammelt det der. Det er nok 6-7 år siden jeg har set et <font> tag i brug. :o)

Du kunne læse lidt op på CSS.

Hvad står der evt. i din class med dine db kald.

//mcardle
Avatar billede jakobdo Ekspert
14. september 2008 - 18:41 #2
Kan det ikke være din IF der fejler:

<? if($db) { $queue = $db->get_queue(); ?> ???
Avatar billede mcardle Nybegynder
14. september 2008 - 18:44 #3
Du har heller ikke nogen </table> slut tag efter sidste <tr>

//mcardle
Avatar billede fk87 Nybegynder
14. september 2008 - 19:11 #4
Det er muligt at det er if sætningen den er gal med - men har du evt. et forslag til hvad der kan ændres?
Ved godt det er noget gammelt kode ;D men har også haft det til at ligge i en del år efter hånden ;)
Avatar billede jakobdo Ekspert
14. september 2008 - 19:21 #5
Du kunne jo starte med:

<?
if($db){
    $queue = $db->get_queue();
    echo "Vi er inde i IF'en";
?>


Og så her:

<? } ?><? require 'footer.php' ?>
rette til:

<? }else{ echo "Vi er uden for IF'en";} ?><? require 'footer.php' ?>
Avatar billede fk87 Nybegynder
14. september 2008 - 19:27 #6
Det gør da ingen forskel på problemet ?!
Avatar billede w13 Novice
14. september 2008 - 19:31 #7
Nej, det kaldes debugning. ;)

Så man ser, hvordan koden arbejder, og derved kan finde problemet.
Avatar billede jakobdo Ekspert
14. september 2008 - 19:34 #8
Tak W13, det tyder netop på fk87 har brug for en støttepædago eller oversætter! :o)
Avatar billede fk87 Nybegynder
14. september 2008 - 19:35 #9
Så udskriver den : Vi er uden for IF'en
Avatar billede jakobdo Ekspert
14. september 2008 - 19:45 #10
Så skal du igen kigge på om denne er korrekt:

<? if($db)

Det kunne det jo tyde på den ikke er.
Avatar billede fk87 Nybegynder
14. september 2008 - 19:49 #11
Kan det have noget med nedenstående:

    function get_queue() {
        $res = mysql_query("SELECT id, subject FROM badminton_email ORDER BY id DESC LIMIT 10");
        $r = array();
        while($row = mysql_fetch_assoc($res))
            $r[$row['id']] = $row['subject'];

        return $r;
    }

    function get_complete_queue() {
        $res = mysql_query("SELECT id, subject, payload FROM badminton_email ORDER BY id DESC");
        $r = array();
        while($row = mysql_fetch_assoc($res))
            $r[$row['id']] = $row;

        return $r;
    }

    function delete_from_queue($id) {
        mysql_query(sprintf("DELETE FROM badminton_email WHERE id = '%d' LIMIT 1", $id));
    }
Avatar billede jakobdo Ekspert
14. september 2008 - 19:52 #12
Der er ikke nogen af dine kald som lukker $db.
Inden du har:
<? if($db) { $queue = $db->get_queue(); ?>

prøv så:

<? var_dump($db); if($db) { $queue = $db->get_queue(); ?>
Avatar billede fk87 Nybegynder
14. september 2008 - 19:55 #13
Så udskriver den: object(database)(0) { } Vi er uden for IF'en
Avatar billede jakobdo Ekspert
14. september 2008 - 20:05 #14
Måske du skulle prøve at vise din $db klasse.
Avatar billede fk87 Nybegynder
14. september 2008 - 21:02 #15
<?php
session_start();

require 'config.php';

// Check login - if not login.php
if( basename($_SERVER['SCRIPT_NAME']) != 'login.php' ) {
    if(empty($_SESSION['username'])) {
        header("Location: login.php");
        exit;
    }
}


// HTML helpers
class Form {
    function text_field($name) {
        return '<input type="text" name="'.$name.'" id="'.$name.'"/>';
    }

    function date_field($name) {
        return $this->text_field($name);
    }

    function hidden_field($name,$value) {
        return '<input type="hidden" name="'.$name.'" value="'.htmlentities($value).'"/>';
    }

    function dropdown_field($name,$values) {
        $r = '';

        $r = '<select name="'.$name.'">';

        if($values and is_array($values)) {
            foreach($values as $k => $v) {
                $r .= "<option name=\"$k\">$v</option>";
            }
        }
        $r .= '</select>';
        return $r;
    }

    function puretext($values) {
        $r = '';
        if($values and is_array($values)) {
            foreach($values as $k => $v) {
                $r .= $v . ', ';
            }
        }
        if (strlen($r)) {
          $r = substr( $r , 0 , -2 );
        }
        return $r;
    }
}

class Database {
    function Database() {
        mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) or die(mysql_error());
        mysql_select_db(MYSQL_DB) or die(mysql_error());
    }

    function is_flagged($class_id) {
        $res = mysql_query(sprintf("
            SELECT flag
            FROM badminton_hold
            WHERE id = '%d'
        ", $class_id)) or die(mysql_error());

        $row = mysql_fetch_assoc($res);
        return $row && $row['flag'];
    }

    function get_class_name_for($class_id) {
        $res = mysql_query(sprintf("
            SELECT navn
            FROM badminton_hold
            WHERE id = '%d'
        ", $class_id)) or die(mysql_error());

        $row = mysql_fetch_assoc($res);
        return $row['navn'];
    }

    function get_classes() {
        $res = mysql_query("
            SELECT * FROM badminton_hold ORDER BY navn
        ") or die(mysql_error());

        $r = array();

        while($row = mysql_fetch_assoc($res))
            $r[] = $row;

        return $r;
    }

    function get_classes_for_dropdown() {
        $res = mysql_query($sql=sprintf("
            SELECT id, navn
            FROM badminton_hold
            ORDER BY navn
        ",$class_id)) or die(mysql_error());

        $r = array();
        while($row = mysql_fetch_array($res)) {
            $r[$row[1]] = $row[1];
        }
        return $r;
    }

    function get_class_times_for_dropdown($class_id) {
        $res = mysql_query($sql=sprintf("
            SELECT id, tider
            FROM badminton_hold_tider
            WHERE hold_id = '%d'
        ",$class_id)) or die(mysql_error());

        $r = array();
        while($row = mysql_fetch_array($res)) {
            $r[$row[1]] = $row[1];
        }
        return $r;
    }

    function add($subject,$data) {
        $payload = serialize($data);

        mysql_query(sprintf("
            INSERT INTO badminton_email(subject, payload)
            VALUES('%s','%s')
        ", mysql_real_escape_string($subject),
        mysql_real_escape_string($payload))) or die(mysql_error());
    }

    function get_queue() {
        $res = mysql_query("SELECT id, subject FROM badminton_email ORDER BY id DESC LIMIT 10");
        $r = array();
        while($row = mysql_fetch_assoc($res))
            $r[$row['id']] = $row['subject'];

        return $r;
    }

    function get_complete_queue() {
        $res = mysql_query("SELECT id, subject, payload FROM badminton_email ORDER BY id DESC");
        $r = array();
        while($row = mysql_fetch_assoc($res))
            $r[$row['id']] = $row;

        return $r;
    }

    function delete_from_queue($id) {
        mysql_query(sprintf("DELETE FROM badminton_email WHERE id = '%d' LIMIT 1", $id));
    }

    function authorize($username,$password) {
        $sql = sprintf("
            SELECT username
            FROM badminton_admin
            WHERE username = '%s'
            AND password = md5('%s')
            LIMIT 1",
            mysql_real_escape_string($username),
            mysql_real_escape_string($password));

        $res = mysql_query($sql) or die(mysql_error());
        return ($res and mysql_fetch_array($res));
    }
}
Avatar billede jakobdo Ekspert
14. september 2008 - 21:07 #16
Hvad om du retter:

<? if($db) { $queue = $db->get_queue(); ?>

til

<? if(is_object($db)) { $queue = $db->get_queue(); ?>
Avatar billede fk87 Nybegynder
14. september 2008 - 21:12 #17
Det virker umiddelbart, men hvordan får man delete funktionen til at vise alle de tilføjede udfor hvert deres punkt:

<?php foreach($queue as $id => $n)?> <? { ?>
    </font>
    <li><form method="post" action="email.php"><font face="Verdana" size="1">
        <font size="1"><input type="hidden" name="id" value="<?=$id?>" />
        </font><?=htmlentities($n)?>
        <input type="submit" name="delete" value="Slet" style="border: 1px solid #000000; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px; background-color: #FFFFFF" /></font></form>
    <font face="Verdana" size="1">
<? } ?>
Avatar billede jakobdo Ekspert
14. september 2008 - 21:17 #18
hvorfor ikke lave det som et link og ikke som en form ?
Avatar billede fk87 Nybegynder
14. september 2008 - 21:18 #19
Skal det ikke være en form hvis man skal kunne slette dem ? Hvordan kan det se ud som link?
Avatar billede jakobdo Ekspert
14. september 2008 - 21:24 #20
Måske ala:

<?php foreach($queue as $id => $n)?> <? { ?>
    </font>
    <li><font face="Verdana" size="1"><a href="email.php?slet=<?=$id;?>"><?=htmlentities($n)?></a>
<? } ?>

Dog er din html kode ufuldendt.

Og du skal så rette email.php, så den modtager $id fra $_GET og ikke $_POST som nu.
Avatar billede fk87 Nybegynder
14. september 2008 - 21:38 #21
Kan man ikke bare gøre så den ligger dem udfor hvert deres punkt ved en form?
Avatar billede jakobdo Ekspert
14. september 2008 - 21:44 #22
Jo, så smid formen i top evt.
Men er det ikke et nyt spørgsmål ?

Og et svar.
Avatar billede w13 Novice
27. september 2008 - 13:40 #23
fk87?
Avatar billede jakobdo Ekspert
27. september 2008 - 14:52 #24
Takker 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