datenbank ausleser fehler :(

Hast du es mal in einer Datenbank ausprobiert? Also den Select dort laufen lassen? Was steht in $angebotsnummer drin? Fängst du diese auch wirklich mit einem GET auf und speicherst sie dann in diese Variable?
 
ja schon denn eine andere variante funtionier ja ganz einfach und so schaut der andere aus
PHP:
<?php 
mysql_select_db("auftrag");
$SQL_statement=sprintf("SELECT * FROM auftrag WHERE user_id = %d AND (unterschrieben='J') ORDER BY erteilungsdatum DESC;", $_SESSION['user_id']);
$resultset=mysql_query($SQL_statement);
while($data=mysql_fetch_array($resultset)) {
?><?php echo $data['erteilungsdatum']. "<br>" ; ?>

und bei detais

PHP:
<?php 
mysql_select_db("auftrag");
$SQL_statement=sprintf("SELECT * FROM auftrag WHERE user_id = %d and auftragsnummer=%d ORDER BY erteilungsdatum DESC;", $_SESSION['user_id'], $_GET['auftragsnummer']);
$resultset=mysql_query($SQL_statement) or die(mysql_error());
$data=mysql_fetch_array($resultset);
if($data) {
?>

wieso funtioniert das und das was ich mit die angebote machen will nicht :(
 
Ich würde dir den Tip geben mal über alle Variablen rüber zu schauen und den Quellcode ganz in Ruhe zu analysieren. Fehler schleichen sich schnell ein. Ich habe auch mal 2 Stunden in einem Code gesucht und letztendlich hieß eine Variable nicht exakt so wie die, die gefüllt wird. Analysiere ob mit GET auch wirklich was mit gereicht wird (In der URL). Das Problem bzw. der Code ist ja doch recht überschaubar. Einen Fehler findet man sicherlich immer.
 
Ich habe eine Frage: Wo wird $angebotsnummer mit einem Wert gefüllt? Hier im SELECT wird $angebotsnummer als WHERE-Kondition verwendet:

PHP:
// Die GET-Variable heißt "angebot" aber hier wird plötzlich mit $angebotsnummer gearbeitet.

$SQL_statement = "SELECT * FROM angebote WHERE angebotsnummer='$angebotsnummer'";

Kann es sein, das du den Teil von comfreak übernommen hast? Also das hier:

PHP:
$angebotsnummer = mysql_real_escape_string($_GET["angnr"]);

Das wäre falsch, denn der GET-Parameter lautet, wie schon im Kommentar angedeutet, "angebot" und nicht "angnr".
 
Ich denke mal das es gefährlich ist, sich immer wieder Codeschnipseln von anderen in sein Script zu kopieren. Dann passiert eben schnell sowas, was auch Saftmeister bereits beschrieben hat. Eine Variable heißt dann mal nicht so wie erwartet und schon zieht das Folgefehler mit sich. Daher sollte man einen Entwickertest über das gesamte Programm machen und nicht nur den Teil, der sich gerade geändert hat.
 
die angebots nummer von von der angebote.php seite

und so schaut die seite aus
PHP:
<?php 
mysql_select_db("angebote");
$SQL_statement="SELECT * FROM angebote";
$resultset=mysql_query($SQL_statement);
while($data=mysql_fetch_array($resultset)) {
?>
  <?php echo '<a href="angedetails.php?angebot=' . $data['angebotsnummer'] . '"><img src="angebote/produkt.gif" alt="" width="257" height="118"></a><br><br>'  ?>
  <?php } ?>

und die angebotsnummer wird korrekt in der url angebegen
 
die angebots nummer von von der angebote.php seite

und so schaut die seite aus

und die angebotsnummer wird korrekt in der url angebegen

Das ist klar, aber in der angedetails.php muss diese Angebotsnummer ja wieder eingelesen werden, damit du über die Angebotsnummer die Details des Angebots lesen kannst. Soweit klar? Gut.

Die Frage lautet jetzt: Wo wird in der angedetails.php $angebotsnummer mit einem Wert gefüllt? Sprich wo steht eine Zeile, in der

PHP:
$angebotsnummer = ....

steht und was steht da exakt?
 
Hmpf, also alles, was du über eine URL an ein anderes Script übergibst, steht in dem anderen Script in der Superglobalen $_GET. Beispiel (nicht irgendwo hin kopieren, lesen und verstehen):

angebot.php
PHP:
// Wir geben das HTML für einen Link aus. Der sieht dann ungefähr so aus:
// <a href="angedetails.php?angebot=12345">Angebotsdetails</a>
echo '<a href="angedetails.php?angebot=' . $data['angebotsnummer']. '">Angebotsdetails</a>';

Dann muss die angedetails.php folgende Zeile enthalten, um auf den Wert 12345 zugreifen zu können:

PHP:
// Nur Testweise mal die Angebotsnummer ausgeben:
echo $_GET['angebot'];

Wenn du jetzt fälschlicherweise einfach folgendes machst:

PHP:
// Nur Testweise mal die Angebotsnummer ausgeben:
echo $angebotsnummer;

wirst du keine Ausgabe bekommen. Denn die Variable $angebotsnummer wurde nirgends mit einem Wert gefüllt. Richtigerweise wäre folgendes (immer noch angedetails.php):

PHP:
$angebotsnummer = $_GET['angebot'];
// Nur Testweise mal die Angebotsnummer ausgeben:
echo $angebotsnummer;

Meine Vermutung lautet, das du entweder

- $_GET überhaupt nicht verwendest oder
- auf das falsche Feld in $_GET zugreifst.

Wenn du den Code von comfreak eins zu eins übernommen hast, ist klar, was der Fehler ist. Er hat folgendes geschrieben (nur noch mal zu Erinnerung):

PHP:
$angebotsnummer = mysql_real_escape_string($_GET["angnr"]);

Er geht also davon aus, das in deinem Link in angebot.php das Wort "angnr" und nicht "angebot" verwendet wird. Da du aber das Wort "angebot" verwendest, müsste der Code ungefähr so aussehen:

PHP:
$angebotsnummer = mysql_real_escape_string($_GET["angebot"]);

Ich hoffe, ich habe mich verständlich ausgedrückt.
 
Zuletzt bearbeitet:
Zurück