tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
JA
ANTWORTEN
21
ZUGRIFFE
732
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    dalion dalion ist offline Mitglied Bronze
    Registriert seit
    Jun 2011
    Beiträge
    35
    Hallo zusammen!

    Zuerst: Ich bin absoluter Anfänger.

    Ich lasse mehrere Datensatzblöcke aus einer mysql-Datenbank via echo-Funktion ausgeben. Dann soll der Nutzer sich einen Datensatzblock aussuchen und Detailinformationen bekommen.

    Hierzu soll eine der ausgegebenen Variablen (id_angebot) in das nächste Skript übernommen werden und dort als Suchkriterium für die dortige echo-Funktion verwendet werden.

    Also geht es darum eine echo-Ausgabe von ein Skript ins nächste Skript zu bekommen (vielleicht als Variable).


    angebotssuche.php:

    PHP-Code:
    <?php
    session_start
    ();
    include( 
    'navi.inc.php' );
    include( 
    'db_connect.inc.php' );


    $abfrage "SELECT * FROM angebote";
    $ergebnis db_query('db_boeker'$abfrage);

    while(
    $daten=mysql_fetch_array($ergebnis))
    {
    ?>
      ID: <?php echo "<option>".$daten['id_angebot']?>
      Von  <?php echo "<option>".$daten['startstadt']?>
      nach <?php echo "<option>".$daten['zielstadt']?>
      am   <?php echo "<option>".$daten['datum']?><a href="angebotanschauen.php"> Ansehen</a><br>
      <?php
    }

    ?>
    angeboteanschauen.php:

    PHP-Code:
    <?php
    session_start
    ();
    include( 
    'navi.inc.php' );
    include( 
    'db_connect.inc.php' );
    $_POST['id_angebot'] = $daten['id_angebot'];

    $abfrage "SELECT * FROM angebote Where id_angebot Like id_angebot";
    $ergebnis db_query('db_boeker'$abfrage);

    $daten=mysql_fetch_array($ergebnis)
    ?>
      ID: <?php echo "<option>".$daten['id_angebot']?><br>
      Anbieter: <?php echo "<option>".$daten['anbieter']?><br>
      Von <?php echo "<option>".$daten['startstadt']?><br>
      nach <?php echo "<option>".$daten['zielstadt']?><br>
      am <?php echo "<option>".$daten['datum']?><br>
      um <?php echo "<option>".$daten['startzeit']?><br>
      Anzahl an m&ouml;glichen Mitfahreren:  <?php echo "<option>".$daten['anzahl_mitfahrer']?><br>
      Fahrtkosten: <?php echo "<option>".$daten['fahrtkosten']?><br>
      Raucher-PKW?:   <?php echo "<option>".$daten['raucher']?><br>
      <a href="buchung.php"> Buchung</a>
      <?php

    ?>
    Könnt Ihr mir da bitte helfen?

    Danke im Voraus******
     

  2. #2
    Avatar von einfach nur crack
    einfach nur crack einfach nur crack ist offline mag Cookies & Kekse
    tutorials.de Premium-User
    Registriert seit
    May 2007
    Ort
    Dresden (Sachsen)
    Beiträge
    1.961
    Wah! Welch' höllische Schmerzen! Ich möchte nicht wissen, wie oft du dort ein Auswahlfeld öffnest, aber nie schließt! Dein Problem liegt nicht bei PHP, sondern daran, dass du nicht verstanden hast, wie Auswahlfelder in HTML funktionieren. Das fängt schon da an, dass du kein Formular definierst, geht weiter damit, dass du keine Auswahl definierst und endet frühestens damit, dass du deine Auswahlmöglichkeiten zwar mit dem entsprechenden Tag öffnest, aber nicht schließt! Außerdem weist du den Auswahlmöglichkeiten keinen Wert zu. Lies dir bitte erstmal das hier durch, bevor du weitere Fragen formulierst!
     
    Ich mag:
    • positive Bewertungen meiner Beiträge
    • ein Danke für meine hilfreichen Beiträge

    Dabei kann ich dir helfen: PHP --- Javascript --- Ruby --- Coffeescript --- CSS --- HTML --- Webtechnologien --- Shell --- UNIX

    ... noch was: falls du mit dem Thema hier fertig bist, dann kannst du es auch als erledigt markieren.

  3. #3
    dalion dalion ist offline Mitglied Bronze
    Registriert seit
    Jun 2011
    Beiträge
    35
    Wie gesagt... ich bin Anfänger, allerdings helfen mir deine Anmerkungen nicht weiter, da die Auswahlmöglichkeiten keinen Einfluss haben und somit überflüssig sind (hab sie gelöscht). Die Werte sind dynamisch und können von den Nutzern angelegt werden.

    Daher: Ein registrierter Nutzer kann eigene Angebote anlegen. Darum möchte ich das über "id_angebot" (autoincrement- Wert in mysql) lösen. Anhand diesem Wert (Abruf via echo) sollen die Angebote aus der DB abgerufen werden.

    Wenn ein Nutzer das Angebot in der Hauptübersicht (angebotssuche.php)
    interessant findet, kann er sich das jeweilige Angebot "ansehen" (angeboteanschauen.php). Hierzu sollen aus der "angebotssuche.php" der jeweilige echo-Wert "id_angebot" in die "angeboteanschauen.php" übernommen werden und als Wert für die dortige echo-Funktion dienen.

    IST-Zustand:
    In der "angebotssuche.php" gibt er mir der Reihe nach jeden DB-Eintrag aus (so wie gewollt) Aber in der "angeboteanschauen.php" gibt er mir immer nur den ersten DB-Eintrag aus. Egal bei welchem Angebot ich auf "ansehen" klicke.

    angebotssuche.php:

    PHP-Code:
    <?php
    session_start
    ();
    include( 
    'navi.inc.php' );
    include( 
    'db_connect.inc.php' );


    $abfrage "SELECT * FROM angebote";
    $ergebnis db_query('db_boeker'$abfrage);

    while(
    $daten=mysql_fetch_array($ergebnis))
    {
    ?>
      ID: <?php echo $daten['id_angebot']?>
      Von  <?php echo $daten['startstadt']?>
      nach <?php echo $daten['zielstadt']?>
      am   <?php echo $daten['datum']?><a href="angebotanschauen.php"> Ansehen</a><br>
      <?php
    }

    ?>
    angebotanschauen.php:

    PHP-Code:
    <?php
    session_start
    ();
    include( 
    'navi.inc.php' );
    include( 
    'db_connect.inc.php' );
    $_POST['id_angebot'] = $daten['id_angebot'];

    $abfrage "SELECT * FROM angebote Where id_angebot Like id_angebot";
    $ergebnis db_query('db_boeker'$abfrage);

    $daten=mysql_fetch_array($ergebnis)
    ?>
      ID: <?php echo $daten['id_angebot']?><br>
      Anbieter: <?php echo $daten['anbieter']?><br>
      Von <?php echo $daten['startstadt']?><br>
      nach <?php echo $daten['zielstadt']?><br>
      am <?php echo $daten['datum']?><br>
      um <?php echo $daten['startzeit']?><br>
      Anzahl an m&ouml;glichen Mitfahreren:  <?php echo $daten['anzahl_mitfahrer']?><br>
      Fahrtkosten: <?php echo $daten['fahrtkosten']?><br>
      Raucher-PKW?:   <?php echo $daten['raucher']?><br>
      <a href="buchung.php"> Buchung</a>
      <?php


    ?>
     

  4. #4
    threadi threadi ist offline Mitglied Brokat
    Registriert seit
    Dec 2006
    Ort
    Leipzig
    Beiträge
    478
    Ersetze

    PHP-Code:
     am   <?php echo $daten['datum']?><a href="angebotanschauen.php"> Ansehen</a><br>
    durch

    PHP-Code:
     am   <?php echo $daten['datum']?><a href="angebotanschauen.php?id_angebot=<?php echo $daten"id_angebot"?>"> Ansehen</a><br>
    und

    PHP-Code:
    $_POST['id_angebot'] = $daten['id_angebot'];

    $abfrage "SELECT * FROM angebote Where id_angebot Like id_angebot"
    durch

    PHP-Code:
    $id_angebot $_GET["id_angebot"];

    $abfrage "SELECT * FROM angebote Where id_angebot = '".mysql_escape_string($id_angebot)."'"
    Dadurch sollte zumindest erstmal der Klick auf den Detail-Link funktionieren. Wenn Du das hast, mach dir noch Gedanken zur Absicherung des letztgenannten Codes. So wie ich ihn dir geändert habe, könnte theoretisch jeder Besucher irgendeine ID oder auch gar nichts an das Script übergeben. Dadurch wäre theoretisch (im schlimmsten Fall) auch ein Eindringen in deinen Webspace möglich.

    Und die Lösung die ich dir hier beschrieben habe, geht davon aus, dass die nötigen Parameter per URL übergeben werden. Das geht wie oben beschrieben. Informiere dich also auch zu URL-Parametern, wie man diese setzt und wie man sie ausliest.
     

  5. #5
    dalion dalion ist offline Mitglied Bronze
    Registriert seit
    Jun 2011
    Beiträge
    35
    Hey danke für die konstruktive Hilfe!

    Leider gibt er mir bei deinem ersten Skript folgenden Fehler aus: Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ',' or ';'

    Ich habe es mal 1 zu 1 kopiert um es auszuprobieren (daher: ich habe nichts verändert). Sitze jetzt schon ne Stunde daran und mein ungeschultes Auge findet einfach den Fehler nicht.

    Hast Du eine Idee?
     

  6. #6
    Avatar von Martin_N
    Martin_N Martin_N ist offline wissensdurstig
    Registriert seit
    Jun 2011
    Beiträge
    24
    Wenn man Variablen mit einem String verbinden möchte, muss man einen Punkt verwenden.
    Des weiteren fehlt ein Semikolon bei der ersten Ausgabe.

    ERSETZE:
    PHP-Code:
     am   <?php echo $daten['datum']?><a href="angebotanschauen.php?id_angebot=<?php echo $daten"id_angebot"?>"> Ansehen</a><br>
    DURCH:
    PHP-Code:
     am   <?php echo $daten['datum'];?><a href="angebotanschauen.php?id_angebot=<?php echo $daten."id_angebot"?>"> Ansehen</a><br>
     
    Es liegt nicht an anderen Dinge zu verändern... Es liegt an einem selbst!
    Bei fehlern meinerseits bitte ich um Korrektur oder Hinweis. :)
    _____________________________________
    mfg
    Martin

  7. #7
    Avatar von saftmeister
    saftmeister saftmeister ist offline Der Saft sei mit dir
    tutorials.de Premium-User
    Registriert seit
    May 2006
    Ort
    There is no place like 127.0.0.1
    Beiträge
    3.520
    In der angebotanschauen.php ist auch noch ein Syntax-Fehler:

    Code php:
    1
    
    $daten=mysql_fetch_array($ergebnis)

    Am Ende fehlt das Semikolon.
     
    Grüße
    --
    Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)

  8. #8
    dalion dalion ist offline Mitglied Bronze
    Registriert seit
    Jun 2011
    Beiträge
    35
    Sooo... habe alles korrigiert. Allerding gibt er nun gar nichts mehr aus. Bedeutet: Er zeigt zwar die Platzhalter an (Anbieter:, startstadt:, Zielstadt:, usw.) an, aber gibt keine Datenbankausgabe. Meldet aber auch keinen anderen Fehler.

    Hier nochmal die beiden Skripte:

    angebotssuche.php:

    PHP-Code:
    <?php
    session_start
    ();
    include( 
    'navi.inc.php' );
    include( 
    'db_connect.inc.php' );

    $abfrage "SELECT * FROM angebote";
    $ergebnis db_query('db_boeker'$abfrage);

    while(
    $daten=mysql_fetch_array($ergebnis))
    {
    ?>
      ID: <?php echo $daten['id_angebot']?>
      Von  <?php echo $daten['startstadt']?>
      nach <?php echo $daten['zielstadt']?>
       am   <?php echo $daten['datum'];?><a href="angebotanschauen.php?id_angebot=<?php echo $daten.'id_angebot'?>"> Ansehen</a><br>

      <?php
    }

    ?>
    angebotanschauen.php:

    PHP-Code:
    <?php
    session_start
    ();
    include( 
    'navi.inc.php' );
    include( 
    'db_connect.inc.php' );

    $id_angebot $_GET['id_angebot'];

    $abfrage "SELECT * FROM angebote Where id_angebot = '".mysql_escape_string($id_angebot)."'";
    $ergebnis db_query('db_boeker'$abfrage);

    $daten=mysql_fetch_array($ergebnis);
    ?>
      ID: <?php echo $daten['id_angebot'?><br>
      Anbieter: <?php echo $daten['anbieter']?><br>
      Von <?php echo $daten['startstadt']?><br>
      nach <?php echo $daten['zielstadt']?><br>
      am <?php echo $daten['datum']?><br>
      um <?php echo $daten['startzeit']?><br>
      Anzahl an m&ouml;glichen Mitfahreren:  <?php echo $daten['anzahl_mitfahrer']?><br>
      Fahrtkosten: <?php echo $daten['fahrtkosten']?><br>
      Raucher-PKW?:   <?php echo $daten['raucher']?><br>
      <a href="buchung.php"> Buchung</a>
      <?php




    ?>
    Ich verzweifle hier langsam. Danke für Eure Mühen!
     

  9. #9
    Avatar von saftmeister
    saftmeister saftmeister ist offline Der Saft sei mit dir
    tutorials.de Premium-User
    Registriert seit
    May 2006
    Ort
    There is no place like 127.0.0.1
    Beiträge
    3.520
    Zeig mal die Funktion db_query(), also den Sourcecode davon. Ach: schreib diese zwei Zeilen mal an den Anfang der Scripte:

    Code php:
    1
    2
    
    error_reporting(E_ALL|E_STRICT);
    ini_set('display_errors', 1);
     
    Grüße
    --
    Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)

  10. #10
    dalion dalion ist offline Mitglied Bronze
    Registriert seit
    Jun 2011
    Beiträge
    35
    Habe die beiden Zeilen reinkopiert... er spukt keine weitere Meldung aus.

    Beispiel:
    angebotssuche.php:

    PHP-Code:
    <?php
    error_reporting
    (E_ALL|E_STRICT);
    ini_set('display_errors'1);
    session_start();
    include( 
    'navi.inc.php' );
    include( 
    'db_connect.inc.php' );

    $abfrage "SELECT * FROM angebote";
    $ergebnis db_query('db_boeker'$abfrage);

    while(
    $daten=mysql_fetch_array($ergebnis))
    {
    ?>
      ID: <?php echo $daten['id_angebot']?>
      Von  <?php echo $daten['startstadt']?>
      nach <?php echo $daten['zielstadt']?>
       am   <?php echo $daten['datum'];?><a href="angebotanschauen.php?id_angebot=<?php echo $daten.'id_angebot'?>"> Ansehen</a><br>

      <?php
    }

    ?>
    Wie komme ich sonst an den Source-Code?

    Grüße
     

  11. #11
    threadi threadi ist offline Mitglied Brokat
    Registriert seit
    Dec 2006
    Ort
    Leipzig
    Beiträge
    478
    db_query() ist keine von php vorgegebene Funktion. Die muss irgendwo in deinen Dateien deklariert werden. Wenn du alles selbst geschrieben hast, solltest Du sie eigentlich finden können.
     

  12. #12
    Avatar von saftmeister
    saftmeister saftmeister ist offline Der Saft sei mit dir
    tutorials.de Premium-User
    Registriert seit
    May 2006
    Ort
    There is no place like 127.0.0.1
    Beiträge
    3.520
    Vermutlich ist die Funktion in der db_connect.inc.php definiert. Schau dort einfach mal in den Sourcecode und suche nach db_query. Dann postest du den Sourcecode.
     
    Grüße
    --
    Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)

  13. #13
    dalion dalion ist offline Mitglied Bronze
    Registriert seit
    Jun 2011
    Beiträge
    35
    Guten Morgen!

    Hier meine db.connect.inc.php (wurde uns von unserem Prof gestellt):

    PHP-Code:
    <?php

    /**
     * Fachhochschule Erfurt
     *
     * include_datei zur Abfrage einer Datenbank
     *
     * @author Prof. Dr.-Ing. Dieter Huber
     * @copyright 2009
     */

    //----------------------------------------------------------

    // Daten des Servers:
    $dbhost_ip 'localhost';    //Hostname
    $dbuser    'root';         //Benutzer
    $dbpw      '';             //Passwort
    $dbname    'db_name';    //Datenbankname

    //----------------------------------------------------------
    // Funktion Datenbankabfrage
      
    function db_query$dbname$sql )
      {
        global 
    $dbhost_ip$dbuser$dbpw;

        
    // Verbindung zum DB-Host herstellen
        
    $verbindung = @mysql_connect$dbhost_ip$dbuser$dbpw )
             or die (
    'Verbindung zum Datenbank-Rechner (IP-Adresse '.$dbhost_ip.')
                      konnte nicht hergestellt werden!<br />Fehlertext: '
                     
    .mysql_error());

        
    // auswählen der Datenbank
        
    mysql_select_db$dbname$verbindung );

        
    // ausführen einer SQL-Anfrage
        
    $ergebnis mysql_query$sql );

        
    // Datenbankverbindung schließen
        
    mysql_close$verbindung );

        
    // Rückgabe des Ergebnisses
        
    return( $ergebnis );
      }
    ?>
     

  14. #14
    Avatar von saftmeister
    saftmeister saftmeister ist offline Der Saft sei mit dir
    tutorials.de Premium-User
    Registriert seit
    May 2006
    Ort
    There is no place like 127.0.0.1
    Beiträge
    3.520
    Das sollte man so schnell wie möglich umbauen, ist total inperformant. Ok, aber erstmal zum Problem:

    Bau mal diese Zeile um:

    Code php:
    1
    2
    
        // ausführen einer SQL-Anfrage
        $ergebnis = mysql_query( $sql );
    zu

    Code php:
    1
    2
    
        // ausführen einer SQL-Anfrage
        $ergebnis = mysql_query( $sql ) or die("Fehler: " . mysql_error() . "<br/>SQL = $sql");

    EDIT: Was heute als Professor for Ing. alles zugelassen wird, ne ne...
    Geändert von saftmeister (20.06.11 um 08:53 Uhr)
     
    Grüße
    --
    Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)

  15. #15
    dalion dalion ist offline Mitglied Bronze
    Registriert seit
    Jun 2011
    Beiträge
    35
    Habe es nun ersetzt. Allerdings gibt er mir immernoch keine Fehlermeldung aus.
     

Ähnliche Themen

  1. Antworten: 19
    Letzter Beitrag: 06.08.10, 15:23
  2. Problem mit Ausgabe in Echo
    Von mR.fLopPy im Forum PHP
    Antworten: 6
    Letzter Beitrag: 16.07.09, 10:49
  3. Antworten: 16
    Letzter Beitrag: 25.11.04, 19:10
  4. Echo zur Ausgabe der Website?
    Von sh0x im Forum PHP
    Antworten: 5
    Letzter Beitrag: 27.10.04, 10:41
  5. Image ausgabe mit echo ?
    Von User Maik im Forum PHP
    Antworten: 4
    Letzter Beitrag: 19.03.04, 14:41

Stichworte