SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Webseiten professionell erstellen

Webseiten professionell erstellen zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > MySQLi/PDO/(MySQL)
Hilfe Community Kalender Heutige Beiträge Suchen

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

 
 
Themen-Optionen Ansicht
  #1  
Alt 24.08.2010, 19:10:42
knight1 knight1 ist offline
Junior Member
 
Registriert seit: May 2003
Ort: Trier
Alter: 47
Beiträge: 310
knight1 eine Nachricht über MSN schicken knight1 eine Nachricht über Skype™ schicken
Problem mit Join

Hi SELFPHP-Community,
folgendes Problem beschäftigt mich jetzt schon einige Stunden.
Ich habe folgende Tabellen:
Mitgliedertabelle (auf das wesentlichste gekürzt):
PHP-Code:
CREATE TABLE IF NOT EXISTS `tce__members` (
  `
idbigint(20unsigned NOT NULL AUTO_INCREMENT,
  `
firstnamevarchar(255COLLATE latin1_general_cs NOT NULL,
  `
surnamevarchar(255COLLATE latin1_general_cs NOT NULL,
  `
login_availableenum('0','1'COLLATE latin1_general_cs NOT NULL DEFAULT '0',
  `
notes-activeenum('0','1'COLLATE latin1_general_cs NOT NULL DEFAULT '0'
); 
Außerdem gibts noch eine Administartorentabelle mit den selben Feldern bis auf 'login_avaliable'. Dort heißt es 'active'.

Tabelle mit den Notizen:
PHP-Code:
CREATE TABLE IF NOT EXISTS `tce__notes` (
  `
idbigint(20unsigned NOT NULL AUTO_INCREMENT,
  `
textmediumtext COLLATE latin1_general_cs NOT NULL,
  `
colortinyint(3unsigned NOT NULL DEFAULT '3',
  `
entry_by_groupenum('0','1'COLLATE latin1_general_cs NOT NULL,
  `
entry_by_idbigint(20unsigned NOT NULL,
  `
entry_datetimedatetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `
last_update_datetimedatetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `
last_update_by_groupenum('0','1'COLLATE latin1_general_cs NOT NULL DEFAULT '0',
  `
last_update_by_idbigint(20unsigned NOT NULL DEFAULT '0',
  `
last_update_remote_adressvarchar(15COLLATE latin1_general_cs NOT NULL DEFAULT '000.000.000.000'
); 
Tabellen mit den Einträgen dafür wer die jeweilge Notiz sehen darf und wer davon sie auch ändern darf.
PHP-Code:
CREATE TABLE IF NOT EXISTS `tce__notes-visible_for` (
  `
idint(255unsigned NOT NULL AUTO_INCREMENT,
  `
note_idbigint(20unsigned NOT NULL,
  `
user_groupenum('0','1'COLLATE latin1_general_cs NOT NULL,
  `
user_idbigint(20unsigned NOT NULL
); 
Die Struktur der Tabelle 'tce__notes-editable_for' ist zu dieser identisch.

Ich versuche jetzt schon seit Stunden einen JOIN hinzubekommen welcher aber nicht das gewünschte Resultat liefert.


Jede Person welche Zugang zu dem Administrationsbereich hat, um den es hier geht, kann wenn es in derem Profil aktiviert wurde die Notizen-Funktion nutzen.
In dem Formular zum anlegen einer neuen Notiz gibt es eine Auswahliste in der man die entsprechenden Vereinsmitglieder bzw. Administratoren auswählen kann welche zur Verfügung stehen (Abhängig davon ob die Person Zugang hat und die Funktion für diese aktiviert wurde). Diese Auswahl wird dann in der Tabelle 'tce__notes-visible_for' abgespeichert.
In dem Formular zum ändern der Notiz gibt es eine Auswahlliste über die man einstellen kann wer von denen die die Notiz sehen dürfen diese auch ändern dürfen.
Man soll aber nur die Personen auswählen können welche auch die Notiz sehen können.
Und da dachte ich mir jetzt dass ich die entsprechende User-Tabelle (Mitglieder oder Admins) über einen Join mit der 'tce__notes-visible_for' "Verbinde".
Da ich bisher noch nicht sehr viel mit JOINs gearbeitet habe (bei denen hatte ich nur Glück, denke ich), stehe ich jetzt gehörig auf dem Schlauch. Die Erklärung im MySQL-Manual zu den JOINs hilft mir nicht wirklich.
Mir ist noch nicht klar was der MySQL-DBMS-Server da genau macht wenn man einen oder mehrere JOINs in das Statement einbaut.
Meine bisherigen hauptsächlichen Erfahrungen mit MySQL beziehen sich auf einfachste SELECTs (Und Sub-SELECTs), INSERTs, UPDATEs und DELETEs. Damit kam ich bisher immer aus.

Hier mal mein bisheriger Versuch:
PHP-Code:
SELECT
`".MYSQL_TABLE_MEMBERS."`.`id`,
`
".MYSQL_TABLE_MEMBERS."`.`firstname`,
`
".MYSQL_TABLE_MEMBERS."`.`surname`
FROM
`".MYSQL_TABLE_MEMBERS."`
LEFT JOIN
`".MYSQL_TABLE_NOTES_VISIBLE_FOR."`
ON
(
    (`
".MYSQL_TABLE_NOTES_VISIBLE_FOR."`.`user_group` = '0') &&
    (`
".MYSQL_TABLE_NOTES_VISIBLE_FOR."`.`user_id` = `".MYSQL_TABLE_MEMBERS."`.`id`) &&
    (`
".MYSQL_TABLE_NOTES_VISIBLE_FOR."`.`note_id` = '{$return['note']['id']}')
)
WHERE
(
    (`
".MYSQL_TABLE_MEMBERS."`.`login_available` = '1') &&
    (`
".MYSQL_TABLE_MEMBERS."`.`notes-active` = '1')
)
ORDER BY
`".MYSQL_TABLE_MEMBERS."`.`surnameASC,
`
".MYSQL_TABLE_MEMBERS."`.`firstnameASC 
Die Konstanten die mit "MYSQL_TABLE_" beginnen, beinhalten den Namen der jeweiligen Tabelle.
Da es sich um Code innerhalb einer Methode handelt erstelle ich das Array $return um darin Rückgabewerte abzuspeichern und dann zum Schluss per RETURN zurückzugeben.
Sowohl die Konstanten als auch die genutzten Variablen und Arrays werden korrekt an die Methode bzw. innerhalb der Methode über-/weitergegeben und haben auch die korrekten Daten/Informationen als Inhalt/Wert.
Der Error-Level steht während der Entwicklung grundsätzlich auf "E_ALL | E_STRICT".
Meldungen irgendwelcher Art erscheinen keinen.
Es wird z.B. der Name eines Mitglieds in der Auswahlliste für das Ändern angezeigt obwohl das Mitglied nicht für das anzeigen ausgewählt wurde.
Meine Vermutung geht nun dahin dass der JOIN nicht stimmt und daher Resultate liefert die nicht kommen dürfen.
Bei den Mitgliedern ist zum Testen bei mir auf meinem Entwicklungsserver einem einzigen Mitglied der Zugang und die Notizenfunktion aktiviert worden.


Ich hoffe Ihr habt eine Idee.
Vielleicht sehe ich ja auch einfach den Wald vor lauter Bäumen nicht, oder habe einfach nur einen Denkfehler.


Kai aka Knight1
__________________
Please visit: http://www.kaikordel.de
Mit Zitat antworten
 


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

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 aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Upload von Fotos, die in eine DB eingetragen werden sollen. Problem 2 jf-flasher PHP Grundlagen 2 01.02.2009 17:20:41
Links zählen - Problem mit While Schleife Rick11 PHP für Fortgeschrittene und Experten 7 10.07.2008 18:05:57
Vielfacher JOIN für mein Forum VM MySQLi/PDO/(MySQL) 5 25.05.2008 00:10:58
Javascript problem... Rikku2000 HTML, CSS und JavaScript Help! 2 13.02.2008 17:22:46
mysql query mit Join problem Silencer PHP für Fortgeschrittene und Experten 4 18.03.2003 15:38:31


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:58:52 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt