NAS
Mobile Footer Layer

PHP Statische Attribute und Funktion? Examen Vorbereitung für Heute :-(

Project-X

Commodore
Registriert
Okt. 2003
Beiträge
5.017
Hi allerseits

Habe heute eine Examen, und dass ziemlich früh am Morgen.
Allerdings komme ich nicht mehr weiter, und stecke so ziemlich in der Krise :rolleyes:

Hier ist eine Aufgabe die ich lösen soll, aber nicht mehr weiter komme. Habe die beiden Punkten mit "Grün" Markiert:

hsw9-1x-a3f3.png


Kann mir ev. einer die Aufgabe(n) lösen? Habe in der Anhang meine PHP / CSS Datei hoch geladen mit der Stand meiner Aufgaben lösung.
Wäre froh wenn ich dies dann als Vorlage für mein "richtigen" Examen nehmen kann in Fach "HTML II" :)
 

Anhänge

  • php.rar
    php.rar
    1.005 Bytes · Aufrufe: 118
Ich hab zurzeit einen Totalen Blackout, bzw. stehe wie eine Ahnungslose da. Wüsste nicht wie ich dies Integrieren soll damit es genau so ausgeben soll wie auf dem Foto.

Unter mein PHP Datei sieht es so aus:
PHP:
<title>Test 1, Aufgabe 2</title>

<?php 
    include "auto.php";

    function autotabelle($autoliste) {
	     echo "<table>";
	     echo "<tr id=\"kopfzeile\">";
	     echo "<td id=\"markecol\">Marke</td>";
	     echo "<td id=\"modellcol\">Modell</td>";
	     echo "<td id=\"kilocol\">Kilometerstand</td>";
	     echo "</tr>";
		 echo "</table>";
   }
  ?>

</head>

<body>


	<h1>Autos</h1>
    <?php
     autotabelle($autoliste);
     
     foreach ($autoliste as $adresse) {
	$adresse->fahren($pgefahreneKilometer);
     }
  ?>

	

</body>
</html>
Bei der Ausführung unter XAMPP kommt die Fehlermeldung:
Notice: Undefined variable: pgefahreneKilometer in C:\xampp\htdocs\php\aufgabe2.php on line 32


Und unter der 2. PHP Datei:

PHP:
<?php

class Auto {

   var $marke;
   var $modell;
   var $gefahreneKilometer;
   public static $totalKilometer = 0;

  
   function __construct($pmarke, $pmodell) {
       $this->marke = $pmarke;
       $this->modell = $pmodell;
   }
    function fahren($pgefahreneKilometer){
       $this->gefahreneKilometer = $pgefahreneKilometer;
   }

}

$autoliste = array(new Auto("VW", "Golf"),
                     new Auto("Peugeot", "406"),
                     new Auto("Crysler", "Crossfire"),
                     new Auto("Mitsubishi", "Colt"),
                     new Auto("Audi", "A8 Sport"));


?>

:(
 
'tschuldige examen? Sieht aber nicht so aus als hättest du viel gemacht, so wie du das planst kann es vorne und hinten nicht klappen.

A) Deine Tabelle startet im Head bereich und hat dort nix verloren! Allgemein sollte die funktion nichts außer der table ausgeben und der HTML Teil in einer extra datei stehen.

B)..... ach was solls hier ist die lösung (ungetestet)

PHP:
 class Auto {
                    private $marke;
                    private $modell;
                    private $gefahreneKilometer;
                    
                    private static $totalKilometer = 0;
                    
                    public function __construct( $marke, $modell) {
                        $this->marke = $marke;
                        $this->modell = $modell;
                        // Dient nur dazu die variable gefahreneKilometer
                        // zu intilaisieren
                        $this->gefahreneKilometer = 0; 
                    }
                    
                    public function fahre($kilometer) {
                        // Kilometer des Autos erhöhen
                        $this->gefahreneKilometer += $kilometer;
                        // Totale globale Kilometer erhöhen
                        Auto::$totalKilometer += $kilometer;
                        /*
                         * $a += $b
                         * ist das selbe wie
                         * $a = $a + $b
                         */
                    }
                    
                    public function getMarke() {
                        return $this->marke;
                    }
                    
                    public function getModell() {
                        return $this->modell;
                    }
                    
                    public function getKilometer() {
                        return $this->gefahreneKilometer;
                    }
                    
                    public static function getTotalKilometer() {
                        return Auto::$totalKilometer;
                    }
                }

und die ausgabe:

PHP:
$autoliste = array(new Auto("VW", "Golf"),
    new Auto("Peugeot", "406"),
    new Auto("Crysler", "Crossfire"),
    new Auto("Mitsubishi", "Colt"),
    new Auto("Audi", "A8 Sport"));

$ausgabe = '';

foreach($autoliste as $auto) {
    $ausgabe .= '<tr >';
    $ausgabe .= ' <td style="border-bottom: 1px solid black;">' . $auto->getMarke() . '</td>';
    $ausgabe .= ' <td style="border-bottom: 1px solid black;">' . $auto->getModell() . '</td>';
    $ausgabe .= ' <td style="text-align: right; border-bottom: 1px solid black;">' . $auto->getKilometer() . '</td>';
    $ausgabe .= '</tr>';
}

$ausgabe .= '<tr>';
$ausgabe .= ' <td colspan="2" style="border-bottom: 1px solid black;">Total Kilometer</td>';
$ausgabe .= ' <td style="text-align: right; border-bottom: 1px solid black;">' . Auto::getTotalKilometer() . '</td>';
$ausgabe .= '</tr>';

