Zufallsbild in HTML Code aus MySQL Tabelle einbinden?

chris4712

Erfahrenes Mitglied
Hallo!

Ich habe eine Webseite wo der Inhalt der einzelnen Seiten aus einer MySQL Tabelle gelesen wird.
Geht soweit auch.


Nun habe ich mir eine PHP Datei (CoincidencePicture.php) geschrieben, die mir ein Zufallsbild erzeugt (mit MySQL Zugriff usw.), und einen HTML Code (Bild mit entsprechendem Link) ausgibt.
Geht auch.

Nun bekomme ich aber folgendes Problem: Wie schaffe ich es dass die Datei CoincidencePicture.php an der passenden Stelle im HTML Code steht, der per PHP aus der MySQL Datenbank gelesen wird, und mit echo ausgegeben wird?

include geht ja Aufgrund der echo Ausgabe nicht.

Gruß
 
Hallo chris,

versuch mal den Rückgabewert der betreffenden Funktion aus CoincidencePicture.php
mit echo in deiner HTML-Datei auszugeben.

Ich nehme mal an, das es dass ist, was Du suchst. Falls nicht musst Du mal den entsprechenden Code posten.
 
Hallo!

Keine Ahnung wie Dein HTML/PHP/MySQL Code aussieht.....

In der "CoincidencePicture.php" wird aus
PHP:
<?php
// Dein Code
echo "Deine HTML-Ausgabe";
?>
dieses
PHP:
<?php
// Dein Code
$htmlausgabe = "Deine HTML-Ausgabe";
?>
Und dann in der Datei wo der HTML-Code augegeben werden soll
PHP:
<?php include "CoincidencePicture.php"; ?>
<html>
<head>
<titel></titel>
</head>
<body>
Irgend welchen Text.
<?php echo $htmlausgabe; ?>
Restlicher Text.
</body>
</html>
Ansonsten mehr Input..... Du kennst ja die Sache mit der Glaskugel. ;)

Gruss Dr Dau
 
OK, ich erklär es mal anders:
Ich habe eine Tabelle. In dieser Tabelle steht für jede Seite der HTML Code.

Wenn ich nun die Seite index.php?Page=1 aufrufe wird aus der Tabelle der HTML Quellcode mit der ID 1 ausgelesen.
Dieser wird mit echo ausgegeben:
Code:
echo $Page['Content'];

Wenn ich nun an die entsprechende Stelle im HTML Code euer "<?php echo $htmlausgabe; ?>" einfüge, wird dieses doch genauso (also OHNE PHP Beachtung) ausgegeben.

Prinzipiell habt ihr ja Recht. Aber nur wenn der Code nicht aus einer MySQL Tabelle gelesen wird.

Gruß

Christian
 
chris4712 hat gesagt.:
Aber nur wenn der Code nicht aus einer MySQL Tabelle gelesen wird.
Kann ich nicht bestätigen.
Als Test habe ich mal Code für eine HTML-Tabelle in die Datenbank eingetragen und nach obigem Muster ausgelesen.
Ergebins: funktioniert, der HTML-Code wird an gewünschter Stelle ausgegeben..... auch mit $_GET Anweisung.

Wie gesagt, die Sache mit den Glaskugeln..... die hat der Osterhase (dieses Mistviech :) ) grade versteckt.
 
Kannst du mal deinen Testcode (inc. Inhalt aus der DB) posten?
Ist verm. übersichtlicher als mein ganzer Code...
 
SQL-Dump
Code:
-- phpMyAdmin SQL Dump
-- version 2.6.1-pl3
-- http://www.phpmyadmin.net
-- 
-- Host: localhost
-- Erstellungszeit: 16. April 2006 um 04:32
-- Server Version: 4.1.11
-- PHP-Version: 5.0.4
-- 
-- Datenbank: `htmlcode`
-- 
-- --------------------------------------------------------
-- 
-- Tabellenstruktur für Tabelle `code`
-- 
CREATE TABLE `code` (
  `id` int(2) NOT NULL auto_increment,
  `html` varchar(255) NOT NULL default '',
  `nr` int(2) NOT NULL default '0',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM CHARSET=utf8 ;
-- 
-- Daten für Tabelle `code`
-- 
INSERT INTO `code` VALUES ('', '<table border="1" cellpadding="0" cellspacing="0"><tr><td>Inhalt</td></tr></table>', '1');
page.php
PHP:
<?php
mysql_connect("localhost", "user", "pass");
mysql_select_db(htmlcode);
$result = mysql_query("SELECT html FROM `code` WHERE nr LIKE '".$_GET['Page']."'");
$row = mysql_fetch_array($result);
$out = $row['html'];
?>
code.php
PHP:
<?php
include "page.php";
?>
<html>
<head>
<title></title>
</head>
<body>
hier ein text<br>
<?php
if(isset($_GET['Page'])) {
echo $out."\n";
}
?>
restlicher text
</body>
</html>
Aufgerufen wird das ganze dann mit code.php bzw. code.php?Page=1

Der Code ist allerdings nicht auf Sicherheit ausgelegt.
 
Ne, da hast du mich falsch verstanden!
Ich versuch es mal anhand deines Beispieles zu erklären:

MySQL-Dump (Text in rot beachten!):
Code:
-- phpMyAdmin SQL Dump
-- version 2.6.1-pl3
-- http://www.phpmyadmin.net
-- 
-- Host: localhost
-- Erstellungszeit: 16. April 2006 um 04:32
-- Server Version: 4.1.11
-- PHP-Version: 5.0.4
-- 
-- Datenbank: `htmlcode`
-- 
-- --------------------------------------------------------
-- 
-- Tabellenstruktur für Tabelle `code`
-- 
CREATE TABLE `code` (
  `id` int(2) NOT NULL auto_increment,
  `html` varchar(255) NOT NULL default '',
  `nr` int(2) NOT NULL default '0',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM CHARSET=utf8 ;
-- 
-- Daten für Tabelle `code`
-- 
INSERT INTO `code` VALUES ('', '<table border="1" cellpadding="0" cellspacing="0"><tr><td><?PHP include("CoincidencePicture.php"); ?></td></tr></table>', '1');


Inhalt der Datei CoincidencePicture.php:
PHP:
// Hier wird was gemacht
echo "Ausgabe";


page.php (1zu1 von dir übernommen):
PHP:
 <?php
mysql_connect("localhost", "user", "pass");
mysql_select_db(htmlcode);
$result = mysql_query("SELECT html FROM `code` WHERE nr LIKE '".$_GET['Page']."'");
$row = mysql_fetch_array($result);
$out = $row['html'];
?>

Ich hoffe nun ist klar was ich brauche. Alles andere bringt mir nichts. Oder ich stehe mächtig auf dem Schlauch.

Gruß
 
Zuletzt bearbeitet:
Ich würde es so machen:
MySQL
PHP:
CREATE TABLE `code` (
  `id` int(2) NOT NULL auto_increment,
  `html` varchar(255) NOT NULL default '',
  `nr` int(2) NOT NULL default '0',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;

-- 
-- Daten für Tabelle `code`
-- 

INSERT INTO `code` (`id`, `html`, `nr`) VALUES (1, '<table border="1" cellpadding="0" cellspacing="0"><tr><td>[inc]CoincidencePicture.php[inc]</td></tr></table>', 1);
page.php
PHP:
if(!isset($_GET['Page'])) $_GET['Page'] = "1";
mysql_connect("localhost", "user", "pass");
mysql_select_db(test);
$result = mysql_query("SELECT html FROM `code` WHERE nr LIKE '".$_GET['Page']."'");
$row = mysql_fetch_array($result);
$out = explode("[inc]",$row['html']);

echo $out[0];
include($out[1]);
echo $out[2];
 
Zurück