Notfall!! Brauche dringend Hilfe, hab ein Brett vor dem Kopf

Fragen zu PHP.
Fragen zu we:Tags bitte im Forum webEdition Templates erstellen (we:Tags) posten.
berthas

Notfall!! Brauche dringend Hilfe, hab ein Brett vor dem Kopf

Beitragvon berthas » Mo 11. Jan 2010, 12:19

Also ich habe jetzt die Zeile eingefügt mit dem Erfolg, das zwar was angezeigt wird, allerdings
immer der selbe Datensatz! WIESO??? Die richtige ID wird laut Browser aber übergeben, zumindest
laut Adresszeile.

Bitte noch einmal ansehen, stehe wirklich total auf dem Schlauch!

Um es eventuell etwas genauer einzugrenzen nochmal eine Kurzerklärung:

Es gibt eine Seiten Namens hunde.php in dieser wird die Auflistung aller Hunde angezeigt.
Die tmpl-Vorlage beinhaltet folgenden Quellcode:

Code: Alles auswählen

<?php
$query ="
   SELECT *
   FROM tblObject_1
   WHERE (
      OF_Published != '0'
      AND meta_Deaktivierungsgrund = ''
      AND meta_Tierart = 'hund'
      AND meta_Heimstatus = 'im Heim'
      )
   ORDER BY input_Aufnahmedatum DESC
   ";
$liste = mysql_query($query);
?>

<?php
while ($eintrag = mysql_fetch_array($liste)) {
   ?>
   <div id="tiere">
          <p class="tiername"><?php echo $eintrag["OF_Text"]; ?> <?php if ($eintrag["input_Name"] != "") { echo " - "; echo $eintrag["input_Name"]; } ?></p>
      <?php
      if ($eintrag["text_Beschreibung"]!= "") {
         ?>
               <a href="/inhalte/vermittelt/hund.html?id=<?php echo $eintrag["ID"]; ?>">mehr zu diesem Tier</a>
         <?php
      }
      ?>
   </div>   
   <?php
}
?>
Die Verlinkung am Ende des Quellcodes führt zu einer ganz neuen Seite.
Diese Seite heißt hund.html und als tmpl-Vorlage wird folgender Quellcode geladen.

Code: Alles auswählen

<?php
$id = (int) $_GET["ID"];