?>

<html>
    <head>
        <title>Test1, Aufgabe 2</title>
    </head>
    <body>
        <table style="border: 1px solid black;">
            <tr style="background-color: black; color: white;">
                <td style="width: 100px;">Marke</td>
                <td style="width: 100px;">Modell</td>
                <td style="width: 200px; text-align: right;">Kilometerstand</td>
            </tr>
            <?PHP echo $ausgabe; ?>
        </table>
    </body>
</html>

einzig die Kilometer musst du noch eintragen, wie das gehen soll k.A. war die aufgabe ja nicht eindeutig.

Man könnte dasmit einem switch im foreach machen.

ansonsten wenn du fragen zur funktionsweise hast, ich bin noch bis 7 am rechner ;)

P.s. habs nu doch getest und da kommt bei mir raus ;)

P.P.S.

so würde die schleife aussehen um dieKilometer zu setzen
PHP:
foreach($autoliste as $auto) {
    
    // Die kilometer setzen
    switch($auto->getModell()) {
        case 'Golf': $auto->fahre(200); break;
        case '406': $auto->fahre(1250); break;
    }
    $ausgabe .= '<tr >';
    $ausgabe .= ' <td style="border-bottom: 1px solid black;">' . $auto->getMarke() . '</td>';
    $ausgabe .= ' <td style="border-bottom: 1px solid black;">' . $auto->getModell() . '</td>';
    $ausgabe .= ' <td style="text-align: right; border-bottom: 1px solid black;">' . $auto->getKilometer() . '</td>';
    $ausgabe .= '</tr>';
}

musst dann auf die anderen modelle erweitern, die schriftart muss noch gesetzt werden und wenn es schön haben willst tauscht du die style attribute durch class aus und erzeugst im header nen kurzes css ;)
 

Anhänge

  • ausgabe.png
    ausgabe.png
    8 KB · Aufrufe: 205
Zuletzt bearbeitet:
Danke vielmals, werde es mir wärend der Examen genauer anschauen, bzw. in ca. 2min :)
Bein und Halsbruch ^^
Notiz an mich, nächstes mal früher lernen und nicht wieder Last Minute wie gestern :daumen:



Edit: Boah eh, die Aufgaben sind ja ganz was anderes... habe noch knapp 1/3 Zeit, aber die schlimmste Aufgabe wurde gelöst :).
Jetzt muss ich ein Alphanumerisches Array mit 5 Feldern erstellen (Wie auch immer)...



Krieg ne Kriese, wie kriege ich folgende Satz heraus:


"Hallo Herr meier, wir werden alle Untelragen an meier@gmx.ch senden."

Einige Wörter müssen durch Elemente aus dem Array geholt werden.

Bin momentan soweit wie hier:

PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>HTML II - Test 1 - Aufgabe 2</title>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
  <link rel="stylesheet" type="text/css" href="stylesheet.css" />

  <?php
    $mein_array = array (
                        '0' => 'Herr',
						'1' => 'Hans',
						'2' => 'Meier',
						'3' => 'meier@gmx.ch',
			  			'4' => '4800');
     print_r (array_keys($mein_array));
  ?>

</head>
<body>

Hallo <?php $0 ?> <?php $2 ?>, wir werden alle Unterlagen an <?php $3 ?> senden.

</body>
</html>
 
Zuletzt bearbeitet:
PHP:
Hallo <?php echo $mein_array[0] . ' ' . $mein_array[1] . ' ' . $mein_array[2]; ?> , wir werden alle Unterlagen an <?php echo $mein_array[3]; ?> senden.

du bist im examen und surfst hier rum?
respekt xD

P.S.
das ist allerdings quick & dirty. bessere wäre nen parser, output buffer oder ein array mit eindeutigeren indizes und die ausgabe am besten komplett in einer variablen speichern statt so ein hick hack mit PHP tags im HTML, nach möglichkeit sollte das so gut es geht getrennt werden. Naja viel erfolg ;).
 
Zuletzt bearbeitet:
SUPER ^^

Danke dir vielmal :) Hast mir mein Hintern gerettet :)
Hoffe es funktioniert und der Prof gibt mir ne 6 :D bzw. bei euch in Deutschland wär das ne 1 :lol:


Betreff herum Surfen, im Java Unterricht Surfe ich auch rum, muss ständig Informationen zusammen suchen :D



Edit: Verdammt verdammt, ich bin so ein Idiot... anstatt meine Version zu nehmen in der Aufgabe 1 habe ich aus versehen die meines Freundins genommen (Gleiche Klasse). Da ich die beide zusammen im HTDOCS Ordner von XAMPP hatte...
Kommt ganz und gar nicht gut :( Betrifft aber nur die ersten beiden Aufgaben die zusammen nur 25 Punkte geben.
Beim Aufgabe 3 habe ich meine Lauffähige Version genommen (Max. 35 Punkte), hoffe der Prof merkt das nicht :(
 
Zuletzt bearbeitet:
in der uni hatten wir damals extra räume und nen extra login bekommen. die rechner waren komplett von der außenwelt abgeschnitten und nur eine minal linux distri lief da, deswegen meine irritation ^^

hoffe trotzdem das es schafst und im nachhinein nun auch verstehst ;)
 
Zurück
Oben