#1  (Permalink
Alt 22.08.2005, 21:46
Benutzerbild von Gandolfo
Gandolfo Gandolfo ist offline
Mitglied
 
Registriert seit: 17.05.2005
Ort: Kr. Gießen
Alter: 41
Beiträge: 498
Provider: Telekom / WiDSL
Bandbreite: 2000er Ram / VDSL50
Gandolfo eine Nachricht über ICQ schicken
Standard Datenbank-Abfrage in einer Datenbank-Schleife?!

hmm... ich habe gerade ein problem und finde keine lösung.

ich will die navigation mit den links (home, über mich, gästebuch, galerie...) in einer datenbank eintragen und per schleife ausgeben lassen.

in der navigation ist aber auch mein name, die url und der counter-stand eingetragen - die stehen aber in der system-datenbank steht und nicht in der navigations-datenbank.

nun sollte er also die navigation auslesen. wenn der typ 'img' ist, soll er das portait foto zeigen, wenn der typ 'url' ist soll er ein text-link ausgeben. das funktiert ja auch alles.

das problem ist erst da, wenn er in dieser schleife die system-datenbank nach dem name und dem counterstand fragt. dann bricht die schleife an dieser stelle ab.

ein beispiel ist unter www.ml-bkf.de - das ist die selbe homepage nur dass die navigation in einer php steht und nicht in einer datenbank. ich kann den counterstand auch net irgendwo anders abfragen, weil die homepage ja mehrere counter und mehrere namen hat. matthias, benno und chris. also muss das die navigation gleich mit abfragen. aber wieso bricht die schleife ab wenn er aus der system etwas auslesen soll?
Mit Zitat antworten
  #2  (Permalink
Alt 22.08.2005, 22:04
DDanny DDanny ist offline
Senior Mitglied
 
Registriert seit: 01.02.1999
Beiträge: 893
Provider: Telekom Entertain
Bandbreite: 17115 / 1182
Standard AW: Datenbank-Abfrage in einer Datenbank-Schleife?!

Es wäre vielleicht gut, wenn Du die eine Abfrage mal als Code hier rein setzt, dann können wir Dir besser helfen.
Mit Zitat antworten
  #3  (Permalink
Alt 22.08.2005, 22:27
MalkoV2 MalkoV2 ist offline
Mitglied
 
Registriert seit: 16.08.2005
Beiträge: 330
Standard AW: Datenbank-Abfrage in einer Datenbank-Schleife?!

Zitat:
Zitat von Gandolfo
(...)in der navigation ist aber auch mein name, die url und der counter-stand eingetragen - die stehen aber in der system-datenbank steht und nicht in der navigations-datenbank.
(...)
das problem ist erst da, wenn er in dieser schleife die system-datenbank nach dem name und dem counterstand fragt. dann bricht die schleife an dieser stelle ab.
(...)
ich finds zumindest nach deiner beschriebung net ganz durchschaubar, wie du deine tabellen und tabellen-verknüpfungen angelegt hast...

aber du hast ja in der navigation sicher die ID der Person, und kannst anhand dieses keys die zusätzlichen werte aus anderen tabellen abrufen und einfliessen lassen, oder? Bei mehreren Werten eben eine separate schleife, innerhalb der hauptschleife oder eben nach der ...
zur not das ganze erst in einem array einbringen, und das dann nach wunsch ausgeben...



.
__________________
"Es gibt immer was zu meggern - lass uns ins Forum gehen..."
Mit Zitat antworten
  #4  (Permalink
Alt 23.08.2005, 02:01
Benutzerbild von Gandolfo
Gandolfo Gandolfo ist offline
Mitglied
 
Registriert seit: 17.05.2005
Ort: Kr. Gießen
Alter: 41
Beiträge: 498
Provider: Telekom / WiDSL
Bandbreite: 2000er Ram / VDSL50
Gandolfo eine Nachricht über ICQ schicken
Standard AW: Datenbank-Abfrage in einer Datenbank-Schleife?!

oh man... das war ein ganz dummer fehler von mir.

