| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

05-10-2009, 23:23
|
|
recoil
Registrierter Benutzer
|
|
Registriert seit: Oct 2009
Beiträge: 5
|
|
mysql table soll include einbinden
Hi,
undzwar hab ich eine Drag und Drop funktion die ihren zustand in der mysql speichert.
Bisher funktoniert schonmal das Drag und Drop und das abspeichern in der mysql, der aktuellen sortierung.
Aber was muss ich machen um z.B. den include "whoisonline.php" in der index.php richtig anzuzeigen? Die Box ist zwar größer geworden aber hat den include nicht angezeigt .
index.php
PHP-Code:
<?php require('db.php'); $demo = new SortableExample(); $list = $demo->getList(); ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Drag and Drop</title> <link href="_stylesheet.css" rel="stylesheet" type="text/css" /> <script src="lib/prototype.js"></script> <script src="js/scriptaculous.js"></script> <script> Event.observe(window,'load',init,false); function init() { Sortable.create('listContainer',{tag:'div',onUpdate:updateList}); } function updateList(container) { var url = 'ajax.php'; var params = Sortable.serialize(container.id); var ajax = new Ajax.Request(url,{ method: 'post', parameters: params, onLoading: function(){$('workingMsg').show()}, onLoaded: function(){$('workingMsg').hide()} }); } </script> </head> <body> <div id="listContainer"> <?php $string = array(); foreach($list as $item) { ?> <div id="item_<?=$item['catid'];?>"><?=$item['category'];?> <ul> <li><?=$item['include'];?></li> <li> </li> </ul> </div> <?php } ?> </div> </div> </body> </html>
db.php
PHP-Code:
<?php class SortableExample { protected $conn; protected $user = 'xxxxx'; protected $pass = 'xxxxx'; protected $dbname = 'xxxxx'; protected $host = 'xxxxxx'; public function __construct() { $this->conn = mysql_connect($this->host, $this->user, $this->pass); mysql_select_db($this->dbname,$this->conn); } public function getList() { $sql = "SELECT * FROM categories ORDER BY orderid"; $recordSet = mysql_query($sql,$this->conn); $results = array(); while($row = mysql_fetch_assoc($recordSet)) { $results[] = $row; } return $results; } public function updateList($orderArray) { $orderid = 1; foreach($orderArray as $catid) { $catid = (int) $catid; $sql = "UPDATE categories SET orderid={$orderid} WHERE catid={$catid}"; $recordSet = mysql_query($sql,$this->conn); $orderid++; } } } ?>
_stylesheet.css
PHP-Code:
/* DragDrop */ div#listContainer { width: 170px; float:left; height: 100%; } div#listContainer div { cursor: n-resize; color:#FFF; display: block; width: 170px; height: 100%; padding-left: 10px; padding-top: 10px; } div#listContainer ul {
cursor: default; color:#000; display: block; list-style-type: none; }
mysql
PHP-Code:
-- Tabellenstruktur für Tabelle `categories` --
DROP TABLE IF EXISTS `categories`; CREATE TABLE IF NOT EXISTS `categories` ( `catid` int(11) NOT NULL auto_increment, `category` varchar(255) NOT NULL, `include` varchar(200) NOT NULL, `orderid` smallint(6) NOT NULL default '100', PRIMARY KEY (`catid`) ) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 ;
-- -- Daten für Tabelle `categories` --
INSERT INTO `categories` VALUES (1, 'Online', '<?php include("whoisonline.php"); ?>', 2); INSERT INTO `categories` VALUES (2, 'shoutbox', '<?php include("shoutbox.php"); ?>', 4); INSERT INTO `categories` VALUES (3, 'Teamspeak', '<?php include("teamspeak.php"); ?>', 1); INSERT INTO `categories` VALUES (4, 'Besucher', '<?php include("stats.php"); ?>', 3);
table
mfg
|

05-10-2009, 23:49
|
 |
onemorenerd
 Moderator
