Zuerst echo $variable und dann definieren?

x3008x

Mitglied
Guten Abend Jungs und Mädels,
bin immer noch schwer mit PHP und SQL am arbeiten...
bin auch schon rechts gut (hab bisher alles geschafft was ich mir vorgenommen habe).
Nun habe ich mich aber mal gefragt ob bzw. wie es geht dass man zuerst ein echo macht, die variable aber erst später in der datei definiert....
Bsp.:
PHP:
<?
echo $test;
$test = "blah";
?>

Geht das irgendwie? Weil so wäre es um einiges einfacher, weil ich habe mehrere meldungen von einem formular (fehler, usw.) diese sollen immer ganz oben angezeigt werden, deswegen wäre es am einfachsten wenn oben stände
PHP:
echo $meldung
und die meldung dann halt später je nach fehler definiert wird.

Hoffe das ist nicht zu viel verlangt :)
Ein klares Nein würde selbstverständlich auch reichen wenns nicht geht...

Ich danke euch!

MfG
x3008x
 
Nein ... leider

ich werfe meine fehler immer in ein array und den content in einen String

gruß

kato

PHP:
$error[] = "fehler";

$content = "header";

$error[] = "fehler2";

$content .= "body";

foreach($error => $errorline){

echo $errorline;
}

echo $content;
 
Hallo,
schade dass es nicht geht, aber danke für die schnelle Antwort!
Ich denke mal ich mache es weiterhin so dass ich die definition dann halt möglichst nach oben setze... ist zwar meistens kompliziert weil man ja manchmal sachen braucht die später definiert werden aber irgendwie mogel ich mich da immer durch^^

hab mal probiert alle echos durch variablen zu ersetzen und dann am ende alle variablen halt wiedergeben... aber das problem ist wenn ich zb. recht weit oben eine variable im while habe kann ich diese nicht wiedergeben... dann wird nur ein wert statt allen angezeigt...
da ich nicht soo die ahnung von php/sql habe kann ich mich nicht so gut ausdrücken.... vllt. ein Bsp.:
statt
PHP:
$LD_1 = mysql_query("SELECT * FROM users WHERE status = '1'") or die(mysql_error());
while($LD1 = mysql_fetch_array($LD_1)) {
$username = $LD1['name'];
echo "<tr><td><b>$username</b><td>...";
}
wollte ich:
PHP:
$LD_1 = mysql_query("SELECT * FROM users WHERE status = '1'") or die(mysql_error());
while($LD1 = mysql_fetch_array($LD_1)) {
$username = $LD1['name'];
$out = "<tr><td><b>$username</b><td>...";
}

mehr code...

echo $out;
 
Zuletzt bearbeitet:
Alterrnative:
Mit einem Platzhalter arbeiten.

PHP:
<?php
ob_start();
?>
<!-- Hier der gesamte HTML Code -->
##FEHLER##
<!-- Und hier weiterer HTML Code, der bereits ausgegeben ist -->
<?php
# Hier könnten jetzt Fehler entstehen, die in $errors gespeichert werden.
$errors = array('1');
$content = ob_get_contents();
ob_end_clean();
if(!empty($errors))
{
  $error = '';
  foreach($errors as $err)
  {
    $error .= '<strong>Fehler '.$err.'<br>';
  }
  echo str_replace('##FEHLER##', $error, $content);
} 
else
{
  echo str_replace('##FEHLER##', '', $content);
}
?>

Mal als Beispiel.
 
Vorneweg: ich bin PHP-Anfänger, daher ist mein Vorschlag eher als Frage zu verstehen.

Wäre es nicht möglich, das komplette Script in einer Schleife zu verarbeiten?
 
@x3008x

du solltest vielleicht noch mal über die grundlagen nachdenken z.B. Zuweisungen dann geht auch die while schleife

guckst du hier

vor allem

PHP:
.=

gruß

kato
 
Hey,
ich werd mir das mal notieren... ich denke das hilft mir weiter ;)
Aber ich werd mir das ein anders mal angucken weil ich endlich fertig werden will...

Ich danke euch

MfG
x3008x
 
Zurück