ich habe die datenbank mit $query abgefragt und in der schleife ebenfalls eine datenbank-abfrage mit $query gestartet. deshalb wurde die schleife unterbrochen und nicht wie gewollt fortgesetzt.

das problem ist somit gelöst. dass man da net gleich drauf kommen kann.... da vergehn stunden für nix*gg*

danke für eure hilfe.

EDIT: 3:56 Uhr:
so nun folgendes problem. um nicht hundert mal den datenbank-namen eintragen zu müssen habe ich in jedem datenbank-befehl $x_dbase stehn.

also '...Insert INTO $system_dbase WHERE...'

wenn nun die seiten in der datenbank angelegt werden, müssen ja auch die datenbank-namen in der datenbank stehn. das auslesen an sich ist kein problem. aber wie die ausgabe erfolgen soll...

die ausgabe muss nach der art lauten: $system_dbase = "ml_system"; - damit er dem parameter $system_dbase dem namen zuordnen kann.

das problem ist nun: wenn er den parameter $system_dbase und den namen ml_system aus der datenbank ausliest - wie kann ich ihn so auslesen dass er daraus $parameter = 'name' macht? ich kann es drehn und wenden wie ich will, entweder kommt ein fehler weil er das = nicht anerkennt oder er erkennt was anderes nicht.

Code:
<?
//DBase-Initialisierung
$query = "SELECT * FROM $page_dbase WHERE db_on = '1'";
  $sql = mysql_query($query) or die(mysql_error());
  while ($ds = mysql_fetch_object($sql)) {
	$db_parameter =  $ds->db_parameter;
	$db_name =  $ds->db_name;
$db_parameter.=" = ".$db_name."\r\n";
//echo $db_parameter = "$db_name";
}
?>
Mit Zitat antworten
  #5  (Permalink
Alt 23.08.2005, 08:30
DDanny DDanny ist offline
Senior Mitglied
 
Registriert seit: 01.02.1999
Beiträge: 893
Provider: Telekom Entertain
Bandbreite: 17115 / 1182
Standard AW: Datenbank-Abfrage in einer Datenbank-Schleife?!

Ich habe zwar momentan noch nicht so ganz verstanden, was Du genau damit willst.
Ich weiß nicht genau, was Du mit dem String willst, der dann ja ungefähr so aussieht:
"db_parameter = db_name" - Was bringt Dir das?

Aber ich würde den Code etwas anders schreiben...

Code:
<?
//DBase-Initialisierung
$query = "SELECT * FROM ".$page_dbase." WHERE db_on = 1";
  $sql = mysql_query($query) or die(mysql_error());
  while ($ds = mysql_fetch_object($sql)) {
	$db_parameter =  $ds->db_parameter;
	$db_name =  $ds->db_name;

$db_parameter .= " = ".$db_name."\r\n";

//echo $db_parameter = "$db_name";  

# Hier darfst Du dann nur $db_parameter ausgeben, weil sonst bei der
# Variablen $db_parameter die vorhergehende Zuweisung wieder verloren geht 
# und ihr $db_name zugewiesen wird. Also so:

echo $db_parameter;
}
?>
Ob Dich das nun weiter bringt, weiss ich auch nicht
Mit Zitat antworten
  #6  (Permalink
Alt 23.08.2005, 08:44
MalkoV2 MalkoV2 ist offline
Mitglied
 
Registriert seit: 16.08.2005
Beiträge: 330
Standard AW: Datenbank-Abfrage in einer Datenbank-Schleife?!

Zitat:
Zitat von DDanny
Ich habe zwar momentan noch nicht so ganz verstanden, was Du genau damit willst.
@Gandolfo Ich habs auch noch nicht verstanden was du willst, und anders als beim ersten Problem kann ich die Lösung auch diesmal nicht erraten.

Ich habe aber das Gefühl, das du da was von einer sehr komplizirten Seite aufziehst...

Liste doch mal deine Tabellen mit Felder-zumindest den verknüpften feldern- auf, und was du daraus haben willst...

Also etwa



damit man erkennen kann, was du denn wo raus erfragen willst...

.
__________________
"Es gibt immer was zu meggern - lass uns ins Forum gehen..."
Mit Zitat antworten
  #7  (Permalink
Alt 26.08.2005, 21:18
Benutzerbild von Gandolfo
Gandolfo Gandolfo ist offline
Mitglied
 
Registriert seit: 17.05.2005
Ort: Kr. Gießen
Alter: 41
Beiträge: 498
Provider: Telekom / WiDSL
Bandbreite: 2000er Ram / VDSL50
Gandolfo eine Nachricht über ICQ schicken
Standard AW: Datenbank-Abfrage in einer Datenbank-Schleife?!

@MalkoV2: ich weis ja nicht wo du die so ne grafik her beziehst, aber ich versuchs nochmal mit worten:

also es gibt verschiedene datenbanken - gästebuch, registrierte user, logfiles.. und ich habe früher bei der datenbank-abfrage immer den datenbank-name eingetragen: 'SELECT * FROM datenbankname WHERE...'

das ist aber zu blöd - wenn man einen datenbankname ändert muss man ja die ganze seite durch arbeiten und alle namen ändern. also kam ich darauf am anfang der seite eine gleichung zu erstellen:

<?
$log_dbase = "log_datenbank';
?>

bei der datenbank-abfrage wurde dann daraus: 'SELECT * FROM $log_dbase WHERE...'

wenn sich der datenbankname einmal geändert hat, brauchte ich ihn ja nur noch einmal zu ändern und es war alles viel einfacher.

das komplizierte ist ja nun nur, dass ich alles über die datenbank laufen lassen will. jede seite die es gibt ist in einer datenbank drin. so kann ich mit minimalem aufwand die homepage betreiben. mein problem was ich oben erklärt habe bestand ja nur in der gleichung : $log_dbase = "log_datenbank'; - das beim auslesen aus der system-datenbank erstellt werden muss.

das script von DDanny werde ich jetzt mal testen


Update:

Er gibt jetzt '$log_dbase = db_log' auf der homepage als anzeige aus. aber wie kann ich den parameter $log_dbase jetzt in die datenbank-abfrage einbauen? das ist jetzt der knackpunkt wos wieder scheitert
Mit Zitat antworten
  #8  (Permalink
Alt 27.08.2005, 09:14
DDanny DDanny ist offline
Senior Mitglied
 
Registriert seit: 01.02.1999
Beiträge: 893
Provider: Telekom Entertain
Bandbreite: 17115 / 1182
Standard AW: Datenbank-Abfrage in einer Datenbank-Schleife?!

Zitat:
mein problem was ich oben erklärt habe bestand ja nur in der gleichung : $log_dbase = "log_datenbank'; - das beim auslesen aus der system-datenbank erstellt werden muss.
Warum muss genau die komplette Gleichung erstellt werden?
So wie ich das verstanden habe, brauchst Du doch nur den Namen der Datenbank und nicht mehr?

Also einfach nur den Parameter $log_datenbank. Oder sehe ich das falsch?

Ich glaube, ich weiß immer noch nicht so ganz genau, was Du machen willst. Was Du geschrieben hast, verstehe ich schon. Aber was Du mit dem Code-Schnipsel machen willst noch nicht.

Vielleicht wäre es gut, wenn Du nochmal ein bisschen PHP-Code hier rein kopierst (am besten etwas länger) und zusätzlich noch beschreibst, was in der Datenbank in den abgefragten Tabellen drin steht - also Beispiele.

Zitat:
Er gibt jetzt '$log_dbase = db_log' auf der homepage als anzeige aus. aber wie kann ich den parameter $log_dbase jetzt in die datenbank-abfrage einbauen? das ist jetzt der knackpunkt wos wieder scheitert
Hmm... einfach schon wie Du das vorher auch gemacht hast. Einfach da in das mysql-Query einbauen, wo Du es brauchst.

Code:
$query = "SELECT * FROM ".$page_dbase." WHERE db_on = 1";
Oder wie meinst Du das?
Sorry, wenn ich so viele Fragen stelle
Mit Zitat antworten
  #9  (Permalink
Alt 27.08.2005, 14:02
Benutzerbild von Gandolfo
Gandolfo Gandolfo ist offline
Mitglied
 
Registriert seit: 17.05.2005
Ort: Kr. Gießen
Alter: 41
Beiträge: 498
Provider: Telekom / WiDSL
Bandbreite: 2000er Ram / VDSL50
Gandolfo eine Nachricht über ICQ schicken
Standard AW: Datenbank-Abfrage in einer Datenbank-Schleife?!

ja also nehmt euch das beispiel 'www.ml-bkf.de' - das ist die homepage bis jetzt überwiegend in html-form.

es handelt sich um 3 homepages in einer - matthias benno chris. das ist alles schön und gut aber der aufwand ist sehr gross.


deshalb bin ich an einer neuen homepage, die zwar genauso aussieht aber anders funktioniert.

jede seite 'home, übermich, galerie, gästebuch, surftipps' soll in einer 'page_datenbank' eingetragen sein, mit allen informationen zu der seite. also ist die seite geblockt, oder wem gehört die seite (matthias, benno oder chris?), counterstand...

und da alles automatisch gehn soll ohne viel arbeit habe ich den code eingebaut $_SERVER['PHP_SELF'] - die datei erkennt also ganz automatisch seinen pfad /matthias/galerie.php oder /benno/index.php und kann anhand dieser information alles aus der datenbank abfragen.

auf jeder seite steht als überschrift 'Matthias - Galerie' oder 'Benno - Gästebuch' - und alles was angezeigt wird - jeder counterstand, jeder name (Benno), jeder name (Galerie) wird aus der datenbank abgefragt.

es läuft also alles über datenbank.

und genauso auch das mit den datenbank-namen: ob das jetzt die 'galerie_datenbank' ist oder die 'surftips_datenbank' - das alles wird aus der datenbank ausgelesen.

wenn es sich ja um eine datenbank handeln würde, könnte ich das über eine normale schleife auslesen lassen mit '$dbase = db->datenbank' - dann wäre $dbase der datenbankname.

aber da es sich um mehrere datenbanken handelt die alle zusammen wirken, reicht ein parameter $dbase nicht aus, weil sonst der parameter $dbase nur den zuletzt aus der datenbank ausgelesenen datenbank-name trägt. egal ob es 'galerie_datenbank' oder 'home_datenbank' ist. aber damit die ganze seite funktioniert, mit mehreren datenbank-tabellen gleichzeitig, brauche ich diese gleichung, damit jede datenbank-tabellenspalte einen anderen parameter hat.

ich poste dennoch mal die inc.system.php - allerdings ist sie sehr verwirrend.

erst kommt der login 'user_datenbank', danach das logfile 'log_datenbank', danach das 'page_datenbank' zum abfragen der seiten informationen. danach die 'system_datenbank' zum weiteren abfragen der seiten-informationen. danach die 'navigation_datenbank' für die links home, galerie, gästebuch...!

einbauen muss ich noch die im_datenbank und die pm_datenbank für die instant-messages und privaten messages. und eine online_datenbank für die 'wer ist online' anzeige.

das ganze gleicht also einer community und ist mit einer datenbank nicht getan.

so nun kommt der cphp-code - aber in einem eigenen beitrag weils sonst zuviel wird.
Mit Zitat antworten
  #10  (Permalink
Alt 27.08.2005, 14:03
Benutzerbild von Gandolfo
Gandolfo Gandolfo ist offline
Mitglied
 
Registriert seit: 17.05.2005
Ort: Kr. Gießen
Alter: 41
Beiträge: 498
Provider: Telekom / WiDSL
Bandbreite: 2000er Ram / VDSL50
Gandolfo eine Nachricht über ICQ schicken
Standard AW: Datenbank-Abfrage in einer Datenbank-Schleife?!

