Wie können wir zwei Tabelle auswählen auf einmal und die DatenWie werden zwei SELECT-Anweisungen in einer SQL-Abfrage verknüpft?
<?php
$id= null;
@$id = $_REQUEST['id'];
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT ID, name, gender, age, contact, village, town, id_proof, id_proof_no, reg_date
FROM milk_man_profile WHERE ID=$id
UNION
SELECT date, time, amount, particular FROM debit WHERE ID=$id";
$result = $conn->query($sql);
if (@$result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo "<h3 style='text-align: center; font-family: verdana;'>Profile Details</h3>";
echo "<form action='milk_edit_profile.html?id=$id' method='get'><div class='container'><div class='table-reponsive text-center'><table class='table table-bordered table-striped'>
<tr><th>ID:</th><td class='text-center'><input readonly style='text-align: center; border: 0px solid;' type='text' name='id' value='".$row['ID']."'></td></tr>
<tr><th>Name:</th><td>".$row['name']."</td></tr>
<tr><th>Reg. Date:</th><td>".$row['reg_date']."</td></tr>
<tr><th>Age (Reg. Date)</th><td>".$row['age']."</td></tr>
<tr><th>Gender:</th><td>".$row['gender']."</td></tr>
<tr><th>Contact No:</th><td>".$row['contact']."</td></tr>
<tr><th>Village:</th><td>".$row['village']."</td></tr>
<tr><th>Town:</th><td>".$row['town']."</td></tr>
<tr><th>".$row['id_proof']." No:</th><td>".$row['id_proof_no']."</td></tr>
<tr><td colspan='2' class='text-center'><button type='submit' class='btn btn-info'>Edit Details <span class='glyphicon glyphicon-edit'></span></button></td>
</tr></table></div></div></form><br/>
<div class='container'>
<div class='table-responsive'>
<table class='table table-bordered table-striped'>
<th class='text-center'><b>Date & Time</b></th>
<th class='text-center'><b>Type</b></th>
<th class='text-center'><b>Amount</b></th>
</table>
</div>
</div>
<div class='text-center'>
<form action='/milk_e_ledger/debit.html?'>
<input type='hidden' name='debiter_name' method='get' value='".$row['name']."'>
<input type='hidden' name='id' method='get' value='$id'>
<br/>
<button class='btn btn-danger'>Debit Money <span class='glyphicon glyphicon-usd'></span></button></form></div><br/>";
}
}
else {
echo("Error description: " . mysqli_error($conn));
}
$conn->close();
?>
Dann wird folgende Fehler ich erhalten erhalten:
The used SELECT statements have a different number of column
Wie kann ich Informationen aus zwei Tabellen wählen auf einmal? < ------------------->
Zu allererst über SQL-Injection bei http://bobby-tables.com lesen und lernen, wie sie zu verhindern. Ihr Code ist tatsächlich sehr weit offen für die Injektion und Ihre Datenbank kann in wenigen Sekunden ohne Kenntnis Ihres Systems gehackt werden. Bitte verwenden Sie immer vorbereitete Anweisungen, wenn Sie Eingaben von POST/URL in Ihren Abfragen verwenden. Übrigens, was Sie suchen, ist SQL-JOIN-Funktion. Google dafür, es gibt Tonnen von Beispielen. – Twinfriends
Sieht so aus, als ob Sie nach 'join' nicht für' Union' suchen. – Jens
Es klingt, als ob Sie versuchen, einen JOIN zu verwenden, um Daten aus 2 verschiedenen Tabellen zu sammeln. Probieren Sie dieses Tutorial aus, um die Grundlagen zu JOINs zu erlernen: https://www.w3schools.com/sql/sql_join.asp –