• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

MySQL -> PHP

1

123123123

Guest
So sieht meine Datenbank aus!

| Index | Name |
---------------------
| 1 | Anna |
---------------------
| 2 | Paula |


Kann ich diese Datenbank mit Hilfe von "function" auslesen? Ohne hab ich schon geschafft :)


PHP:
<?php
$datenbank = mysql_connect('localhost', 'KLA', '', 'meinedb')
    or die("Keine Verbindung möglich: " . mysql_error());
        echo "Verbindung zum Datenbankserver erfolgreich";
            mysql_select_db("meinedb") or die("Auswahl der Datenbank fehlgeschlagen");

$query = 'SELECT * FROM `w`';
    $result = mysql_query($query) or die("Anfrage fehlgeschlagen: " . mysql_error());
    echo "<table border = '1'>\n";
        while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) 
        {
            echo "\t<tr>\n";
                foreach ($line as $col_value) 
                {
                    echo "\t\t<td>$col_value</td>\n";
                }
            echo "\t</tr>\n";
        }
    echo "</table>\n";

mysql_close($datenbank);

?>

Danke!!
 
Dazu musst du ersteinmal eine funktion erstellen.
PHP: Vom Nutzer definierte Funktionen - Manual

Auserdem ist es zu empfehlen eine art "config.inc" für deine MySQL Connect Daten zu erstellen.

PHP:
$db_config = array( 
    'server'        => '#', 
    'user'          => '#', 
    'password'      => '#', 
    'database' => '#'  
);

Somit bist du dynamischer falls du mal deinen Server wechseln solltest.
Dann musst du nicht jede Datei umschreiben.

Gruß Bodo


 
In dieser Datei gibst du die Verbindungsdaten zum MySQL Server, Datenbank an.

Und in deinem Script bzw. Funktion lädst du diese aus der Datei.
Ob du diese jetz "config.inc" oder verbindungsdaten.php" nennst spielt keine große rolle.

Beispiel:

config.inc
PHP:
$db_config = array( 
    'server'        => '#', 
    'user'          => '#', 
    'password'      => '#', 
    'database' => '#'  
);

script.php
PHP:
<?php

// Einbinden der Config Datei
require_once('./config.inc');

 $datenbank = mysql_connect($db_config['server'], $db_config['user'], $db_config['password'])
    or die("Keine Verbindung möglich: " . mysql_error());
        echo "Verbindung zum Datenbankserver erfolgreich";
            mysql_select_db($db_config['database']) or die("Auswahl der Datenbank fehlgeschlagen");

$query = 'SELECT * FROM `w`';
    $result = mysql_query($query) or die("Anfrage fehlgeschlagen: " . mysql_error());
    echo "<table border = '1'>\n";
        while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) 
        {
            echo "\t<tr>\n";
                foreach ($line as $col_value) 
                {
                    echo "\t\t<td>$col_value</td>\n";
                }
            echo "\t</tr>\n";
        }
    echo "</table>\n";

mysql_close($datenbank);

 ?>

So würde es dann aussehen.

Und warum würdest du dies gern über eine function machen?
 
