Zum Inhalt springen

SQL-Abfrage unter typo3

Erstellt am 29. April 2004 · 12 Antworten · letzte Antwort am 7. Mai 2004

Tags: Datenbank, Frage

ManfredK ·

Ich habe folgendes Problem:
Ich habe eine umfangreiche Bibliotheksdatenbank erfolgreich von MS Access nach Mysql umgewandelt und in die Tabelle in die Datenbank von Typo3 geladen. Nun möchte ich per SQL-Anweisung auf diese Datenbank zugreifen.
Gibt es ein Modul, mit dem ich das realisieren kann?
Manfred

TW ·
ManfredK schrieb

Ich habe folgendes Problem:
Ich habe eine umfangreiche Bibliotheksdatenbank erfolgreich von MS Access nach Mysql umgewandelt und in die Tabelle in die Datenbank von Typo3 geladen. Nun möchte ich per SQL-Anweisung auf diese Datenbank zugreifen.
Gibt es ein Modul, mit dem ich das realisieren kann?
Manfred

hi
da musst du dir eine extension bauen, die dann die daten aus der datenbank ausliest.......
es ist übrigens mysql #giggle#

http://typo3.org/documentation/document-library/player_profile_basic/

hier hast du ein kurzes tutorial um zu sehen, wie man die inhalte aus tables liest..

cu
thorsten

bnai ·

hi,

habe ähnliches vor. will ein paar neue Tabellen zu der Datenbank hinzufügen. Gibt es da was zu beachten? Werde das an nem produktiven System durchführen. Denkt ihr, das ist zu gefährlich? Ich will mir auf keinen Fall die DB zerschießen...

Auf diese Datenbank wollte ich dann eigentlich via der "Page PHP Content"-Extenstion zugreifen. Nach dem was ich hier grade gelesen habe, geht das ja nicht, oder doch?

ManfredK ·

Robert Meyer hat mir folgenden Tipp gegeben.
Im Setup die folgenden Zeilen einfügen:

seite.10 = PHP_SCRIPT_INT
seite.10.file = fileadmin/meinscript.php

Dabei ist meinscript dann der Script, mit dem du Datenbankzugriffe machst. Allerdings muss du das php-Script statt der Endung .php in (z.B.) .inc umwandeln, da im Ordner fileadmin keine Dateien mit .php-Endung hochgeladen werden können.

Die neuen Tabellen habe ich inzwischen mit einem sql-Dump in die bestehende Typo3-Datenbank hochgeladen. Allerdings konnte ich die 15.000 Datensätze, die ich habe, nicht auf einmal hochladen, so dass ich in Stücken von je 1000 Datensätzen hochgeladen habe.
Manfred

ManfredK ·
bnai schrieb

hi,

Auf diese Datenbank wollte ich dann eigentlich via der "Page PHP Content"-Extenstion zugreifen. Nach dem was ich hier grade gelesen habe, geht das ja nicht, oder doch?

Eine sql-Abfrage habe ich inzwischen mit der Page-php-content Extension realisieren können.
Allerdings gelingt es mir nicht, über ein Formular Werte in das php-Script im Page-php-content zu übergeben. Mein Formular sieht so aus:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>Eingabe</title>
</head>
<body>
<div align="center">
<form action="index.php?id=28" method="post">
Feld1: <input name="feld1" size="60" maxlength="60"><br>
Feld2: <input name="feld2" size="60" maxlength="60"><br>
<input type="submit" value="OK">
<input type="reset" value="Abbrechen">
</form>
</div>
</body>
</html>

index.php?Id=28 ist die Seite, auf der sich der php-content befindet. In diesem Script gibt es die Variable $field1, der der Wert aus feld1 übergeben werden soll. Wie muss ich die form action genau formulieren, damit der Wert korrekt übergeben wird. Muss ich irgendwo noch die ID des php-content (bei mir ID=160) angeben?
Übrigens: Wenn ich eine Seite mit dem php-Script im Ordner html meiner Typo3-Installation ablege, wird dort das Ergebnis (also jenseits von Typo3) korrekt angezeigt. Das php-Script scheint also richtig zu sein, nur die Wertübergabe an die Variable gelingt nicht.
Manfred

bnai ·

das ist ne gute frage, ich schau mal nach, wie man das machen kann. kannst du mir mal den code (beispiel) zum auslesen der db posten?

bnai ·

also, man muss die werte via URL übergeben, soweit ich das verstanden hab. habe ich auch schon das eine oder andere mal gemacht.

also sobald du bei dir den submit button drückst, sollte er bei dir die URL "index.php?id=28" aufrufen und die eingegebenen Werte dranhängen, also so ungefähr:

index.php?id=28?feld1=wert&feld2=wert

wobei wert für deine eingabe steht. aus den PHP Globals kannst du dir dann die URI geben lassen und die werte raussaugen.

bnai ·

den code brauchst du mir nich mehr posten, man kann ja wie üblich abfragen abschicken...

stefan s ·

in deinem php-script kann st du mit

$field1 = $GLOBALS["HTTP_POST_VARS"]["feld1"];

auch auf formulardaten (method= "POST") zugreifen

ManfredK ·
stefan s schrieb

in deinem php-script kann st du mit

$field1 = $GLOBALS["HTTP_POST_VARS"]["feld1"];

auch auf formulardaten (method= "POST") zugreifen

Wo genau müsste ich diese Zeile einfügen?
Mein Script sieht zur Zeit (die Ausgabezeilen sind zunächst nur zum Test so einfach gehalten!):

?php

echo "Ergebnis der Suche nach $feld1<br>";

$host = "localhost";
$username = "Benutzername";
$password = "Password";

mysql_connect ($host,$username,$password);

mysql_select_db("meineDatenbank");
$query = "SELECT f110, f200 FROM aadoku WHERE f720 like '%$feld1%'";

$result = mysql_query($query);
$number = mysql_num_rows($result);

print "Es sind $number Datensätze<br>";
while($row = mysql_fetch_array($result)) {
echo $row["f110"];
echo $row["f200"];
echo "<br>";
}
?>

ManfredK ·
stefan s schrieb

in deinem php-script kann st du mit

$field1 = $GLOBALS["HTTP_POST_VARS"]["feld1"];

auch auf formulardaten (method= "POST") zugreifen

Mein vorherige Beitrag hat sich erledigt. Ich habe die Zeile einfach an den Anfang gesetzt.
Allerdings war ein Schreibfehler in deiner Zeile: Ich musste am Anfang field in feld umbenennen. Deshalb funktionierte es zunächst nicht!
Vielen Dank!

stefan s ·

von wegen schreibfehler *beleidigttu*

index.php?Id=28 ist die Seite, auf der sich der php-content befindet. In diesem Script gibt es die Variable $field1, der der Wert aus feld1 übergeben werden soll.

aus deinem beitrag vom 05 Mai 2004 19:05 😃

ManfredK ·
stefan s schrieb

von wegen schreibfehler *beleidigttu*

index.php?Id=28 ist die Seite, auf der sich der php-content befindet. In diesem Script gibt es die Variable $field1, der der Wert aus feld1 übergeben werden soll.

aus deinem beitrag vom 05 Mai 2004 19:05 😃

O sorry, mea culpa! :o