|
|
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.481
|
|
Du schreibst einfach PHP-Code in eine SQL-Datei und verfütterst sie einem mysql-Kommandozeilentool. So funktioniert das nicht. Der PHP-Code muss irgendwann auch mal ausgeführt werden! Das wird er aber nicht "von selbst". Es gibt keinen kleinen Zauberer in deinem Computer, der dich bei der Arbeit beobachtet und ahnt, was du gern hättest.
Du mußt selber zaubern! Sorge dafür, dass der PHP-Code ausgeführt wird, bevor du die Datei verfütterst.
Zu abstrakt? Alles nur blabla? Dann definiere mal bitte, was du eigentlich erreichen möchtest. Wenn ich das weiß, bin ich gern dein Zauberer.
|

06-10-2009, 00:05
|
|
recoil
Registrierter Benutzer
|
|
Registriert seit: Oct 2009
Beiträge: 5
|
|
Ich hab da leider keine große Ahnung von php. Ich weis nicht wie ich den php code befehl ausführen soll, bevor ich ihn verfüttert an die mysql falls ich das richtig verstanden habe.
Habs grade mal so eben geschaft das die Table überhaupt ein include bereich hat.
Schon seit Stunden, versuch ich mich durch die php sprache durch zu wühlen.
Ich bin schon froh das ich einiger maßen den php code entziffern kann.
|

06-10-2009, 00:11
|
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 2.328
|
|
PHP-Code hat in der Datenbank nix verloren.
Da gehören Daten rein und kein Programmcode. Deswegen heißt es auch Datenbank.
|

06-10-2009, 00:13
|
|
combie
PHP Expert
|
|
Registriert seit: May 2006
Beiträge: 2.925
|
|
Fakt 1: Dein Vorhaben dürfe möglich sein!
Fakt 2: Das ist sicherlich keine Nummer für einen Anfänger.
Datenbank Inhalte werden häufig von Usern erstellt. Und User Code auf dem Server auszuführen ist softwaretechnischer Selbstmord.
Willst du das wirklich?
Bitte schön: Urlwrapper: Mysql Tabellen wie ein Dateisystem behandeln
|

06-10-2009, 00:23
|
|
recoil
Registrierter Benutzer
|
|
Registriert seit: Oct 2009
Beiträge: 5
|
|
Ich benutze ein cms system names webspell. Dieses system benutzt eine index.php und lädt die module wie shoutbox, Online User... u.s.w. mit includes
PHP-Code:
<?php include("whoisonline.php"); ?>
in die index.php.
Meine hp sollte etwas besonderes haben also hab ich mir ein php script fürs Drag and Drop mit speicherung der Position... wenn dann ja was vernünftiges  .
Das problem war das ich nicht wusste das die mysql datenbank daten will und keine php codes.
Ich möchte aber doch gerne eine lösung finden.
Aber warum ist das Software Technisch Selbstmord?
|

06-10-2009, 00:53
|
 |
onemorenerd
 Moderator
|
|
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.481
|
|
Speichere nur den Namen der zu inkludierenden Datei in der DB.
Dann $item['include'] an include() übergeben und fertig.
|

06-10-2009, 01:28
|
|
recoil
Registrierter Benutzer
|
|
Registriert seit: Oct 2009
Beiträge: 5
|
|
Ich hab wirklich nicht viel Ahnungüber Php aber wie soll das dann aussehen <?=$item['include'] = include();?> was bei mir aber nicht funktioniert.
|

06-10-2009, 03:45
|
 |
onemorenerd
 Moderator
|
|
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.481
|
|
"nicht viel" ist noch geprahlt. Lies mal ein paar Einsteigertutorials und das Manual oder hole dir einen Profi.
|

06-10-2009, 11:13
|
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 2.328
|
|
Zitat:
Zitat von recoil
Ich hab wirklich nicht viel Ahnungüber Php
|
Bevor man irgendwas programmiert, sollte man erstmal die Grundlagen lernen. Alles andere ist ziemlich sinnlos.
|

06-10-2009, 16:38
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
OffTopic: OT-Diskussion abgetrennt.
Hier bitte nur noch, wenn es wirklich um die eigentliche Fragestellung geht.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|