Code:
<?
session_start();
include("../system/inc.connect.php");  //datenbank-connect
include("../system/inc.community.php");  //community-code: $system = 'ml'
include("../system/inc.clon.php"); // gelogener Login solange das login nicht richtig funktioniert
$system_dbase = "".$system."_system";
$navi_dbase = "".$system."_navi";
$page_dbase = "".$system."_page";
include("../system/inc.dbase.php");  //D-BASE-SCHLEIFE einbauen 
$aktuell_date = date("Y-m-d"); 
$aktuell_time = date("H:i:s");
//IF GAST
$session_username = "Gast";
$session_groupid = "9";
//LOGIN
if(isset($_POST['status'])) $status = $_POST['status'];
if ($status == "Login") {
if(isset($_POST['login_name'])) $login_name = trim($_POST['login_name']);
if(isset($_POST['login_pass'])) $login_pass = trim($_POST['login_pass']);
//Übergabe-Parameter
$sql = "SELECT ". 
	"userid, name, pw, pageid, groupid, logindate, logintime, blocked ". 
  "FROM ". 
	"$user_dbase ". 
  "WHERE ". 
	"(name like '".$_REQUEST["login_name"]."') AND ". 
	"(pw = '".md5 ($_REQUEST["login_pass"])."')";
$result = mysql_query ($sql);
if (mysql_num_rows ($result) > 0)
{ 
$data = mysql_fetch_array ($result);
   $_SESSION['userid'] = $data["userid"];
//   $session_userid = $_SESSION['userid'];
   $_SESSION['username'] = $data["name"];
//   $session_username = $_SESSION['username'];
   $_SESSION['pageid'] = $data["pageid"];
//   $session_pageid = $_SESSION['pageid'];
   $_SESSION['groupid'] = $data["groupid"];
//   $session_groupid = $_SESSION['groupid'];
   $_SESSION['logindate'] = $data["logindate"];
//   $session_logindate = $_SESSION['logindate'];
   $_SESSION['logintime'] = $data["logintime"];
//   $session_logintime = $_SESSION['logintime'];
   $_SESSION['blocked'] = $data["blocked"];
//   $session_blocked = $_SESSION['blocked'];
}
if($_SESSION['userid']=="") {
session_destroy();
session_unset();
unset($_SESSION); 
$session_username = "Gast";
$session_groupid = "9";
$login_error = "1";
} else {
//   $_SESSION['userid'] = $data["userid"];
   $session_userid = $_SESSION['userid'];
//   $_SESSION['username'] = $data["name"];
   $session_username = $_SESSION['username'];
//   $_SESSION['pageid'] = $data["pageid"];
   $session_pageid = $_SESSION['pageid'];
//   $_SESSION['groupid'] = $data["groupid"];
   $session_groupid = $_SESSION['groupid'];
//   $_SESSION['logindate'] = $data["logindate"];
   $session_logindate = $_SESSION['logindate'];
//   $_SESSION['logintime'] = $data["logintime"];
   $session_logintime = $_SESSION['logintime'];
//   $_SESSION['blocked'] = $data["blocked"];
   $session_blocked = $_SESSION['blocked'];
}
//Login-time in datenbank speichern
if ($status == "Login") {
$login_date = date("d.m.Y");
$login_time = date("H:i");
$query = "UPDATE $user_dbase SET " ."logindate = '$login_date', logintime = '$login_time'" ."WHERE userid = '$session_userid'";
$sql = mysql_query($query) or die(mysql_error());
}
}
//NEWS AN/AUS
//IF logmail/Base AN/AUS
//Logfile-mail/base

//Site-Abfrage(Page):
//$aktuelle_site = $_SERVER['PHP_SELF'];
//LOGOUT
if(isset($_GET["logout"])) {
session_destroy();
session_unset();
unset($_SESSION); 
}
$query = "SELECT * FROM $page_dbase WHERE self_php = '$aktuelle_site'";
  $sql = mysql_query($query) or die(mysql_error());
  while ($ds = mysql_fetch_object($sql)) {
	$site_page =  $ds->page;
	$site_name =  $ds->site;
	$site_uri =  $ds->inc_uri;
	$site_index =  $ds->index;
	$site_userid =  $ds->userid;
	$site_groupid =  $ds->groupid; 
	$site_acp =  $ds->acp;
 $site_blocked = $ds->blocked;
}
//Page-Abfrage(System)
$query = "SELECT * FROM $system_dbase WHERE page = '$site_page'";
  $sql = mysql_query($query) or die(mysql_error());
  while ($ds = mysql_fetch_object($sql)) {
	$page_name =  $ds->name;
 $page_blocked =  $ds->blocked;
}
//System-Abfrage(Community)
$query = "SELECT * FROM $system_dbase WHERE type = 'page'";
  $sql = mysql_query($query) or die(mysql_error());
  while($ds = mysql_fetch_object($sql)) {
   $community_name =  $ds->community;
   $system =  $ds->page;
   $community_url =  $ds->url;
   $community_id =  $ds->page_id;
   $community_blocked =  $ds->blocked;
   }
