+ Antworten
Ergebnis 1 bis 10 von 10

Thema: Datenbank Abfrage

  1. #1
    Neu an Board
    Registriert seit
    06.11.2006
    Beiträge
    38
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard Datenbank Abfrage

    Hallo,
    ich weiß nicht ob ich in diesem Bereich hier richtig bin. Es geht um Datenbankabfragen in Joomla.

    Ich habe folgendes Suchformular:

    HTML-Code:
    <form name="search" method="post" >
    Suche: <input class="inputbox" type="text" size="20" maxlength="40" name="suchanfrage" /></form>
    Un nun möchte ich eine Datanbank Abfrage starten die 2 Tabellen beinhalten soll.

    Die Abfrage soll wie nach folgendem Schema ablaufen (Is nur ein Schema und kein korrektes SQL):

    SELECT id, content, title FROM jos_tabelle1, jos_tabelle2 WHERE * like $_POST['suchanfrage']

    In der Ausgabe soll dann nur der Wert des Feldes title ausgegeben werden der auf die Abfrage passt. Es sind mehere Ergebnisse möglich da es sich um eine Suchabfrage handelt. Also denke ich das man wohl mit while arbeiten muss.

    Vielleicht kann mir da jemand helfen wie ich das am simpelsten mit Joomla verwirklichen kann.

  2. #2
    Kommt häufiger vorbei
    Registriert seit
    07.09.2009
    Beiträge
    466
    Bedankte sich
    4
    Erhielt 113 Danksagungen
    in 110 Beiträgen

    Standard

    Zitat Zitat von Martin83 Beitrag anzeigen
    Hallo,
    ich weiß nicht ob ich in diesem Bereich hier richtig bin. Es geht um Datenbankabfragen in Joomla.

    Ich habe folgendes Suchformular:

    HTML-Code:
    <form name="search" method="post" >
    Suche: <input class="inputbox" type="text" size="20" maxlength="40" name="suchanfrage" /></form>
    Un nun möchte ich eine Datanbank Abfrage starten die 2 Tabellen beinhalten soll.

    Die Abfrage soll wie nach folgendem Schema ablaufen (Is nur ein Schema und kein korrektes SQL):

    SELECT id, content, title FROM jos_tabelle1, jos_tabelle2 WHERE * like $_POST['suchanfrage']

    In der Ausgabe soll dann nur der Wert des Feldes title ausgegeben werden der auf die Abfrage passt. Es sind mehere Ergebnisse möglich da es sich um eine Suchabfrage handelt. Also denke ich das man wohl mit while arbeiten muss.

    Vielleicht kann mir da jemand helfen wie ich das am simpelsten mit Joomla verwirklichen kann.
    nuja also vom technischen her holst dir die db von der joomla factory:

    $meinedb=JFactory:getDB0();
    $meinedb->SetQuery(SELECT id, content, title FROM jost_tabelle1 WHERE id=='$POST["suchanfrage"] OR content='$POST["Suchanfrage"]//... bla ka was du genau abfragen willst
    $row=$meinedb->loadObjectList();
    //in $row kannst dann die felder abfragen die beim ergebnis rausgekommen sind
    echo $row->id;$row->content //..etc.


    wenns nicht über das joomla framework gehn soll musst
    $connect=mysql_connect("localhost","benutzer","pw" );
    $db=mysql_select_db("name der datenbank",$connect);
    $erg=mysql_query("dein select query");
    $row=mysql_fetch_object($erg);
    Meine Antwort hat dir Stunden an Zeit gespart?
    Nimm dir die 2 Sekunden und drück auf den Dankebutton

  3. #3
    Neu an Board
    Registriert seit
    06.11.2006
    Beiträge
    38
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Danke für die Antwort. Aber es sollen 2 Tabellen abgefragt werden. Wie ist das realisierbar? einfach so z.B. ".....FROM tabelle1, tabelle2 WHERE ......"

  4. #4
    Kommt häufiger vorbei
    Registriert seit
    07.09.2009
    Beiträge
    466
    Bedankte sich
    4
    Erhielt 113 Danksagungen
    in 110 Beiträgen

    Standard

    Zitat Zitat von Martin83 Beitrag anzeigen
    Danke für die Antwort. Aber es sollen 2 Tabellen abgefragt werden. Wie ist das realisierbar? einfach so z.B. ".....FROM tabelle1, tabelle2 WHERE ......"
    das kommt drauf an was du machen willst beschreib doch mal worauf du überhaupt rauswillst?

    wenn du nur in 2 tabellen i-welche werte anschaun willst kannst auch einfach 2 queries hintereinander machen
    Meine Antwort hat dir Stunden an Zeit gespart?
    Nimm dir die 2 Sekunden und drück auf den Dankebutton

  5. #5
    Moderator Avatar von Lacki
    Registriert seit
    27.04.2006
    Ort
    Direkt um die Ecke
    Beiträge
    8.729
    Bedankte sich
    337
    Erhielt 3.611 Danksagungen
    in 2.970 Beiträgen

    Standard

    Zitat Zitat von Netpro Beitrag anzeigen
    ...$meinedb->SetQuery(SELECT id, content, title FROM jost_tabelle1 WHERE id=='$POST["suchanfrage"] OR content='$POST["Suchanfrage"]
    Zitat Zitat von Martin83 Beitrag anzeigen
    ...SELECT id, content, title FROM jos_tabelle1, jos_tabelle2 WHERE * like $_POST['suchanfrage']
    Von SQL-Injection habt Ihr aber schon gehört? Benutzereingaben bitte niemals ungeprüft übernehmen, das gehört zum 1 x 1 des Web-Programmierens.

  6. #6
    Kommt häufiger vorbei
    Registriert seit
    07.09.2009
    Beiträge
    466
    Bedankte sich
    4
    Erhielt 113 Danksagungen
    in 110 Beiträgen

    Standard

    Zitat Zitat von Lacki Beitrag anzeigen
    Von SQL-Injection habt Ihr aber schon gehört? Benutzereingaben bitte niemals ungeprüft übernehmen, das gehört zum 1 x 1 des Web-Programmierens.
    lol ich schreib ihm hier doch keine kontrollmechanismen rein es ging mir rein darum das er weiß wie er über joomla framework datenbankabfragen setzten aknn oder ohne das framework ich bin doch net herr validation :P
    Meine Antwort hat dir Stunden an Zeit gespart?
    Nimm dir die 2 Sekunden und drück auf den Dankebutton

  7. #7
    Moderator Avatar von Lacki
    Registriert seit
    27.04.2006
    Ort
    Direkt um die Ecke
    Beiträge
    8.729
    Bedankte sich
    337
    Erhielt 3.611 Danksagungen
    in 2.970 Beiträgen

    Standard

    Es war mir schon klar, das Dein Code nicht vollständig ist. Aber der Hinweis ist glaube ich schon wichtig, vielleicht hättest Du ihn auch geben können

  8. #8
    Neu an Board
    Registriert seit
    06.11.2006
    Beiträge
    38
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Ich möchte auf folgendes hinaus:

    Ich möchte eine Suchanfrage an meine Datenbank stellen.Die Datenbank enthält Interpreten und Titel. Dabei soll in 2 Tabellen gesucht werden.

    Tabelle1 enthält den Interpreten und Tabelle2 enthält den Titel.

    Jetzt soll wenn z.B. jemand nach dem Interpreten ABC sucht in der Ausgabe folgendes stehen:

    ABC - Titel

    Wenn jemand nach dem Titel DEF vom Interpreten ABC sucht soll natürlich in der Ausgabe

    ABC - DEF

    stehen.

  9. #9
    Kommt häufiger vorbei
    Registriert seit
    07.09.2009
    Beiträge
    466
    Bedankte sich
    4
    Erhielt 113 Danksagungen
    in 110 Beiträgen

    Standard

    Zitat Zitat von Martin83 Beitrag anzeigen
    Ich möchte auf folgendes hinaus:

    Ich möchte eine Suchanfrage an meine Datenbank stellen.Die Datenbank enthält Interpreten und Titel. Dabei soll in 2 Tabellen gesucht werden.

    Tabelle1 enthält den Interpreten und Tabelle2 enthält den Titel.

    Jetzt soll wenn z.B. jemand nach dem Interpreten ABC sucht in der Ausgabe folgendes stehen:

    ABC - Titel

    Wenn jemand nach dem Titel DEF vom Interpreten ABC sucht soll natürlich in der Ausgabe

    ABC - DEF

    stehen.
    du brauchst dafür nen fremdschlüssel z.b. interpretid in der titel tabelle dann machst
    SELECT a. name,b.titelname FROM interpret a,titel b WHERE t.interpretid=a.id AND

    und nach and dann deine bedingung nach der du suchst
    Meine Antwort hat dir Stunden an Zeit gespart?
    Nimm dir die 2 Sekunden und drück auf den Dankebutton

  10. #10
    Neu an Board
    Registriert seit
    06.11.2006
    Beiträge
    38
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    So ich habe jetzt folgende Abfrage:

    PHP-Code:
    $abfrage = "SELECT jos_tabelle1.ID, jos_tabelle1.content, jos_tabelle2.TitleID, jos_tabelle2.ID, tabelle1.published, jos_tabelle2.title FROM jos_tabelle1, tabelle2 WHERE jos_tabelle1.ID =tabelle2.ID AND tabelle1.content LIKE '%".$abfrage."%'";

    $ergebnis = mysql_query($abfrage);
    while($row = mysql_fetch_object($ergebnis)) {
    if ($ergebnis == true) { ?>

    <? 

    print  $row->title ;?>

    <? }else { echo "keine Verbindung"; break; }}; ?>

    Ich bekomme jedoch als Ergbnis ALLE Datenbankeinträge geliefert. Selbst wenn ich jos_tabelle1.ID =tabelle2.ID aus der Abfrage nehme bekomme ich immer noch alle Einträge ausgegeben. Ich möchte nur die Ausgeben die der Variable $abfrage ähnlich sind.

+ Antworten

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein