• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Rückgabewert von 'mysql_query'

Gokar

Neues Mitglied
Hallo Community,

ich hätte eine kurze Frage zur 'mysql_query'- Funktion in php.
Und zwar zur Rückgabe-Resource:

Die zurückgegebene Ergebnis Ressource sollte an mysql_fetch_array() oder andere Funktionen, die mit Ergebnis Tabellen umgehen, übergeben werden, um auf die erhaltenen Daten zuzuzugreifen.
Quelle: PHP: mysql_query - Manual

Wie kann ich es realisieren die Resource '$result' des folgenden Beispiels von einem php- Dokument an ein anderes zu übergeben um sie dort weiterzuverarbeiten?

PHP:
// Führe Abfrage aus
$result = mysql_query($query, $handler);


Vielen Dank im Voraus für Eure Antworten und Eure Zeit!


Liebe Grüße,
Gokar
 
Werbung:
Das hatte ich mir schon gedacht.. war mir aber nicht sicher.

Gibt es eine andere Möglichkeit das zu bewerkstelligen?
 
Werbung:
Das hatte ich mir schon gedacht.. war mir aber nicht sicher.

Gibt es eine andere Möglichkeit das zu bewerkstelligen?
Mal davon abgesehen, dass mermshaus Frage noch offen ist:

Man kann das Ergebnis z.B. an eine Variable übergeben und dann in anderen Scripten weiterverarbeiten. Besser, du fragst die Daten im anderen Script einfach nochmal ab.
 
Hallo,

gehen wir von folgendem Fall aus:

- Wir haben eine Suchfunktion, bei der in der Datenbank nach Ergebnissen gesucht wird. Dem Suchverhalten liegt natürlich der Suchbegriff des Anwenders zu Grunde

- Die Suchfunktion soll bei mehreren Dateien zum Einsatz kommen und das dazugehörige Script deshalb einer extra Datei angehören um beliebig oft verwendet werden zu können. So kommen die Datenbankabfragen nicht in die selbe Datei, von der aus gesucht wird.

- Die Suchfunktion liefert nicht nur einen Einzelwert oder ein normales Array zurück, sondern beliebig viele Datensätze mit Spalten und Zeilen, ein MySql-Result der Funktion 'mysql_query()'

Datei A schickt also den Suchbegriff zu Datei B.
Datei B (Script) prüft die Eingabe, setzt entsprechende Datenbankabfragen ab und stellt die Ergebnisse zusammen.

[..] <-- meine Frage: der beste Weg das mysql_query()-result von B nach A zu transportieren
Datei A nimmt die Ergebnisse entgegen, um sie präsentationsgerecht dem Anwender aufzubereiten.
 
Werbung:
So wie das aussieht programmierst du nicht objektorientiert ...
In dem Fall würde ich ne Funktion machen, die das entsprechende Suchergebnis in Form eines Arrays zurückgibt.
Die Funktion lagerst du in eine Datei aus, die du dann an allen benötigten anderen Scripten mittels include einbindest, um die Funktion zur Verfügung zu haben.
 
Ja.

Ansonsten deutet die Beschreibung in #6 auf JavaScript hin. Dass also die Suche per Ajax angestoßen wird. Aber ich vermute, das ist nicht gemeint.
 
Irgendwie kommen wir leider nicht zusammen.

Andere Frage:

Ein zweidimensionales Array per method="post" zu übergeben, ist das nicht möglich?
Funktioniert bei mir nämlich leider nicht.
 
Werbung:
Es geht um zusammengekramte Daten aus ein paar Select-Befehlen.

Wenn ich das nun über post versenden möchte, habe ich bisher immer die <input>-Elemente verwendet. Damit krieg ich super einen String von A nach B.

Wie aber ein (mehrdimensionales) Array?
 
Du teilst deine Applikationen nicht auf Schichten auf und in Funktionen bzw. Klassen kapselst Du deinen Code ebenfalls nicht. Wenn Du das machst, was Dir Patrick geraten hat, dann gibts da auch keine Probleme

Ok, kommen wir zu deiner Aufgabenstellung. Du hast DateiA.php, DateiB.php und DateiC.php. In diesen Dateien möchtest Du ein Suchformular verwenden. Da aber die Datenbankabfragen für die Datein gleich bleiben und Du redundanten Code vermeiden möchtest, willst Du den Code, der die Suchanfrage managt in eine eigene Datei stecken - gut soweit. Du erstellst jetzt eine Datei namens SearchManager.php. In diese kommt eine einzige Klasse hinein. Klassen sind Baupläne für Objekte. Sie definieren Attribute und Methoden, wobei letzteres die Logik beinhaltet. Attribute werden dazu genutzt, um eben ein Objekt zu beschreiben, um Daten aufzubewahren.

SearchManager.php


PHP:
class SearchManager {

}

Nun überlegst Du dir, was dieser SearchManager für Funktionalität bieten soll. Die Funktionalität kommt in Methoden rein, die mit normalen Funktionen fast identisch sind. Der einzige Unterschied liegt darin, dass Du für Methoden zwischen 3 Sichtbarkeitsstufen wählen kannst, um den Zugriff auf diese Methoden einzuschränken.

Ich weiß nicht, wie deine Suche nun aussehen soll, daher einfach mal ein Beispiel-Code:
PHP:
class SearchManager {
    public function search($search) {
        $sql = 'SELECT data FROM myTable WHERE content = '.mysql_real_escape_string($search).' ORDER BY irgendwas';
        $query = mysql_query($sql);
        $return = array();
        while ($row = mysql_fetch_array($query)) {
            $return = array_push($return, $row['data']);
        }
        return $return;
    }
}

Nun bindest Du die Datei SearchManager in DateiA.php ein:

PHP:
// Das hier ist die DateiA.php

// SearchManager-Klasse einbinden,
// damit wir später ein Objekt von ihr erzeugen können
require 'SearchManager.php';

// Klassen sind Schablonen/Baupläne für Objekte.
// Wir können also die Funktionalität der Klasse
// verwenden, wenn wir ein Objekt von Ihr erzeugen
// - dies geschieht mit dem new-Operator
$SearchManager = new SearchManager();
$suchergebnisse = $SearchManager->search($_POST['suchbegriff']); # aufruf der search-Methode des SearchManagers

foreach ($suchergebnisse as $suchergebnis) {
    echo $suchergebnis['data'];
}
 
Werbung:
Um noch die andere Frage zu beantworten:

PHP:
<?php

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    var_dump($_POST);
    exit;
}

?><!DOCTYPE html>

<html lang="en">

    <head>
        <meta charset="UTF-8" />
        <title>Demo</title>
    </head>

    <body>
        <form method="post" action="<?php echo basename(__FILE__); ?>">
            <p>
            <input type="hidden" name="data[foo][bar]" value="hello" />
            <input type="hidden" name="data[foo][baz]" value="world" />
            <input type="submit" />
            </p>
        </form>

    </body>

</html>
 
Ok. Dankeschön. Vor allem für die Arbeit mit dem schönen Beispiel-Coding!

Objektorientierte Programmierung habe ich schon in C# zuvor gemacht, allerdings noch nicht in PHP.
Werde es zukünftig beherzigen und versuchen einzubauen.

Würdet ihr sagen, es empfielt sich beim Erstellen einer Webseite mit PHP-Funktionen eine große Klassendatei zu erstellen, welche sämtliche Funktionen, die evtl. mehrmals Verwendung finden sollen, beinhaltet?


Eine Frage noch zu Deinem letzten Beitrag mermshaus: [foo], [bar] und [baz] stehen für Beispieltexte und -objekte oder was steckt dahinter?
 
Foo/Bar sind in dem Fall nur Beispiel Namen für die Mehrdimensionallen Beispiel Daten. Du kannst dafür auch andere Namen je nach Wunsch nehmen.
 
Werbung:
Gokar schrieb:
Würdet ihr sagen, es empfielt sich beim Erstellen einer Webseite mit PHP-Funktionen eine große Klassendatei zu erstellen, welche sämtliche Funktionen, die evtl. mehrmals Verwendung finden sollen, beinhaltet?

Ja. Du solltest alles, was du mehrfach verwenden kannst, nur einmal zentral ablegen. Tendenziell sind dazu eher viele kleine Dateien, die logisch zusammengehörende Funktionen enthalten, zu empfehlen.

Das ist ein etwas komplexeres Thema. Wenn du objektorientiert arbeitest, kannst du beispielsweise auch Autoloading nutzen, was Include-Zeilen überflüssig macht. Das brauchst du aber alles noch nicht zu berücksichtigen. Eine zentrale Datei, die du bei Bedarf einbinden kannst, ist kein schlechter Anfang.
 
Ok, gut.
Das ist eben immer das Problem wenn man ohne Vorwissen sich auf eigene Faust auf Neuland bewegt..


Ich bedanke mich recht herzlich bei allen, die mir hier so nett geholfen haben! :)
 
Werbung:
Zurück
Oben