SQL--> dB-Eintrag im Code ausgeben
Janosch
- php
0 romy0 jansoch
0 Z.N.S.0 Sven Rautenberg0 janosch
0 David Tibbe0 janosch
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?
<?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();
?>
<? print(nl2br($db->f("titel"))); ?>
<?
// *******************
// Kontaktformular PHP
// *******************
$mailto = "print(nl2br($db->f("titel")))"";
...
?>
woran liegt das? Was mache ich verkehrt?
janosch
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
danke romy,
$mailto = nl2br($db->f("titel")); hat bestens geklappt.
die anführungszeichen waren schuld.
danke vielmals. schönen tag wünscht dir jansoch
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.
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
danke sven! habs dank der hilfe geschafft.
jan
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
danke David,
kam an. fehlermeldung war parse error. stimmt was du schreibst - habs jetzt hinbekommen.
janosch