Danke, aber ich muss das alles mit einer function machen!
PHP:
<?php class Daten
{

    private $db_config = array    (     'server'        => 'localhost', 
                                    'user'          => 'root', 
                                    'password'      => '', 
                                    'database'         => 'meinedb'  
                                );
    function Datenbank ()
    {
        $text= "";
        $datenbank = array ();
        $query = 'SELECT * FROM `namen`';?>

Weiß nicht ob das jetzt der richtige Anfang ist, komme nicht weiter! :(
 
Ja ich muss halt mir "function" versuchen. Geht doch auch, aber ich finde das einfach nicht raus! :(
 
Ich versuchs mal ob ich es zusammenbekomm. Bin auch kein Profi.

PHP:
<?php 

require_once('./config.inc');
$datenbank = mysql_connect($db_config['server'], $db_config['user'], $db_config['password'])
    or die("Keine Verbindung möglich: " . mysql_error());
        echo "Verbindung zum Datenbankserver erfolgreich";
            mysql_select_db($db_config['database']) or die("Auswahl der Datenbank fehlgeschlagen");

$query = 'SELECT * FROM `w`';
    $result = mysql_query($query) or die("Anfrage fehlgeschlagen: " . mysql_error());

 mysql_close(); 


function DatenbankAbfrage () {
echo "<table border = '1'>\n";
        while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) 
        {
            echo "\t<tr>\n";
                foreach ($line as $col_value) 
                {
                    echo "\t\t<td>$col_value</td>\n";
                }
            echo "\t</tr>\n";
        }
    echo "</table>\n";
 }

echo DatenbankAbfrage ()

 ?>
 
Aber das würde jetz nur sinn machen wenn du mehrmals im Script den inhalt der DB ausgeben willst und das macht echt keinen Sinn :D
 
Zu Lernzwecken ergibt das schon Sinn.

Eine Funktion darf genau eine Aufgabe erfüllen und da hier zwei Aktionen durchgeführt werden: die Verbindung zur Datenbank und das folgende Query, solltest du auch zwei Funktionen schreiben. Vom Grundgerüst sähe das so aus:

PHP:
function Verbindungsaufbau()
{
    //Hier kommt deine Datenbankverbindung rein

     return $db
}

function Abfrage($db)
{
    // und hier das Query

     return $daten
}

Der Aufruf sieht so aus:
PHP:
$db = Verbindungsaufbau();
$daten = Abfrage($db)

Die Ausgabe mit der foreach Schleife gehört nicht in eine Funktion, sondern sollte ins HTML eingebettet werden.

HTML:
<?php foreach ($daten as $wert) { ?>
<tr>
    <td>.....</td>
</tr>
<?php } ?>
 
Ja ich hab halt jetzt so ne Aufgabe bekommen, muss die heute noch erledigen! Ich weiß schon wie Get und Set mit Funktionen funz. aber wie ich eine Datenbank damit auslese, leider nicht! :(
 
Getter und Setter werden für Klassen verwendet. Bei Funktionen arbeitet man mit Variablen.

Was auch immer deine Aufgabe sein mag: Du wirst sie heute nicht selbstständig mit OOP lösen, wenn dir noch das Grundwissen in PHP fehlt.
 
Soo die ist schon mal erledigt :
PHP:
<?php
class DB
{
    private $handleConnect = NULL;
    private $handleDB = NULL;
    private $handleQuery = NULL;
    
    function __construct()
    {
        $this->handleConnect = mysql_connect('localhost', 'KLA', '', 'meinedb');
        if(!$this->handleConnect)
            die("Keine Verbindung möglich: " . mysql_error());
        
        $this->handleDB = mysql_select_db("meinedb");
        if(!$this->handleDB)
            die("Auswahl der Datenbank fehlgeschlagen: " . mysql_error());
    }
    
    function query($query)
    {
        $this->handleQuery = mysql_query($query, $this->handleConnect);
        
        if(!$this->handleQuery)
            die("Query konnte nicht ausgeführt werden: " . mysql_error());
    }
    
    function getQueryData()
    {
        $result = array();
        while($row = mysql_fetch_assoc($this->handleQuery))
            $result[] = $row;
        
        return $result;
    }
}

$meinDB = new DB();
$meinDB->query("SELECT * FROM `w`");

print_r($meinDB->getQueryData());
?>


Noch ne Frage: Wie kann ich ein Feldname ändern, also mit PHP? zB anstatt 'Anna' -> 'Peter'.
 
Ja zB wenn da eine Name steht 'Anna' soll es dann zu 'Peter' geändert werden!

| Index | Name |
---------------------
| 1 | Anna |
---------------------
| 2 | Paula |
---------------------
|
|
"
| Index | Name |
---------------------
| 1 | Peter|
---------------------
| 2 | Paula |
 
Zurück
Oben