//System-Abfrage(Pages)
$query = "SELECT * FROM $system_dbase";
  $sql = mysql_query($query) or die(mysql_error());
  while($ds = mysql_fetch_object($sql)) {
   $page_a_b_c =  $ds->page;
if($page_a_b_c=="a") {
$query1 = "SELECT * FROM $system_dbase WHERE page = 'a'";
  $sql1 = mysql_query($query1) or die(mysql_error());
  $ds1 = mysql_fetch_object($sql1);
   $admin_mail =  $ds1->mail;
   $a_mail =  $ds1->mail;
   $a_counter =  $ds1->counter;
   $a_start =  $ds1->start;
   $a_update =  $ds1->update; 
}
if($page_a_b_c=="b") {
$query2 = "SELECT * FROM $system_dbase WHERE page = 'b'";
  $sql2 = mysql_query($query2) or die(mysql_error());
  $ds2 = mysql_fetch_object($sql2);
   $b_mail =  $ds2->mail;
   $b_counter =  $ds2->counter;
   $b_start =  $ds2->start;
   $b_update =  $ds2->update; 
}
if($page_a_b_c=="c") {
$query3 = "SELECT * FROM $system_dbase WHERE page = 'c'";
  $sql3 = mysql_query($query3) or die(mysql_error());
  $ds3 = mysql_fetch_object($sql3);
   $c_mail =  $ds3->mail;
   $c_counter =  $ds3->counter;
   $c_start =  $ds3->start;
   $c_update =  $ds3->update; 
}
if($page_a_b_c=="d") {
$query4 = "SELECT * FROM $system_dbase WHERE page = 'd'";
  $sql4 = mysql_query($query4) or die(mysql_error());
  $ds4 = mysql_fetch_object($sql4);
   $d_mail =  $ds4->mail;
   $d_counter =  $ds4->counter;
   $d_start =  $ds4->start;
   $d_update =  $ds4->update; 
} }
//if navigation? links oder rechts, oder beides?
$query = "SELECT nav FROM $navi_dbase WHERE nav = 'nav_li' AND type = 'inc' AND acp = '0'";
  $sql = mysql_query($query) or die(mysql_error());
  while ($ds = mysql_fetch_object($sql)) {
	$if_navigation_li =  $ds->nav;
}
$query = "SELECT nav FROM $navi_dbase WHERE nav = 'nav_re' AND type = 'inc' AND acp = '0'";
  $sql = mysql_query($query) or die(mysql_error());
  while ($ds = mysql_fetch_object($sql)) {
	$if_navigation_re =  $ds->nav;
}
//IM-load
//IM-zufall-parameter
//PM-count
//PM-Info-Daten (Message-Box)
//User online

//$submit und $action-übergabe!!!
?>
Mit Zitat antworten
 
Anzeige
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

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.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Nächster Verteiler, wie weit ? Datenbank Abfrage ? deepbluesky Internet via Glasfaser (AON, GPON und Ethernet) 10 23.09.2007 12:42
Vergleich zwischen Excel und einer Datenbank MartinK. Software 3 14.02.2006 13:40
Ausgabe bei einer mySQL-Datenbank Ehemalige Benutzer Sonstiges 5 19.09.2001 17:51
Datensicherung einer Mysql Datenbank vratislav Sonstiges 6 25.04.2001 19:51
Speichern und Aufruf in/aus einer Datenbank Ehemalige Benutzer Sonstiges 16 20.04.2001 05:03


Alle Zeitangaben in WEZ +2. Es ist jetzt 11:59 Uhr.


Basiert auf vBulletin®
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.