Ergebnis 1 bis 5 von 5

Thema: [PHP] Variablen oda so prob?

  1. #1

    [PHP] Variablen oda so prob?

    Sry fuer den schlechten Titel aber ich habe keine ahnung wie ich mein Problem bezeichnen soll. =)

    So hier mal der Code um den es sich handelt:

    PHP-Code:
    include("style/standart/vaa/news.php");
                
    $sql=mysql_query("SELECT ID, name,mail,title,datum,post FROM ".$pref."news ORDER BY ID DESC;") or die(mysql_error());
                    while(
    $row mysql_fetch_array($sql)) $news_posts[] = $news_content_edit;
                if (empty(
    $news_posts)) $news_posts =    array("");
                
    $news_content implode(""$news_posts); 
    Ansich funzt er ja nur zeigt er nicht die Variablen aus der datei news.php an.
    Die News datei dient als TPL und in ihr ist dieser code enthalten:

    PHP-Code:
    $news_content_edit '
    <table>
        <tr>
            <td>Titel: </td>
            <td><input name="title" type="text" value="'
    .$row['title'].'"></td>
        </tr>
        <tr>
            <td>Text: </td>
            <td><textarea name="post">'
    .$row['post'].'</textarea></td>
        </tr>
        <tr>
            <td></td>
            <td><input type="submit" name="submit" value="'
    .$lang['news_edit'].'"></td>
        </tr>
    </table>
    '

    Keine ahnung wieso aber irgend wie werden die Variablen $row['title'] und $row['post'] nicht erkannt.

    Wenn ich den code aber nun so veraender das er so aussieht:

    PHP-Code:
    $sql=mysql_query("SELECT ID, name,mail,title,datum,post FROM ".$pref."news ORDER BY ID DESC;") or die(mysql_error());
                    while(
    $row mysql_fetch_array($sql)) $news_posts[] = '
    <table>
        <tr>
            <td>Titel: </td>
            <td><input name="title" type="text" value="'
    .$row['title'].'"></td>
        </tr>
        <tr>
            <td>Text: </td>
            <td><textarea name="post">'
    .$row['post'].'</textarea></td>
        </tr>
        <tr>
            <td></td>
            <td><input type="submit" name="submit" value="'
    .$lang['news_edit'].'"></td>
        </tr>
    </table>
    '
    ;
                if (empty(
    $news_posts)) $news_posts =    array("");
                
    $news_content implode(""$news_posts); 
    funktionierts.

    Kann mir jemand soweit helfen das das Erste Bsp. Funktioniert?

    Thread kann geloescht werden, hat sich erledigt. Habs auf eine andere weise hinbekommen. gruss jay

    Geändert von Blakkeight (21.10.2006 um 16:04 Uhr)

  2. #2
    Dennoch zur Erklärung:

    Du hast vermutlich Versucht, die Templatedatei einzufügen und dann die Schleife auszuführen.

    Allerdings ist PHP so gebaut, dass die Variablen $row bei der Initialisierung von $news_content_edit bereits durch ihren Inhalt ersetzt wurden d.h. bei Nichtexistenz der variablen ein Leerstring.

    Wenn du die Templatedatei in der Schleife einfügst müsste es funktionieren (das hast du jetzt vermutlich auch gemacht).

  3. #3
    hm versteh ich iregend wie nicht.
    Es muesste doch das gleiche bei rauskommen wenn ich:
    PHP-Code:
    $fu $bar
    oda
    PHP-Code:
    $fu "bar"
    schreibe.

  4. #4
    Ja, aber nur bei:
    PHP-Code:
    $bar 'bar';
    $fu $bar
    Andersrum ist es nicht möglich:
    PHP-Code:
    $inhalt 'Das plus ' $variable ' Punkt.'// String wird in die variable $inhalt geschrieben. Da $variable nicht existiert wird sie durch einen Leerstring ersetzt.
    $variable 'Wert'// Variable $variable wird hier erst Initialisiert.
    $inhalt_neu $inhalt// Neue Variable erhält den Wert von $inhalt. Da diese bereits ein feststehender String ist sind beide Variablen identisch. 
    Auf dein Problem übertragen bedeutet das: Da $news_content_edit mit nicht initialisierten Variablen bestimmt wurde lautet der Inhalt dieser Variable..
    HTML-Code:
    <table>
        <tr>
            <td>Titel: </td>
            <td><input name="title" type="text" value=""></td>
        </tr>
        <tr>
            <td>Text: </td>
            <td><textarea name="post"></textarea></td>
        </tr>
        <tr>
            <td></td>
            <td><input type="submit" name="submit" value="'.$lang['news_edit'].'"></td>
        </tr>
    </table>
    Wenn du diesen teil jedoch selbst in die Schleife setzt, sind die Variablen automatisch initialisert, da das die Funktion mysql_fetch_array() übernimmt.

    Nebenbei: Für deine Tabelle/Formular kannst du dich über <label> und <th> sowie <td colspan="2"> informieren

    Geändert von mitaki (22.10.2006 um 12:43 Uhr)

  5. #5
    Ok dann wuerd das jetzt schon ein bissel klarer. =)

    >> Nebenbei: Für deine Tabelle/Formular kannst du dich über <label> und <th> sowie <td colspan="2"> informieren.
    Jo werd ich machen.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •