Hallo,
Wenn man zwei Mengen mit UNION zusammenführen möchte, müssen diese beiden Mengen in ihrer Struktur übereinstimmen. Es geht nicht, eine Query mit 6 Ergebnisfeldern und eine mit 5 zu vereinigen. Gegebenenfalls muss ein Dummy selektiert werden. Das kann auch ein Literal, wie Leerstring oder NULL sein.
ich habe mein Select etwas erweitert dass auf beiden Seite die gleiche Menge ist
function tmp_TestAusgabe($mysqli, $Code, $datum) {
$stmt = $mysqli->prepare("(SELECT id, code, userID, status, datum, uhrzeit
FROM tmp01
WHERE userID =?
AND datum =?)
UNION
(SELECT erinnerung_id, erinnerung_userCode, erinnerung_nr, erinnerung_status, erinnerung_update_d, erinnerung_update_u
FROM tmp02
WHERE erinnerung_userCode =?
AND erinnerung_update_d =?) ");
$stmt->bind_param("ssss", $Code, $datum, $Code, $datum);
$stmt->execute();
$stmt->bind_result($id, $code, $userID, $status, $datum, $uhrzeit, $erinnerung_id, $erinnerung_userCode, $erinnerung_nr, $erinnerung_status, $erinnerung_update_d, $erinnerung_update_u );
$stmt->store_result();
if($stmt->num_rows() > 0) {
while ($stmt->fetch()){
$tmp_Ausgabe[] = array(
'id' => $id,
'code' => $code,
'userID' => $userID,
'status' => $status,
'datum' => $datum,
'uhrzeit' => $uhrzeit,
'erinnerung_id' => $erinnerung_id,
'erinnerung_userCode' => $erinnerung_userCode,
'erinnerung_Kdnr' => $erinnerung_nr,
'erinnerung_status' => $erinnerung_status,
'erinnerung_update_d' => $erinnerung_update_d,
'erinnerung_update_u' => $erinnerung_update_u
);
}
return $tmp_Ausgabe;
}
}
Nun bekomme ich zwar viele Fehler ich bekomme aber 72 Datensätze angezeigt. Ein Fehler lautet:
Warning: mysqli_stmt::bind_result(): Number of bind variables doesn't match number of fields in prepared statement in
der zweite Fehler der wiederholt sich in jeder Zeile lautet:
Notice: Undefined offset: 2
Ich denke dieses liegt nun an
$tmp_TestAusgabe = tmp_TestAusgabe($mysqli, $UserCode, $datum);
if($tmp_Ausgabe > 0) {
foreach($tmp_Ausgabeas $array){
echo htmlspecialchars($array['uhrzeit']);
}
}
else { echo "<p>Abfrage lautet 0</p>"; }
Da ich jetzt mehrere Tabellen habe muss dieser Bereich ebenfalls umgebaut werden, richtig?