sanastasia
Goto Top

MySQL spalten in tabellenform ausgeben

Hallo, möchte 2 Spalten einer Datenbank in Tabellenform ausgeben, später sollen es mal 4 sein.
Das ist das was ich habe:
<html>
<head>
<meta charset="utf-8"/>  
<title>artikel-ausgeben</title>
</head>
<body>
<?php 
$data = array();
$mysqli = new mysqli("localhost", "root", "", "bestelldatenbank");  
if ($mysqli->connect_error) {
echo "Verbindungsfehler: " . $mysqli->connect_error;  
exit();
}
if (!$mysqli->set_charset("utf-8")) {  
	echo "Fehler beim Laden von UTF8".$mysqli->error;  
}

$sql = "SELECT artikel FROM bestelldatenbank";  
if ($ergebnis = $mysqli -> query($sql))
{ 
$alleSpalten = $ergebnis->fetch_fields();
foreach($alleSpalten As $spalte)
		
	{
		echo "Artikelnummer:".$spalte->anr ."<br />\n";  
		echo "Artikelgruppe:".$spalte->gnr ."<br />\n";  
	}
	$ergebnis -> free();
}
$mysqli ->close();
	
?>

</body>
</html>

Ich mache bestimmt viele Fehler. Hab leider sonst keinen Ansprechpartner, deshalb hier die vielen Fragen. Danke für die freundlichen Antworten ;)

Viele Grüße,
Sanastasia

Content-ID: 375641

Url: https://administrator.de/contentid/375641

Ausgedruckt am: 22.11.2024 um 05:11 Uhr

erikro
erikro 31.05.2018 um 12:45:45 Uhr
Goto Top
Moin,

Zitat von @Sanastasia:
$sql = "SELECT artikel FROM bestelldatenbank";
if ($ergebnis = $mysqli -> query($sql))
{
$alleSpalten = $ergebnis->fetch_fields();
foreach($alleSpalten As $spalte)

{
echo "Artikelnummer:".$spalte->anr ."<br />\n";
echo "Artikelgruppe:".$spalte->gnr ."<br />\n";
}
$ergebnis -> free();

So wird das nichts. Das SELECT ist falsch. Du rufst mit dem Befehl die Spalte artikel aus der Datentabelle bestelldatenbank auf und willst dann die Spalten anr und gnr ausgeben. Die sind aber im Query gar nicht vorhanden. Ich vermute mal, dass es eher so heißen sollte:

select anr, gnr from artikel

Für weitere Informationen zu SQL guckst Du hier:
https://www.w3schools.com/sql/sql_select.asp

hth

Erik
Sanastasia
Sanastasia 31.05.2018 um 13:05:51 Uhr
Goto Top
hm ok, hab ich probiert aber immernoch keine Ausgabe. Habe gerade gelesen das ich dafür auch noch prepared Statements verwenden soll ;/ ich blick da einfach im Moment nicht mehr durch und einen wirklichen Ansprechpartner habe ich auch nicht.
erikro
erikro 31.05.2018 aktualisiert um 13:43:01 Uhr
Goto Top
Moin,

guckst Du da:
http://www.schattenbaum.net/php/mstart.php

Liebe Grüße

Erik

<edit>P.S.: Was mir gerade auffällt. Es wäre besser PHP-Fragen im Bereich PHP zu stellen und nicht in Python. ;)</edit>
Arano
Arano 31.05.2018 um 15:23:45 Uhr
Goto Top
Hallo Sanastasia.

Dein Fehler ist zu allererste wahrscheinlich das du dir die Fehlermeldungen nicht anzeigen lässt:
<?php
    ini_set('display_errors', 'On');  
    ini_set('error_reporting', E_ALL);  
?>
So, oder in der PHP.ini oder ggf. in der Apache-Konfiguration. Für ein Entwicklungssystem, nicht im Live-System.

2a. Heißt deine TABELLE wirklich "bestellDATENBANK" ? Deine Datenbank selber heißt schon "bestelldatenbank" hast du darin nicht eine Tabelle "artikel" (o.ä.) mit den Spalten 'anr' und 'gnr' ?

2b. Für dein
if ($ergebnis = $mysqli -> query($sql)) 
fehlt das else falls das Query fehlschlägt (s.2a). Da es nichts gibt, siehst du nichts.


~Arano
swiss-electronics
swiss-electronics 21.11.2018 um 20:05:32 Uhr
Goto Top
Die Frage ist schon etwas her, falls Du aber immer noch keine Lösung hast würde ich dir empfehlen die Struktur des gesamten Codes etwas umzugestalten. Denn nur wenn Du verstehst was Du tust, wird es Früchte tragen.

Zuerst stellen wir eine Verbindung mit dem Server her:
$servername = "localhost";  
$username = "user";  
$database = "bestelldatenbank";  
$password = "password";  
$con = new mysqli($servername, $username, $password, $database);

Danach machen wir eine Abfrage auf Deinem MySQL Server:
$sql="SELECT artikel FROM bestelldatenbank";   

Erstellen eines Schleifen-Arrays:
$result = mysqli_query($con, $sql);
while($rows = mysqli_fetch_array($result));

Und geben das Ergebnis in einer Tabelle aus:
<table>
<tbody>
<tr>
<td><?php echo $rows["artikel"]; ?></td>  
</tr>
</tbody>
</table>

Alles zusammen würde es dann so aussehen:
<table>
<tbody>
<?php 
$servername = "localhost";  
$username = "user";  
$database = "bestelldatenbank";  
$password = "password";  
$con = new mysqli($servername, $username, $password, $database);

$sql="SELECT artikel FROM bestelldatenbank";   

$result = mysqli_query($con, $sql);
while($rows = mysqli_fetch_array($result)) { ?>
<td><?php echo $rows["artikel"]; ?></td>  
<?php } ?>
</tr>
</tbody>
</table>