echo-Ausgabe in variable ausgeben lassen

dalion

Mitglied
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:
<?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:
<?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******
 
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!
 
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:
<?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:
<?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


?>
 
Ersetze

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

durch

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

und

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

$abfrage = "SELECT * FROM angebote Where id_angebot Like id_angebot";

durch

PHP:
$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.
 
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?
 
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:
 am   <?php echo $daten['datum']?><a href="angebotanschauen.php?id_angebot=<?php echo $daten"id_angebot"; ?>"> Ansehen</a><br>

DURCH:
PHP:
 am   <?php echo $daten['datum'];?><a href="angebotanschauen.php?id_angebot=<?php echo $daten."id_angebot"; ?>"> Ansehen</a><br>
 
In der angebotanschauen.php ist auch noch ein Syntax-Fehler:

PHP:
$daten=mysql_fetch_array($ergebnis)

Am Ende fehlt das Semikolon.
 
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:
<?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:
<?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!
 
Zeig mal die Funktion db_query(), also den Sourcecode davon. Ach: schreib diese zwei Zeilen mal an den Anfang der Scripte:

PHP:
error_reporting(E_ALL|E_STRICT);
ini_set('display_errors', 1);
 
Habe die beiden Zeilen reinkopiert... er spukt keine weitere Meldung aus.

Beispiel:
angebotssuche.php:

PHP:
<?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
 
Zurück