ERLEDIGT
JA
JA
ANTWORTEN
21
21
ZUGRIFFE
732
732
EMPFEHLEN
-
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:
angeboteanschauen.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
}
?>
Könnt Ihr mir da bitte helfen?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ö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
?>
Danke im Voraus******
-
19.06.11 15:57 #2
- 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.
-
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:
angebotanschauen.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
}
?>
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ö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
durchPHP-Code:am <?php echo $daten['datum']?><a href="angebotanschauen.php"> Ansehen</a><br>
undPHP-Code:am <?php echo $daten['datum']?><a href="angebotanschauen.php?id_angebot=<?php echo $daten"id_angebot"; ?>"> Ansehen</a><br>
durchPHP-Code:$_POST['id_angebot'] = $daten['id_angebot'];
$abfrage = "SELECT * FROM angebote Where id_angebot Like 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.PHP-Code:$id_angebot = $_GET["id_angebot"];
$abfrage = "SELECT * FROM angebote Where id_angebot = '".mysql_escape_string($id_angebot)."'";
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:
DURCH:PHP-Code:am <?php echo $daten['datum']?><a href="angebotanschauen.php?id_angebot=<?php echo $daten"id_angebot"; ?>"> Ansehen</a><br>
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
-
19.06.11 19:49 #7
- 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 ;-)
-
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:
angebotanschauen.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
}
?>
Ich verzweifle hier langsam. Danke für Eure Mühen!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ö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
?>
-
19.06.11 22:16 #9
- 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 ;-)
-
Habe die beiden Zeilen reinkopiert... er spukt keine weitere Meldung aus.
Beispiel:
angebotssuche.php:
Wie komme ich sonst an den Source-Code?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
}
?>
Grüße
-
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.
-
20.06.11 08:40 #12
- 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 ;-)
-
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 );
}
?>
-
20.06.11 08:50 #14
- 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:
zuCode php:1 2
// ausführen einer SQL-Anfrage $ergebnis = mysql_query( $sql );
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 ;-)
-
Habe es nun ersetzt. Allerdings gibt er mir immernoch keine Fehlermeldung aus.
Ähnliche Themen
-
die echo ausgabe in einem frame,div,.. anzeigen lassen
Von marcey im Forum PHPAntworten: 19Letzter Beitrag: 06.08.10, 15:23 -
Problem mit Ausgabe in Echo
Von mR.fLopPy im Forum PHPAntworten: 6Letzter Beitrag: 16.07.09, 10:49 -
mit echo $variable einen Text schreiben lassen?
Von online im Forum PHPAntworten: 16Letzter Beitrag: 25.11.04, 19:10 -
Echo zur Ausgabe der Website?
Von sh0x im Forum PHPAntworten: 5Letzter Beitrag: 27.10.04, 10:41 -
Image ausgabe mit echo ?
Von User Maik im Forum PHPAntworten: 4Letzter Beitrag: 19.03.04, 14:41





Zitieren

Login






[PHP][Snippet] Array zu XML konvertieren