Janosch: SQL--> dB-Eintrag im Code ausgeben

Hallo Team,
ich möchte aus einer SQL Datenbank einen Eintrag ausgeben. Das geht als html-ausgabe bestens. Wie gebe ich einen Eintrag aber im php-code aus?

Hier mein Bsp:

<?php
include_once "../include/stuff.php"; //Verbindungsdaten

$db=new mySql($dbhost, $dbname , $dbuser, $dbpass);
$db->verbinde();

$db->query("SELECT titel FROM $e_table");
$db->next_datensatz();
?>

Ausgabe im html-Teil (funktioniert):

<? print(nl2br($db->f("titel"))); ?>

Ausgabe im php-codel (funktioniert nicht !!!):

<?
// *******************
// Kontaktformular PHP
// *******************
$mailto = "print(nl2br($db->f("titel")))"";
...
?>

woran liegt das? Was mache ich verkehrt?
janosch

  1. Hi Janosch,

    $mailto = "print(nl2br($db->f("titel")))"";

    das liegt an den Anführungszeichen, die innerhalb des Strings müssen escaped werden bzw. mus der String korrekt zusammengesetzt werden.
    (das letzte Anführungszeichen ist auch zuviel.

    $mailto = "print(".nl2br($db->f("titel")).")";
    oder $mailto = "print(nl2br($db->f("titel")))";

    was willst Du mit dem Print erreichen?
    Vermutung:
    du willst:
    $mailto = nl2br($db->f("titel")); // weist der Variable mailto den titel zu

    ciao
    romy

    1. danke romy,

      $mailto = nl2br($db->f("titel")); hat bestens geklappt.
      die anführungszeichen waren schuld.

      danke vielmals. schönen tag wünscht dir jansoch

  2. abend,

    Ausgabe im php-codel (funktioniert nicht !!!):

    <?
    // *******************
    // Kontaktformular PHP
    // *******************
    $mailto = "print(nl2br($db->f("titel")))"";

    .............^^.............................^
    *print dient der ausgabe, nicht der variablenübergabe
    *print wird durch das " als string gesehen, nicht als funktion
    *doppelte " am ende verwirren

    mfg,
    (tanz das)
    Z.N.S.

    --
    <img src="http://www.dmp-web.de/comunicout/neubauten.gif" border="0" alt="">
  3. Moin!

    Ausgabe im php-codel (funktioniert nicht !!!):

    $mailto = "print(nl2br($db->f("titel")))"";

    Ein String geht von dem ersten doppelten Anführungszeichen zum zweiten doppelten Anführungszeichen. Zähl die mal ab und rate, was in die Variable $mailto geschrieben würde.

    Zweitens: Was soll in die $mailto rein? Der Inhalt von $db->f('titel'), oder der String "$db->f('titel')"?

    Version 1 erfordert, dass du geschweifte Klammern um den Ausdruck machst, damit PHP den Ausdruck als gesamte Variable erkennt.

    Version 2 erfordert, dass du das $-Zeichen escapest, da PHP sonst eine Variable sucht, die es nicht gibt. Oder du nimmst einfache Anführungszeichen - innerhalb derer werden Variablennamen nicht durch deren Inhalt ersetzt.

    - Sven Rautenberg

    --
    ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|
    1. danke sven! habs dank der hilfe geschafft.

      jan

  4. Hallo Janosch,

    funktioniert nicht !!!

    Was meinst du mit "funktioniert nicht"? Erhälst du Fehlermeldungen, die
    du uns nicht verraten möchtest?
    Wenn nein, dann schalte unbedingt das Error_Reporting auf E_ALL.

    $mailto = "print(nl2br($db->f("titel")))"";

    PHP erwartet nun einen String aufgrund des ". Dieser reicht bist vor das
    Title. Danach folgt nicht das Zeilenendeodere eine Verkettung mehrere Strings,
    folglich ein Syntaxfehler.
    Lasse die " um das ganze weg, dann sllte es wie gewünscht funktionieren.
    Verwende auch einen Editor mit Syntax-Highlighting, dann sollten die solche
    Fehler auch auffallen.

    Grüße
      David

    --
    >>Nobody will ever need more than 640k RAM!<<
    1981 Bill Gates
    1. danke David,
      kam an. fehlermeldung war parse error. stimmt was du schreibst - habs jetzt hinbekommen.

      janosch