Bestellformular

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Bestellformular

    Hallo Leute!
    Ich heiße Michael und bin neu hier und natürlich auch noch recht neu im Bereich PHP. Ich mache gerade einen Fernlehrgang im Bereich Internetspezialist und arbeite zur Zeit mein Übungsheft durch. Bis dato hat alles problemlos funktioniert. Ich habe hier ein Beispielskript, dass die existierenden Pizzas aus der Datenbank liest und diese in Html tabellarisch darstellt. Es zeigt mir einen Fehler an und ich kann - obwohl ich die Zeile weiß - nicht finden. Ich hoffe mir kann hier jemand weiterhelfen.
    PHP-Code:
    <?php
    $host 
    "localhost";
    $user "root";
    $passwort "";
    $verbindung mysql_connect($host$user$passwort);
    if(
    $verbindung)
    {
        
    //echo "Verbindung hergestellt.<br>\n";
        // Jetzt kann eine Abfrage ausgeführt werden
    }
    else
    {
        echo 
    "Verbindung konnte nicht hergestellt werden!<br>\n";
        echo 
    mysql_errno() . ": " mysql_error() . "<br>\n";
    }
    mysql_select_db("pizzadb");
    $result mysql_query("SELECT Artikel_nr, Artikelname, Preis FROM
    artikel"
    ) or die ("ung&uuml;ltige Anweisung ");
    ?>

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 //EN">
    <html>
        <head>
            <title>Katalog Version 2</title>
            </head>
            <body>
            <h2>Willkommen beim Pizza-Bestell-Service</h2>
                <table width="280" border="1" cellpadding="0"
    cellspacing="2" bgcolor="#999999">
    <?php
    while($row mysql_fetch_object($result))
    {
    ?>
            <tr>
                <td width="30" bgcolor="#ffffff" align="center">
                    <?php echo "$row->Artikel_nr";  ?>
                </td>
                <td width="190"bgcolor="#ffffff" align="center">
                    <a href=artikel.php?artikelnummer=<?php echo "$row-
                        <Artikel_nr"
    ?></font></a>
                        <font size="-1" color="#008080"><?php echo "$row-
                        >Artikelname"
    ?></font></a>
                </td>
                <td width="60" bgcolor="#ffffff" align="center">
                    Preis&nbsp;<? echo "$row->Preis"; ?>
                </td>
            </tr>
    <?php
     
    }
     
    mysql_close();
     
    ?>
            </table>

            <h2>Pizza ausw&auml;hlen</h2>
            <form action="bestellkontrolle.php">
                <table border="0">
                    <tr>
                        <td style="width:300px;">
                            <table border="0" cellpadding="3">
                                <tr>
                                    <th>EinzelbestellNr.</th>
                                    <th>PizzaNr.</th>
                                </tr>
                                <tr>
                                    <td>1.</td>
                                    <td><input type="text"
    name="PizzaNr1" value="0"></input></td>
                                    <td><input type="text"
    name="Anzahl1" value="0"></input></td>
                                </tr>
                                <tr>
                                    <td>2.</td>
                                    <td><input type="text"
    name="PizzaNr2" value="0"></input></td>
                                    <td><input type="text"
    name="Anzahl2" value="0"></input></td>
                                </tr>
                                <tr>
                                    <td>3.</td>
                                    <td><input type="text"
    name="PizzaNr3" value="0"></input></td>
                                    <td><input type="text"
    name="Anzahl3" value="0"></input></td>
                                </tr>
                                <tr>
                                    <td>4.</td>
                                    <td><input type="text"
    name="PizzaNr4" value="0"></input></td>
                                    <td><input type="text"
    name="Anzahl4" value="0"></input></td>
                                </tr>
                                <tr>
                                    <td>5.</td>
                                    <td><input type="text"
    name="PizzaNr5" value="0"></input></td>
                                    <td><input type="text"
    name="Anzahl5" value="0"></input></td>
                                </tr>
                                <tr>
                                    <td>6.</td>
                                    <td><input type="text"
    name="PizzaNr6" value="0"></input></td>
                                    <td><input type="text"
    name="Anzahl6" value="0"></input></td>
                                </tr>
                            </table>
                        </td>
                        <td style="width:50px;"></td>
                        <td style="width:300px;">
                            <table border="0" cellpadding="3">
                                <tr>
                                    <th>Anschrift</th>
                                </tr>
                                <tr>
                                    <td>Vorname:</td>
                                    <td><input type="text"
    name="vorname" value="Vorname"
    onfocus="this.value=''"></input></td>
                                </tr>
                                <tr>
                                    <td>Nachname:</td>
                                    <td><input type="text"
    name="nachname" value="Nachname"
    onfocus="this.value=''"></input></td>
                                </tr>
                                <tr>
                                    <td>Adresse und
    Hausnummer:</td>
                                    <td><input type="text"
    name="adresse" value="Adresse + HausNr."
    onfocus="this.value=''"></input></td>
                                </tr>
                                <tr>
                                    <td>PLZ und
    Wohnort:</td>
                                    <td><input type="text"
    name="ort" value="PLZ + Wohnort"
    onfocus="this,value=''"></input></td>
                                </tr>
                            </table>
                        </td>
                    </tr>
                </table>
                <br>
                <input type="submit" name="Bestellung" value="Weiter
    mit Bestellung"></input>
                    <input type="reset" value="Abbrechen"></input>
              </form>
          </body>
    </html>

  • #2
    die Fehlermeldung möchtest du uns nicht verraten?

    nach kurzen drüberfliegen

    "$row-<Artikel_nr";

    soll wohl

    $row->Artikel_nr;

    heißen. Lass aber bitte die Anführungszeichen um Variablen weg, die haben keinen Sinn
    TBT

    Die zwei wichtigsten Regeln für eine berufliche Karriere:
    1. Verrate niemals alles was du weißt!


    PHP 2 AllPatrizier II Browsergame

    Kommentar


    • #3
      Zitat von TBT Beitrag anzeigen
      die Fehlermeldung möchtest du uns nicht verraten?

      nach kurzen drüberfliegen

      "$row-<Artikel_nr";

      soll wohl

      $row->Artikel_nr;

      heißen. Lass aber bitte die Anführungszeichen um Variablen weg, die haben keinen Sinn
      Die Fehlermeldung schaut dann so aus:
      Angehängte Dateien

      Kommentar


      • #4
        Zitat von Michael47 Beitrag anzeigen
        Die Fehlermeldung schaut dann so aus:
        Alles klar es funktioniert. Endlich. Ich war schon am Verzweifeln., aber ich versteh´trotzdem noch nicht, warum mir die Preise nicht angezeigt werden.

        Kommentar


        • #5
          Formular für Bestellkontrolle

          So. Das Bestellformular funktioniert, aber das dazugehörige Bestellkontroll-Formular hat noch irgendwo einen Haken. Der Fehler, der mir angezeigt wird ist dieser: Parse error: syntax error, unexpected end of file in C:\xampp\htdocs\bestellkontrolle.php on line 106

          Die Zeile 106 hab ich ja gefunden. Ist ja nicht schwer. Ist das Ende des Skripts. Nur steht da nichts mehr. Dann versteh ich die Fehlermeldung nicht, wenn da nichts mehr ist!
          Vielleicht hat von euch jemand eine Idee.
          Hier mal das Skript:
          PHP-Code:
          <?php
          //Formularvariablen einlesen
          $vorname $_RQUEST["vorname"];
          $nachname $_REQUEST["nachname"];
          $adresse $_REQUEST["adresse"];
          $ort $_REQUEST["ort"];
          //Bereite DB-Verbindung vor
          $host "localhost";
          $user "root";
          $passwort "";
          $verbindung mysql_connect($host$user$passwort);
          if(
          $verbindung)
          {
              
          // echo "Verbindung hergestellt.<br>\n";
              // Jetzt kann eine Abfrage ausgeführt werden
          }
          else
          {
              echo 
          "Verbindung konnte nicht hergestellt werden!<br>\n";
              echo 
          mysql_errno() . ": " mysql_error() . "<br>\n";
          }
          mysql_select_db("pizzadb");
          ?>
          <html>
          <head>
          <title>Bestell-Kontrolle</title></head>
          <body>
              <b>Liefer-Adresse:</b><br />
              <table border="0" bgcolor="#eeeeee">
                  <tr>
                      <td>Vorname:</td>
                      <td><?php echo $vornmame ?></td>
                  </tr>
                  <tr>
                      <td>Nachname:</td>
                      <td><?php echo $nachname ?></td>
                  </tr>
                  <tr>
                      <td>Adresse:</td>
                      <td><?php echo $adresse ?></td>
                  </tr>
                  <tr>
                      <td>Wohnort:</td>
                      <td><?php echo $ort ?></td>
                  </tr>
              </table>
              <hr>
              <?php $gesamt 0;
                    
          $pizza = array(); //Haelt die bestellten Pizza- Nummern
                    
          for ($i 0$i 6$i++) {
                        
          $pizza[$i] =null;
                        if (
          $_REQUEST["PizzaNr" . ($i 1)] != "")
                        {
                            
          $pizza[$i] = $_REQUEST["PizzaNr" . ($i 1)];
                        }
                    }
                    
          $anzahl arrray(); //Haelt die Anzahl der jeweiligen Pizzas
                    
          for ($i 0$i 6$i++) {
                        
          $anzahl[$i] = 0;
                        if (
          $_REQUEST["PizzaNr" . ($i 1)] > "0")
                          {
                              
          $anzahl [$i] = $_REQUEST["Anzahl". ($i 1)];
                          }
                    }
                    
          $artikelpreis = array(); //Haelt die Preise der Pizzas
                    
          $preis = array();        //Haelt den Gesamtpreis pro Pizza
                    // Initialisiere Arrays mit 0.
                    
          for ($i 0$i 6$i++) {
                        
          $artikelpreis[$i] =0;
                        
          $preis[$i] = 0;
                    }
                    
          //Hole Preis der jeweiligen Pizza und multipliziere mit
                    //der Anzahl, um den jeweiligen Gesamtpreis zu ermitteln.
                    
          for ($i 0$i 6$i++) {
                        if (
          $anzahl[$i] > 0) {
                            
          $SQLStr "SELECT Preis FROM artikel WHERE
                            Artikel_nr = " 
          $pizza[$i] . ";";
                            
          $result mysql_query($SQLStr) or die
                            (
          "Ung&uuml;ltige Anweisung ");

                            if (
          $result == null) { ?>
                            Result/RecordSet leer!
                            <? }
                            else {
                                while($row = mysql_fetch_object($result))
                                  {
                                      $artikelpreis[$i] = $row->Preis ;
                                  } // while (rs.next())
                                  //Hier wird der Gesamtpreis errechnet.
                                  $preis[$i]=$anzahl[$i]*$artikelpreis[$i];
                                  $gesamt += $preis[$i];

                                  //Es folgt die Ausgabe fuer den Besteller
                                  echo $anzahl[$i] . " mal PizzaNr. " .
                                  $pizza[$i] . " macht " . $preis[$i] ."
                                  Euro<br>";
                            } // else
                      } // if (anzahl1 > 0)
                  } // for (int i = 0; i < 6; i++) {
                  ?>
                  <hr>
                  Gesamtpreis: <b><?php echo $gesamt?> Euro inkl. MwST</b>
                  <?php mysql_close(); ?>
              </body>
          </html>

          Kommentar


          • #6
            Der Fehler tritt üblicherweise auf, wenn die Zahl der geschweiften Klammern nicht stimmt.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Zitat von wahsaga Beitrag anzeigen
              Der Fehler tritt üblicherweise auf, wenn die Zahl der geschweiften Klammern nicht stimmt.
              Ich hab da nochmal drüber geschaut und ich kann keinen Fehler finden.

              Kommentar


              • #8
                Du hast short_open_tag in der PHP-Konfiguration nicht aktiviert.

                - PHP: Description of core php.ini directives - Manual

                Aktiviere es (davon rate ich ab) oder ersetze <? durch <?php (dazu rate ich aus Kompatibilitätsgründen).

                Am Rande:

                - Die mysql-Erweiterung ist veraltet und sollte nicht mehr genutzt werden. Nutze mysqli oder pdo.
                - Der Code behandelt keine Kontextwechsel. http://wiki.selfhtml.org/wiki/PHP/An...Kontextwechsel
                Zuletzt geändert von mermshaus; 09.02.2016, 17:32.

                Kommentar


                • #9
                  Zitat von mermshaus Beitrag anzeigen
                  Du hast short_open_tag in der PHP-Konfiguration nicht aktiviert.

                  - PHP: Description of core php.ini directives - Manual

                  Aktiviere es (davon rate ich ab) oder ersetze <? durch <?php (dazu rate ich aus Kompatibilitätsgründen).

                  Am Rande:

                  - Die mysql-Erweiterung ist veraltet und sollte nicht mehr genutzt werden. Nutze mysqli oder pdo.
                  - Der Code behandelt keine Kontextwechsel. Programmiertechnik/Kontextwechsel ? SELFHTML-Wiki
                  Das <?php hab ich ja bei jedem Öffnen dabei! Ich weiß nicht. Ich kenn mich nicht mehr aus. Ich kann ändern, oder umstellen, es funktioniert überhaupt nicht.

                  Kommentar


                  • #10
                    Im geposteten Code (Beitrag #5) hast du das an einer Stelle nicht.

                    Ausschnitt:

                    Code:
                                      ("Ung&uuml;ltige Anweisung ");
                    
                                      if ($result == null) { ?>
                                      Result/RecordSet leer!
                    --->              <? }
                                      else {
                                          while($row = mysql_fetch_object($result))
                                            {
                                                $artikelpreis[$i] = $row->Preis ;
                                            } // while (rs.next())

                    Kommentar


                    • #11
                      Zitat von mermshaus Beitrag anzeigen
                      Im geposteten Code (Beitrag #5) hast du das an einer Stelle nicht.

                      Ausschnitt:

                      Code:
                                        ("Ung&uuml;ltige Anweisung ");
                      
                                        if ($result == null) { ?>
                                        Result/RecordSet leer!
                      --->              <? }
                                        else {
                                            while($row = mysql_fetch_object($result))
                                              {
                                                  $artikelpreis[$i] = $row->Preis ;
                                              } // while (rs.next())
                      Also nur bei <?php öffnen, oder auch beim Schließen?

                      Kommentar


                      • #12
                        Nur beim Öffnen.

                        <?php … ?>

                        Kommentar


                        • #13
                          Ok hab ich mir fast schon gedacht. Aber diese Fehler zeigts mir trotzdem noch an:
                          Angehängte Dateien

                          Kommentar


                          • #14
                            Die Fehlermeldungen sagen doch eh alles. Warum liest du sie nicht?

                            Du greifst auf Array-Indexe zu, die nicht existieren.

                            Außerdem heißt es array() und nicht arrray().

                            Kommentar

                            Lädt...
                            X