Diese Board wurde aus Spamschutz-Gründen auf minimale Funktionen beschränkt.
Nutze für neue Anfragen/Bug-Reports bitte meine Gitlab-Instanz.
Nutze für neue Anfragen/Bug-Reports bitte meine Gitlab-Instanz.
Datenbank Problem
Moderator: Lifestyle
- der-domi
- Site Admin
- Beiträge: 673
- Registriert: Di 4. Apr 2006, 19:22
- Kontaktdaten:
Mich ärgert es einfach, dass du hier doch sehr den Eindruck hinterlässt ein fehlerfreies Skript zu erwarten.
MySQL, PHP und Apache sind mit so vielen Version und verschiedenen Konfigurationen im Betrieb, dass es überhaupt nicht möglich ist alle Kombinationen zu testen.
Es ist ganz normal, dass immer wieder Fehler auftreten!
Das Problem mit der SETTING-Tabelle ist behoben, da hier nur ein SET fehlt.
MySQL, PHP und Apache sind mit so vielen Version und verschiedenen Konfigurationen im Betrieb, dass es überhaupt nicht möglich ist alle Kombinationen zu testen.
Es ist ganz normal, dass immer wieder Fehler auftreten!
Das Problem mit der SETTING-Tabelle ist behoben, da hier nur ein SET fehlt.
Nicht verzagen, Domi fragen
Viele Grüße
Dominik
Viele Grüße
Dominik
- der-domi
- Site Admin
- Beiträge: 673
- Registriert: Di 4. Apr 2006, 19:22
- Kontaktdaten:
Sorry, dass ich ein wenig überzogen reagiert habe...
Um das DaBa-Problem zu beheben, empfehle ich in der DaBa-Klasse "classes/class.db.php" am Ende des Konstruktors (Zeile 87) diesen Befehl hinzuzufügen. Dadurch wird der Modus zurückgesetzt. Mit dem nächsten Update werden die Fehler beseitigt.
Im Installationsskript ist der Fehler nicht weiter dragisch. Enftfernen tut man ihn durch Ersetzen mit Kann zur Not aber auch im Settings-Menü geändert werden...
Um das DaBa-Problem zu beheben, empfehle ich in der DaBa-Klasse "classes/class.db.php" am Ende des Konstruktors (Zeile 87) diesen Befehl hinzuzufügen.
Code: Alles auswählen
$this->go( "SET @@session.sql_mode='';", TRUE );
Im Installationsskript ist der Fehler nicht weiter dragisch. Enftfernen tut man ihn durch Ersetzen mit
Code: Alles auswählen
$sql = "UPDATE $myDB->SETTINGS SET Wert=\"0\" WHERE Variable=\"anzTopFilme\"";
$rs = $myDB->go($sql);
$sql = "UPDATE $myDB->SETTINGS SET Wert=\"0\" WHERE Variable=\"anzNeueFilme\"";
$rs = $myDB->go($sql);
$sql = "UPDATE $myDB->SETTINGS SET Wert=\"0\" WHERE Variable=\"anzBestFilme\"";
$rs = $myDB->go($sql);
Nicht verzagen, Domi fragen
Viele Grüße
Dominik
Viele Grüße
Dominik
- der-domi
- Site Admin
- Beiträge: 673
- Registriert: Di 4. Apr 2006, 19:22
- Kontaktdaten:
Weiß ich nicht. Nach einem Datenbank-Reset war der Modus wieder zurückgesetzt, meine ich. Außerdem denke ich, dass das Auswirkungen auf alle Skripte hat, oder?Jonesy hat geschrieben:wäre es nicht einfacher nureinmal in phpmyadmin einzugeben?SET @@global.sql_mode='';
Nicht verzagen, Domi fragen
Viele Grüße
Dominik
Viele Grüße
Dominik
hmm alleine durch das "global" im code wird für mich deutlich dass das alle skripte betrifft...egal wo ausgeführt
Setting the GLOBAL variable requires the SUPER privilege and affects the operation of all clients that connect from that time on. Setting the SESSION variable affects only the current client
Setting the GLOBAL variable requires the SUPER privilege and affects the operation of all clients that connect from that time on. Setting the SESSION variable affects only the current client
-
- Beiträge: 139
- Registriert: Mi 20. Dez 2006, 15:22
- Kontaktdaten:
Ich habe einen Fehler bei der Ausgabe der Suche bei Regisseur und Schauspieler.
Bei der domi demo wird auch dieser Fehler ausgegeben. Oder ist das so gewollt, wahrscheinlich nicht.?!
----------------------------------------------------------------------------------------------------------------------------
Hallo, ich habe seit kurzem beim Suchen von Regisseur und Schauspieler folgenden Fehler (bei Filmtitel und FilmID geht alles)
SELECT DISTINCT COUNT(*) AS ANZ FROM filme_REGISSEURE re WHERE Name Cameron, James AND re.RegisseurID IN( SELECT REGISSEURE_RegisseurID FROM filme_FILME_REGISSEURE fr INNER JOIN filme_FILME fi ON fr.FILME_FilmID=fi.FilmID WHERE fi.FilmID IN ( SELECT fi2.FilmID FROM filme_FILME fi2 INNER JOIN filme_FORMATE fo2 ON fi2.FORMATE_FormatID = fo2.FormatID INNER JOIN filme_COLLECT co2 ON fi2.COLLECT_CollectID = co2.CollectID WHERE fo2.brauchtPrivileg <= 1 AND co2.brauchtPrivileg <= 1 AND fi2.brauchtPrivileg <= 1 AND ( SELECT COUNT(*) FROM filme_FILME fi3 INNER JOIN filme_FILME_GENRES fg3 ON fg3.FILME_FilmID = fi3.FilmID INNER JOIN filme_GENRES ge3 ON ge3.GenreID = fg3.GENRES_GenreID WHERE ge3.brauchtPrivileg > 1 AND fi3.FilmID = fi.FilmID) = 0) AND fi.FSK <= 18 )
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Cameron, James AND re.RegisseurID IN( SELECT REGISSEURE_RegisseurID FROM filme_' at line 1
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /www/htdocs/w0074a7d/filmdb/classes/class.db.php on line 127
SELECT DISTINCT COUNT(*) AS ANZ, LEFT(Name, 1) AS Letter FROM filme_REGISSEURE re WHERE Name Cameron, James AND re.RegisseurID IN( SELECT REGISSEURE_RegisseurID FROM filme_FILME_REGISSEURE fr INNER JOIN filme_FILME fi ON fr.FILME_FilmID=fi.FilmID WHERE fi.FilmID IN ( SELECT fi2.FilmID FROM filme_FILME fi2 INNER JOIN filme_FORMATE fo2 ON fi2.FORMATE_FormatID = fo2.FormatID INNER JOIN filme_COLLECT co2 ON fi2.COLLECT_CollectID = co2.CollectID WHERE fo2.brauchtPrivileg <= 1 AND co2.brauchtPrivileg <= 1 AND fi2.brauchtPrivileg <= 1 AND ( SELECT COUNT(*) FROM filme_FILME fi3 INNER JOIN filme_FILME_GENRES fg3 ON fg3.FILME_FilmID = fi3.FilmID INNER JOIN filme_GENRES ge3 ON ge3.GenreID = fg3.GENRES_GenreID WHERE ge3.brauchtPrivileg > 1 AND fi3.FilmID = fi.FilmID) = 0) AND fi.FSK <= 18 ) GROUP BY Letter HAVING Letter IN (SELECT DISTINCT LEFT(Name, 1) AS Letter FROM filme_REGISSEURE)
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Cameron, James AND re.RegisseurID IN( SELECT REGISSEURE_RegisseurID FROM filme_F' at line 1
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /www/htdocs/w0074a7d/filmdb/classes/class.db.php on line 127
alle
Suche: keine Regisseure für Cameron, James (Suchformular)
* Seite:
*
*
* [1]
Bei der domi demo wird auch dieser Fehler ausgegeben. Oder ist das so gewollt, wahrscheinlich nicht.?!
----------------------------------------------------------------------------------------------------------------------------
Hallo, ich habe seit kurzem beim Suchen von Regisseur und Schauspieler folgenden Fehler (bei Filmtitel und FilmID geht alles)
SELECT DISTINCT COUNT(*) AS ANZ FROM filme_REGISSEURE re WHERE Name Cameron, James AND re.RegisseurID IN( SELECT REGISSEURE_RegisseurID FROM filme_FILME_REGISSEURE fr INNER JOIN filme_FILME fi ON fr.FILME_FilmID=fi.FilmID WHERE fi.FilmID IN ( SELECT fi2.FilmID FROM filme_FILME fi2 INNER JOIN filme_FORMATE fo2 ON fi2.FORMATE_FormatID = fo2.FormatID INNER JOIN filme_COLLECT co2 ON fi2.COLLECT_CollectID = co2.CollectID WHERE fo2.brauchtPrivileg <= 1 AND co2.brauchtPrivileg <= 1 AND fi2.brauchtPrivileg <= 1 AND ( SELECT COUNT(*) FROM filme_FILME fi3 INNER JOIN filme_FILME_GENRES fg3 ON fg3.FILME_FilmID = fi3.FilmID INNER JOIN filme_GENRES ge3 ON ge3.GenreID = fg3.GENRES_GenreID WHERE ge3.brauchtPrivileg > 1 AND fi3.FilmID = fi.FilmID) = 0) AND fi.FSK <= 18 )
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Cameron, James AND re.RegisseurID IN( SELECT REGISSEURE_RegisseurID FROM filme_' at line 1
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /www/htdocs/w0074a7d/filmdb/classes/class.db.php on line 127
SELECT DISTINCT COUNT(*) AS ANZ, LEFT(Name, 1) AS Letter FROM filme_REGISSEURE re WHERE Name Cameron, James AND re.RegisseurID IN( SELECT REGISSEURE_RegisseurID FROM filme_FILME_REGISSEURE fr INNER JOIN filme_FILME fi ON fr.FILME_FilmID=fi.FilmID WHERE fi.FilmID IN ( SELECT fi2.FilmID FROM filme_FILME fi2 INNER JOIN filme_FORMATE fo2 ON fi2.FORMATE_FormatID = fo2.FormatID INNER JOIN filme_COLLECT co2 ON fi2.COLLECT_CollectID = co2.CollectID WHERE fo2.brauchtPrivileg <= 1 AND co2.brauchtPrivileg <= 1 AND fi2.brauchtPrivileg <= 1 AND ( SELECT COUNT(*) FROM filme_FILME fi3 INNER JOIN filme_FILME_GENRES fg3 ON fg3.FILME_FilmID = fi3.FilmID INNER JOIN filme_GENRES ge3 ON ge3.GenreID = fg3.GENRES_GenreID WHERE ge3.brauchtPrivileg > 1 AND fi3.FilmID = fi.FilmID) = 0) AND fi.FSK <= 18 ) GROUP BY Letter HAVING Letter IN (SELECT DISTINCT LEFT(Name, 1) AS Letter FROM filme_REGISSEURE)
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Cameron, James AND re.RegisseurID IN( SELECT REGISSEURE_RegisseurID FROM filme_F' at line 1
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /www/htdocs/w0074a7d/filmdb/classes/class.db.php on line 127
alle
Suche: keine Regisseure für Cameron, James (Suchformular)
* Seite:
*
*
* [1]
-
- Beiträge: 139
- Registriert: Mi 20. Dez 2006, 15:22
- Kontaktdaten:
Hab das Problem gefunden:
Man bearbeite die Datei functions.php im Verzeichnis include.
Man gehe zur Zeile 647:
Man ersetzt:
case "Actors":
{
$sql = "SELECT DISTINCT COUNT(*) AS ANZ FROM $myDB->ACTORS re WHERE Name $myVar->searchFor $myVar->sqlLetterName AND re.ActorID IN( SELECT ACTORS_ActorID FROM $myDB->FILME_ACTORS fa INNER JOIN $myDB->FILME fi ON fa.FILME_FilmID=fi.FilmID WHERE ".$myDB->sqlForPriv." )";
$sqlForLetters = "SELECT DISTINCT COUNT(*) AS ANZ, LEFT(Name, 1) AS Letter FROM $myDB->ACTORS re WHERE Name $myVar->searchFor AND re.ActorID IN( SELECT ACTORS_ActorID FROM $myDB->FILME_ACTORS fa INNER JOIN $myDB->FILME fi ON fa.FILME_FilmID=fi.FilmID WHERE ".$myDB->sqlForPriv." ) GROUP BY Letter HAVING Letter IN (SELECT DISTINCT LEFT(Name, 1) AS Letter FROM $myDB->ACTORS)";
break;
}
case "Regisseure":
{
$sql = "SELECT DISTINCT COUNT(*) AS ANZ FROM $myDB->REGISSEURE re WHERE Name $myVar->searchFor $myVar->sqlLetterName AND re.RegisseurID IN( SELECT REGISSEURE_RegisseurID FROM $myDB->FILME_REGISSEURE fr INNER JOIN $myDB->FILME fi ON fr.FILME_FilmID=fi.FilmID WHERE ".$myDB->sqlForPriv." )";
$sqlForLetters = "SELECT DISTINCT COUNT(*) AS ANZ, LEFT(Name, 1) AS Letter FROM $myDB->REGISSEURE re WHERE Name $myVar->searchFor AND re.RegisseurID IN( SELECT REGISSEURE_RegisseurID FROM $myDB->FILME_REGISSEURE fr INNER JOIN $myDB->FILME fi ON fr.FILME_FilmID=fi.FilmID WHERE ".$myDB->sqlForPriv." ) GROUP BY Letter HAVING Letter IN (SELECT DISTINCT LEFT(Name, 1) AS Letter FROM $myDB->REGISSEURE)";
break;
}
--------------------------------------------------------------------------------------------------------------------------------
Mit:
case "Actors":
{
$sql = "SELECT COUNT(*) AS ANZ FROM $myDB->ACTORS WHERE $myVar->searchVar $myVar->sqlLetterName";
$sqlForLetters = "SELECT COUNT(*) AS ANZ, LEFT(Name, 1) AS Letter FROM $myDB->ACTORS WHERE $myVar->searchVar GROUP BY Letter HAVING Letter IN (SELECT DISTINCT LEFT(Name, 1) AS Letter FROM $myDB->ACTORS)";
break;
}
case "Regisseure":
{
$sql = "SELECT COUNT(*) AS ANZ FROM $myDB->REGISSEURE WHERE $myVar->searchVar $myVar->sqlLetterName";
$sqlForLetters = "SELECT COUNT(*) AS ANZ, LEFT(Name, 1) AS Letter FROM $myDB->REGISSEURE WHERE $myVar->searchVar GROUP BY Letter HAVING Letter IN (SELECT DISTINCT LEFT(Name, 1) AS Letter FROM $myDB->REGISSEURE)";
break;
}
Man bearbeite die Datei functions.php im Verzeichnis include.
Man gehe zur Zeile 647:
Man ersetzt:
case "Actors":
{
$sql = "SELECT DISTINCT COUNT(*) AS ANZ FROM $myDB->ACTORS re WHERE Name $myVar->searchFor $myVar->sqlLetterName AND re.ActorID IN( SELECT ACTORS_ActorID FROM $myDB->FILME_ACTORS fa INNER JOIN $myDB->FILME fi ON fa.FILME_FilmID=fi.FilmID WHERE ".$myDB->sqlForPriv." )";
$sqlForLetters = "SELECT DISTINCT COUNT(*) AS ANZ, LEFT(Name, 1) AS Letter FROM $myDB->ACTORS re WHERE Name $myVar->searchFor AND re.ActorID IN( SELECT ACTORS_ActorID FROM $myDB->FILME_ACTORS fa INNER JOIN $myDB->FILME fi ON fa.FILME_FilmID=fi.FilmID WHERE ".$myDB->sqlForPriv." ) GROUP BY Letter HAVING Letter IN (SELECT DISTINCT LEFT(Name, 1) AS Letter FROM $myDB->ACTORS)";
break;
}
case "Regisseure":
{
$sql = "SELECT DISTINCT COUNT(*) AS ANZ FROM $myDB->REGISSEURE re WHERE Name $myVar->searchFor $myVar->sqlLetterName AND re.RegisseurID IN( SELECT REGISSEURE_RegisseurID FROM $myDB->FILME_REGISSEURE fr INNER JOIN $myDB->FILME fi ON fr.FILME_FilmID=fi.FilmID WHERE ".$myDB->sqlForPriv." )";
$sqlForLetters = "SELECT DISTINCT COUNT(*) AS ANZ, LEFT(Name, 1) AS Letter FROM $myDB->REGISSEURE re WHERE Name $myVar->searchFor AND re.RegisseurID IN( SELECT REGISSEURE_RegisseurID FROM $myDB->FILME_REGISSEURE fr INNER JOIN $myDB->FILME fi ON fr.FILME_FilmID=fi.FilmID WHERE ".$myDB->sqlForPriv." ) GROUP BY Letter HAVING Letter IN (SELECT DISTINCT LEFT(Name, 1) AS Letter FROM $myDB->REGISSEURE)";
break;
}
--------------------------------------------------------------------------------------------------------------------------------
Mit:
case "Actors":
{
$sql = "SELECT COUNT(*) AS ANZ FROM $myDB->ACTORS WHERE $myVar->searchVar $myVar->sqlLetterName";
$sqlForLetters = "SELECT COUNT(*) AS ANZ, LEFT(Name, 1) AS Letter FROM $myDB->ACTORS WHERE $myVar->searchVar GROUP BY Letter HAVING Letter IN (SELECT DISTINCT LEFT(Name, 1) AS Letter FROM $myDB->ACTORS)";
break;
}
case "Regisseure":
{
$sql = "SELECT COUNT(*) AS ANZ FROM $myDB->REGISSEURE WHERE $myVar->searchVar $myVar->sqlLetterName";
$sqlForLetters = "SELECT COUNT(*) AS ANZ, LEFT(Name, 1) AS Letter FROM $myDB->REGISSEURE WHERE $myVar->searchVar GROUP BY Letter HAVING Letter IN (SELECT DISTINCT LEFT(Name, 1) AS Letter FROM $myDB->REGISSEURE)";
break;
}
- der-domi
- Site Admin
- Beiträge: 673
- Registriert: Di 4. Apr 2006, 19:22
- Kontaktdaten:
- der-domi
- Site Admin
- Beiträge: 673
- Registriert: Di 4. Apr 2006, 19:22
- Kontaktdaten:
Wer ist online?
Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast