Ergebnisse aus 2 DB-Abfragen in eine Javascript-Funktion

Marley2009

Neues Mitglied
Hallo zusammen,
ich bin blutiger Anfänger und hoffe sehr, dass ihr mir helfen könnt.

In meiner php-Datei mache ich zwei verschiedene Datenbank-Abfragen und deren Ergebnisse benötige ich für Berechnungen in einer js-Funktion, die wiederum im Browser angezeigt werden sollen.
Versuche ich die Ergebnisse aus beiden Abfragen anzuzeigen wird nur "undefined" ausgegeben. In der Console, wo ich mir die Zahlen ebenfalls via consol.log(data) ausgeben lasse, werden sie mir allerdings angezeigt. Ich versuche dies mit Hilfe von ajax. Nehme ich in meiner Funktion den Teil aus der zweiten DB-Abfrage raus, funktioniert es. Alles zusammen aber leider nicht. Was mache ich falsch? Ist das, was ich vorhabe, so überhaupt möglich oder muss ich einen Umweg gehen? Wenn ja, welchen? :)

Hier mein bisheriger Code:
[CODE lang="javascript" title="Javascript"]function clickPHPtoJS(){
$.ajax({
url: "index.php",
type: "POST",
success: function(data) {
console.log(data);
clickPHPtoJSResponse(data);
},
error: function (data) {
console.log("Daten nicht erhalten");
}
});
}

function clickPHPtoJSResponse(data) {
// Antwort des Server ggf. verarbeiten
var response = JSON.parse(data);
var einer = response.einer;
var zwoelfer = response.zwoelfer;
var anzahl = response.nr;
document.getElementById("lab1er").innerHTML = einer + " " + zwoelfer + " " + anzahl;
}[/CODE]

[CODE lang="php" title="PHP"]<? php
$erg = $db->query("SELECT id, sender FROM packaging_log WHERE sender='test' AND packaging='1er'")
or die($db->error);

$gesteigereiner = $db->query("SELECT * FROM geliefert WHERE 1")
or die($db->error);

while ($zeile = $gesteigereiner->fetch_object()) {
$einer = $zeile->test1er;
$dreier = $zeile->test3er;
$sechser = $zeile->test6er;
$zwoelfer = $zeile->test12er;
}


$geliefert = array ( "nr" => $erg->num_rows,
"einer" => $einer,
"zwoelfer" => $zwoelfer);

print_r (json_encode($geliefert));
[/CODE]

So funktioniert es leider nicht. Aber wenn ich das Ergebnis aus der ersten DB-Abfrage im JS komplett rausnehme schon.

Vielen Dank schon jetzt. Ich bin für jede Info, Aufklärung und jeden Tipp dankbar.
 

Marley2009

Neues Mitglied
Hallo zusammen,
ich bin blutiger Anfänger und hoffe sehr, dass ihr mir helfen könnt.

In meiner php-Datei mache ich zwei verschiedene Datenbank-Abfragen und deren Ergebnisse benötige ich für Berechnungen in einer js-Funktion, die wiederum im Browser angezeigt werden sollen.
Versuche ich die Ergebnisse aus beiden Abfragen anzuzeigen wird nur "undefined" ausgegeben. In der Console, wo ich mir die Zahlen ebenfalls via consol.log(data) ausgeben lasse, werden sie mir allerdings angezeigt. Ich versuche dies mit Hilfe von ajax. Nehme ich in meiner Funktion den Teil aus der zweiten DB-Abfrage raus, funktioniert es. Alles zusammen aber leider nicht. Was mache ich falsch? Ist das, was ich vorhabe, so überhaupt möglich oder muss ich einen Umweg gehen? Wenn ja, welchen? :)

Hier mein bisheriger Code:
[CODE lang="javascript" title="Javascript"]function clickPHPtoJS(){
$.ajax({
url: "index.php",
type: "POST",
success: function(data) {
console.log(data);
clickPHPtoJSResponse(data);
},
error: function (data) {
console.log("Daten nicht erhalten");
}
});
}

function clickPHPtoJSResponse(data) {
// Antwort des Server ggf. verarbeiten
var response = JSON.parse(data);
var einer = response.einer;
var zwoelfer = response.zwoelfer;
var anzahl = response.nr;
document.getElementById("lab1er").innerHTML = einer + " " + zwoelfer + " " + anzahl;
}[/CODE]

[CODE lang="php" title="PHP"]<? php
$erg = $db->query("SELECT id, sender FROM packaging_log WHERE sender='test' AND packaging='1er'")
or die($db->error);

$gesteigereiner = $db->query("SELECT * FROM geliefert WHERE 1")
or die($db->error);

while ($zeile = $gesteigereiner->fetch_object()) {
$einer = $zeile->test1er;
$dreier = $zeile->test3er;
$sechser = $zeile->test6er;
$zwoelfer = $zeile->test12er;
}


$geliefert = array ( "nr" => $erg->num_rows,
"einer" => $einer,
"zwoelfer" => $zwoelfer);

print_r (json_encode($geliefert));
[/CODE]

So funktioniert es leider nicht. Aber wenn ich das Ergebnis aus der ersten DB-Abfrage im JS komplett rausnehme schon.

Vielen Dank schon jetzt. Ich bin für jede Info, Aufklärung und jeden Tipp dankbar.
Ich konnte das Problem lösen. Es lag an "nr" => $erg->num_rows, welches zunächst in eine Variable gepackt werden musste. Also $nr = $erg -> num_rows; Und $nr konnte ich dann ins Array nehmen.
 

Ähnliche Java Themen

Neue Themen


Oben