SQL-Datenbank in PHP-Datei ausgeben

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Benutzeravatar
Bones van Helghast
Mitglied
Beiträge: 157
Registriert: 19.09.2008 08:31

SQL-Datenbank in PHP-Datei ausgeben

Beitrag von Bones van Helghast »

Halli Hallo.
Ich hab folgendes "kleines Projekt" vor.
Ich will ein kleines Script für meine Homepage erstellen das so Funktioniert.
Name und Geburtsdatum wird in einem Formular eingegeben und abgesendet. Das ganze wird in einer SQL-DB gespeichert.
(Die SQL-Datenbank und das Formular zum eintragen funktionierten mittlerweile schon)
Nun möchte ich auf einer Seite die Daten ausgeben die eingetragen werden allerdings wird ja für jeden eingetragenen Namen eine eigene ID erstellt:
in der SQL-DB sieht das so aus:

ID Name Datum

---
So nun möchte ich also das wirklich alle ID's der einen Datenbank (users) auf einer Seite ausgegeben wird das ganze soll dann so aussehen:
(Ansicht als "Quelltext"):

Code: Alles auswählen

<table style="width:100%">
<tr>
<td style="width:33%">Name</td>
<td style="width:33%"></td>
<td style="width:33%">Geburtsdatum</td>
</tr>
<tr>
<td style="width:33%"></td>
<td style="width:33%"></td>
<td style="width:33%"></td>
</tr>
<tr>
<td style="width:33%">USERNAME 1</td>
<td style="width:33%"></td>
<td style="width:33%">DATUM 1</td>
</tr>
<tr>
<td style="width:33%">USERNAME 2</td>
<td style="width:33%"></td>
<td style="width:33%">DATUM 2</td>
</tr>
<tr>
<td style="width:33%">USERNAME 3</td>
<td style="width:33%"></td>
<td style="width:33%">DATUM 3</td>
</tr>
</table>
----usw----
Nach unten soll es Komplett ausgefüllt werden d.H soviele ID's wie's gibt soll es auch in <tr>'s ausgegeben werden.

Leider besteht momentan noch das Problem dass ich mit PHP und MySQL noch nicht soviel zu tun hatte und noch totaler anfänger in dem berreich bin. daher hab ich noch einige schwierigkeiten.

Als basis brauch ich erst mal den DB - Connect also dass verbindung zur Datenbank aufgebaut wird.
Wies weiter geht weiß ich leider nicht darum hoffe ich um hilfe von euch weiß einer von euch was ich einfügen muss dass in der Datei das ganze ausgegeben wird ?

---

Nun zum nächsten über ein Administrations-Berreich (schon erstellt) möchte ich alle Usernamen der SQL-Datenbank ausgeben lassen und dahinter soll ein kleines symbol für "löschen" wenn man aufs symbol klickt wird der eine User aus der SQL-DB entfernt ohne dass man sich bei MySQL-ACP löschen muss...

Wie ich das mach weiß ich leider auch nicht :(

Ich danke schon mal alle die versuchen mir zu helfen.

Liebe Grüße

Bones
Benutzeravatar
Bones van Helghast
Mitglied
Beiträge: 157
Registriert: 19.09.2008 08:31

Re: SQL-Datenbank in PHP-Datei ausgeben

Beitrag von Bones van Helghast »

Okay die Ausgabe der Tabellen ist erfolgreich gelungen durch selber rumprobieren mit echo ausgaben hats am ende doch geklappt :).

Nun komm ich zum nächsten problem da weiß ich aber echt nicht weiter:

Die Oben genannte Tabelle soll 2 Möglichkeiten der Sortierung haben:

1. Sortieren nach dem Alphabet -> Klickt man auf "Name" wird die Tabelle komplett anderst ausgegeben es sollen nun alle Namen nach dem ABC sortiert ausgegeben werden. Dabei ist aber zu beachten dass der Name mit der ID 1 in der Tabelle ebenfalls auch noch das Datum 1 bekommt.

2. Sortieren nach dem Datum -> Klickt man auf "Datum" soll die Tabelle mit dem ältesten anfangen und das jüngste ganz unten stehen dabei ist auch wieder zu beachten dass der Name mit der ID 1 auch das richtige Datum 1 erhält. das ist nun mein problem wo es echt anfängt zu stocken :(

Des weiteren hab ich noch keine ahnung wie ich das mit dem löschen einzelner Tabellen in der DB lösen kann.
Intimus
Mitglied
Beiträge: 99
Registriert: 07.09.2009 17:20
Kontaktdaten:

Re: SQL-Datenbank in PHP-Datei ausgeben

Beitrag von Intimus »

als totaler anfänger bist du schon etwas weiter als ich, denn ich bin überhaupt ein ahnungsloser. ;-)
aber beim punkt der sortierung kann ich dir helfen (denke ich): es gibt einen eigenen sql-befehl, der die sortierung für dich übernimmt: ORDER BY. du brauchst deine überschriften also nur mit entsprechenden links versehen.
ich hoffe, das hilft dir weiter.

lg intimus
Ein Mann, der kein Kind ist, ist kein Mann.
Gib einem Hungrigen einen Fisch und er wird satt. Bringe ihm das Fischen bei und er wird nie wieder hungrig. Leitspruch eines Helfers
Benutzeravatar
Bones van Helghast
Mitglied
Beiträge: 157
Registriert: 19.09.2008 08:31

Re: SQL-Datenbank in PHP-Datei ausgeben

Beitrag von Bones van Helghast »

Schön dass ich hier nicht einziger Anfänger bin :)
Dann tu ich mir nicht alleine so schwer und andere können nebenbei auch noch was lernen.

Hmn richtig schlau werde ich aus der Seite nicht welche du mir gegeben hast...

Ich weiß nicht wo vorne und hinten is bzw was ich wo einfügen muss um das ganze umsortieren zu lassen :(
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: SQL-Datenbank in PHP-Datei ausgeben

Beitrag von gn#36 »

Du kannst im SQL Befehl eine Sortierung vorgeben. Ein Beispiel würde so aussehen:

Code: Alles auswählen

SELECT karlheinz, karlotto FROM tabelle WHERE bedingung = 1 ORDER BY karlheinz ASC
Das sortiert die Daten nach der Spalte karlheinz in aufsteigender Reihenfolge. Du kannst das ganze natürlich auch andersrum sortieren:

Code: Alles auswählen

SELECT karlheinz, karlotto FROM tabelle WHERE bedingung = 1 ORDER BY karlheinz DESC
Oder auch nach mehr als einem Feld (wenn ein Feld gleiche Werte bei mehreren Einträgen haben kann):

Code: Alles auswählen

SELECT karlheinz, karlotto FROM tabelle WHERE bedingung = 1 ORDER BY karlheinz ASC, sekundaeres_feld_zur_sortierung ASC
In diesem Fall wird alles erst nach dem Feld karlheinz sortiert, alles was sich dadurch nicht exakt entscheiden lässt wird dann noch nach der Spalte "sekundaeres_feld_zur_sortierung" sortiert. Wie du siehst darfst du auch nach Spalten sortieren die du gar nicht aus der Datenbank holst. Wenn du Daten ausgibst ist es eigentlich immer sinnvoll ORDER BY zu nutzen um genau definiert zu haben in welcher Reihenfolge die Daten erscheinen, du holst die Daten dann in der gewünschten Reihenfolge aus der Datenbank.

Im Kern musst du also nur einen Link verwenden der dem Skript per $_GET angibt wie zu sortieren ist, dann setzt du die Sortierung per ORDER BY im SQL Befehl um.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Benutzeravatar
Bones van Helghast
Mitglied
Beiträge: 157
Registriert: 19.09.2008 08:31

Re: SQL-Datenbank in PHP-Datei ausgeben

Beitrag von Bones van Helghast »

Hat jemand mal so nen Link zufällig irgendwo abgespeichert und könnte ihn mal als beispiel schicken ? :roll:

Wie ich schon sagte ich bin totaler anfänger...
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: SQL-Datenbank in PHP-Datei ausgeben

Beitrag von gn#36 »

Minimalistisches Beispiel (kannst ja mal selbst versuchen nachzuvollziehen):

Code: Alles auswählen

<?php
if(isset($_GET['sort']))
{
$sort = $_GET['sort'] == 'ASC' ? 'ASC' : 'DESC';
}
else
{
$sort = 'ASC';
}

$sql = "SELECT * FROM tabelle ORDER BY sortierfeld $sort";
$result = mysql_query($sql);
...

//Link ausgeben, der genau andersrum sortiert wie bisher:

echo "<a href='dateiname.php?sort=" . ($sort == 'ASC' ? 'DESC' : 'ASC') . "'>Sortierung invertieren</a>";
?>
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Benutzeravatar
Bones van Helghast
Mitglied
Beiträge: 157
Registriert: 19.09.2008 08:31

Re: SQL-Datenbank in PHP-Datei ausgeben

Beitrag von Bones van Helghast »

Ich bin am verzweifeln.
Ich habe den code angepasst bin mir aber nicht sicher ob es so richtig ist was ich zusammen gepfuscht habe währe darüber froh wenn mir jemand nochmal drüber schauen könnte und mir sagen könnte was ich falsch gemacht habe bzw den code richtig posten.

Die datenbank verbindung steht (schon durch einen anderen code weiter oben der mir die liste unsortiert ausgibt).
Die tabelle heißt users es soll nun die spalte "datum" sortiert werden
ich hab meinen code so angepasst:

Code: Alles auswählen

<?php
    if(isset($_GET['sort']))
    {
    $sort = $_GET['sort'] == 'ASC' ? 'ASC' : 'DESC';
    }
    else
    {
    $sort = 'ASC';
    }

    $sql = "SELECT * FROM users ORDER BY datum $sort";
    $result = mysql_query($sql);

    //Link ausgeben, der genau andersrum sortiert wie bisher:

    echo "<a href='out.php?sort=" . ($sort == 'ASC' ? 'DESC' : 'ASC') . "'>Sortierung invertieren</a>";
    ?>
ich weiß der fehler wird warscheinlich offensichtlich sein aber für so nen anfänger isses verdammt schwer alleine rauszubekommen was man falsch gemacht hat :(
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: SQL-Datenbank in PHP-Datei ausgeben

Beitrag von gn#36 »

Mein Beispiel war natürlich nicht vollständig sondern sollte dir nur grob demonstrieren wie man den Sortier-Link einbringt. :roll:

In deinem Skript fehlt ja die komplette Datenverarbeitung und -ausgabe (symbolisiert durch ... in meinem Beispiel), außerdem fehlt der Aufbau der Datenbankverbindung mit Username, Passwort usw. Das einzige was dein Skript jetzt ausgibt ist ein Sortierlink.
Wie die Verarbeitung genau aussieht hängt ganz davon ab, wie genau die Tabelle aussieht und wie du die Ausgabe realisieren möchtest, ob in Listenform oder als Tabelle oder was auch immer.

Hierzu findest du aber eigentlich ohne Ende Beispiele im Internet, die notwendigen Befehle lauten im einfachsten Fall[php:mysql_connect] [php:mysql_select_db] und [php:mysql_fetch_assoc].
Du kannst das natürlich auch alles über die phpBB Datenbankklasse realisieren, dann musst du die Dateien includes/db/dbal.php und includes/db/mysql.php einbinden und erstellst die Verbindung mit

Code: Alles auswählen

$db = new sql_connect($sqlserver, $sqluser, $sqlpassword, $database)
wobei $sqlserver meist 'localhost' ist. In dem Fall realisierst du das Query über $result = $db->sql_query($sql_befehl); und holst Daten über $db->sql_fetchrow($result);

Die Ausgabe der Daten musst du dann schon selbst realisieren, das geht ganz einfach über [php:echo] und manchmal auch [php:print_r] wenn man es sich einfach machen möchte und keine spezielle Formatierung braucht.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Benutzeravatar
Bones van Helghast
Mitglied
Beiträge: 157
Registriert: 19.09.2008 08:31

Re: SQL-Datenbank in PHP-Datei ausgeben

Beitrag von Bones van Helghast »

Code: Alles auswählen

<?php
$verbindung = mysql_connect("localhost", "homepage" , "-")
or die("Verbindung zur Datenbank konnte nicht hergestellt werden");

mysql_select_db("db_01") or die ("Datenbank konnte nicht ausgewählt werden");

$sql = "SELECT ID, username, datum, rang FROM users";
                
    $result = mysql_query($sql) OR die(mysql_error());
    if(mysql_num_rows($result)) {
        while($row = mysql_fetch_assoc($result)) {
            echo "<table style=width:100%>\n";
            echo "    <tr>\n";
            echo "    <td align=center style=width:33%>\n";
            echo $row['username'];
            echo "    </td>\n";
           	echo "    <td align=center style=width:33%>\n";
            echo $row['rang'];
            echo "    </td>\n";
            echo "    <td align=center style=width:33%>\n";
            echo $row['datum'];
            echo "    </td>\n";
            echo "    </tr>\n";
            echo "</table>\n";
        }
    } else {
        echo"<p>Keine Geburtsdaten vorhanden</p>\n";
    }
    ?>
    
        <?php
    if(isset($_GET['sort']))
    {
    $sort = $_GET['sort'] == 'ASC' ? 'ASC' : 'DESC';
    }
    else
    {
    $sort = 'ASC';
    }

    $sql = "SELECT * FROM users ORDER BY datum $sort";
    $result = mysql_query($sql);

    //Link ausgeben, der genau andersrum sortiert wie bisher:

    echo "<a href='out.php?sort=" . ($sort == 'ASC' ? 'DESC' : 'ASC') . "'>Sortierung invertieren</a>";
    ?>
Das ist bisher alles an PHP in meiner Datei die ich hab.
Wie man sieht der connect zur DB besteht durch die eingabe weiter oben.
Würde nun einer so freundlich sein und den code einfach nur zu ende schreiben Das währe einfach nur klasse :-? die eine Seite die du mir gegeben hast hat anscheinend nen Serverausfall weil die verbinung nicht hergestellt werden kann. :(
Antworten

Zurück zu „Coding & Technik“