if ($id == "") {
   $eintrag = mysql_query("
      SELECT *
      FROM tblObject_1
      WHERE (
         OF_Published != '0'
         AND meta_Deaktivierungsgrund = ''
         AND meta_Tierart = 'hund'
         AND meta_Heimstatus = 'im Heim'
      )
      ORDER BY input_Aufnahmedatum DESC
      ");
} else {
   $eintrag = mysql_query("
      SELECT *
      FROM tblObject_1
      WHERE (
         ID = '".$id."'
      )
   ");
}
if (mysql_num_rows($eintrag) > 0) {
   $eintrag = mysql_fetch_array($eintrag);
   ?>
   <?php echo $eintrag["ID"]; ?>
   <?php
}
?>

Es wird immer nur der Hund angezeigt mit der ID=14 alle anderen nicht.
Fährt man mit der Maus über den jeweiligen Link, wird aber die jeweilige ID des Tieres angezeigt, aber auf
der neuen Seite erscheint trotzdem ID=14!!!!

WORAN LIEGT DAS????

DANKE!
Bin irgendwie ziemlich vor die Wand gesaust und sehe vor lauter geht nicht die Lösung nicht! Sitze schon seit Tagen daran.
Zuletzt geändert von berthas am Mo 11. Jan 2010, 22:14, insgesamt 1-mal geändert.

MarS
Senior Member
Beiträge: 602
Registriert: Mo 2. Mai 2005, 11:30
Wohnort: Kiel
Kontaktdaten:

Re: Notfall!! Brauche dringend Hilfe, hab ein Brett vor dem Kopf

Beitragvon MarS » Mo 11. Jan 2010, 14:27

$id gibt es doch garnicht - oder wird die weiter oben irgendwo gesetzt?

Code: Alles auswählen

<?php
$id = (int) $_GET["id"];

if ($id == 0) {
    $eintrag = mysql_query("
    SELECT *
      FROM tblObject_1
     WHERE OF_Published > 0
       AND meta_Deaktivierungsgrund = ''
     ORDER BY input_Eintragsdatum DESC
    ");
} else {
    $eintrag = mysql_query("
    SELECT *
      FROM tblObject_1
     WHERE ID = " . $id
    );
}
if (mysql_num_rows($eintrag) > 0) {
    $eintrag = mysql_fetch_array($eintrag);
}
 

berthas

Re: Notfall!! Brauche dringend Hilfe, hab ein Brett vor dem Kopf

Beitragvon berthas » Mo 11. Jan 2010, 20:20

Also hab jetzt die zeile eingefügt mit dem Erfolg, das zwar was angezeigt wird, allerdings
immer der selbe Datensatz! WIESO??? Die richtige ID wird laut Browser aber übergeben, zumindest
laut Adresszeile.


Bitte noch einmal ansehen, stehe wirklich total auf dem Schlauch!


Um es eventuell etwas genauer einzugrenzen nochmal eine Kurzerklärung:

EEs gibt eine Seiten Namens hunde.php in dieser wird die Auflistung aller Hunde angezeigt.
Die tmpl-Vorlage beinhaltet folgenden Quellcode:

Code: Alles auswählen

<?php
$query ="
	SELECT *
	FROM tblObject_1
	WHERE (
		OF_Published != '0'
		AND meta_Deaktivierungsgrund = ''
		AND meta_Tierart = 'hund'
		AND meta_Heimstatus = 'im Heim'
		)
	ORDER BY input_Aufnahmedatum DESC
	";
$liste = mysql_query($query);
?>

<?php
while ($eintrag = mysql_fetch_array($liste)) {
	?>
	<div id="tiere">
    		<p class="tiername"><?php echo $eintrag["OF_Text"]; ?> <?php if ($eintrag["input_Name"] != "") { echo " - "; echo $eintrag["input_Name"]; } ?></p>
		<?php
		if ($eintrag["text_Beschreibung"]!= "") {
			?>
	      		<a href="/inhalte/vermittelt/hund.html?id=<?php echo $eintrag["ID"]; ?>">mehr zu diesem Tier</a>
			<?php
		}
		?>
	</div>	
	<?php
}
?>

Die Verlinkung am Ende des Quellcodes führt zu einer ganz neuen Seite.
Diese Seite heißt hund.html und als tmpl-Vorlage wird folgender Quellcode geladen.

Code: Alles auswählen

<?php
$id = (int) $_GET["ID"];

if ($id == "") {
	$eintrag = mysql_query("
		SELECT *
		FROM tblObject_1
		WHERE (
			OF_Published != '0'
			AND meta_Deaktivierungsgrund = ''
			AND meta_Tierart = 'hund'
			AND meta_Heimstatus = 'im Heim'
		)
		ORDER BY input_Aufnahmedatum DESC
		");
} else {
	$eintrag = mysql_query("
		SELECT *
		FROM tblObject_1
		WHERE (
			ID = '".$id."'
		)
	");
}
if (mysql_num_rows($eintrag) > 0) {
	$eintrag = mysql_fetch_array($eintrag);
	?>
	<?php echo $eintrag["ID"]; ?>
	<?php
}
?>

Es wird immer nur der Hund angezeigt mit der ID=14 alle anderen nicht.
Fährt man mit der Maus über den jeweiligen Link, wird aber die jeweilige ID des Tieres angezeigt, aber auf
der neuen Seite erscheint trotzdem ID=14!!!!


WORAN LIEGT DAS????


DANKE!
Bin irgendwie ziemlich vor die Wand gesaust und sehe vor lauter geht nicht die Lösung nicht! Sitze schon seit
Tagen daran.

e_herrmann
Senior Member
Beiträge: 1319
Registriert: Do 22. Mai 2003, 23:25

Re: Notfall!! Brauche dringend Hilfe, hab ein Brett vor dem Kopf

Beitragvon e_herrmann » Di 12. Jan 2010, 10:21

Hi,
liegt es vielleicht daran, dass hunde.html nicht dynamisch ist und die übergebenen Parameter nicht ausgewertet werden?
hunde.html und hunde.php zu verwenden finde ich etwas unglücklich/verwirrend.
Grüße Elko
Elko Herrmann
komplexx | internet.fotografie
web: http://www.komplexx.de

netzlum
webEdition Partner
webEdition Partner
Beiträge: 330
Registriert: Mi 28. Apr 2004, 00:27
Wohnort: Münster
Kontaktdaten:

Re: Notfall!! Brauche dringend Hilfe, hab ein Brett vor dem Kopf

Beitragvon netzlum » Di 12. Jan 2010, 10:54

Hi, oder, wenn das Dokument doch dynamisch ist, liegt es daran, dass $eintrag die Ergebnisliste ist und du bei:

Code: Alles auswählen

 if (mysql_num_rows($eintrag) > 0) {
   $eintrag = mysql_fetch_array($eintrag);
    echo $eintrag["ID"]; 
   
}
die Ergebnisliste mit dem Eintrag überschreibst, der an der ersten Stelle (Datensatznummer 0) ist (Vielleicht der Eintrag mit der ID 14?)?

Ludger

berthas

Re: Notfall!! Brauche dringend Hilfe, hab ein Brett vor dem Kopf

Beitragvon berthas » Di 12. Jan 2010, 13:12

Kann mich mal jemand hauen? So blöd und blind kann doch ein Mensch nicht sein!

VIELEN VIELEN DANK FÜR DIE DENKANSTÖSSE!!
Ich habe den Fehler gefunden!
Ich habe vor lauter "keine Ahnung wo der Fehler liegt" sowohl eine .html als auch eine .php angelegt.
Meine .tmpl ging auf die .html aber als Link war aber die .php verlinkt. Das kann nicht funktionieren!!!! :roll: :) :lol:
Und dann bin ich noch zu blöd um id richtig zu schreiben; in der Datenbank in Großbuchstaben geschrieben und nicht klein!!!!

Und da sind wir wieder mal bei dem Thema, der Computer ist nur so blöd wie der der vor ihm sitzt!!

Nochmals an alle vielen vielen Dank.

Grüße
berthas

e_herrmann hat geschrieben:Hi,
liegt es vielleicht daran, dass hunde.html nicht dynamisch ist und die übergebenen Parameter nicht ausgewertet werden?
hunde.html und hunde.php zu verwenden finde ich etwas unglücklich/verwirrend.
Grüße Elko


Zurück zu „PHP“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 10 Gäste