Funktionen/Mysql

Shakall

Banned
Registriert
Juni 2010
Beiträge
147
Hallo, ich schreibe bald mein Abi über Mysql , php usw.
Seiten die wir benutzen dürfen sind selfphp ,selfhtml und sqlphp und noch eine von lehrer erstelle seiten wo sql befehle wie select , delete , datenbank verbindung usw beschrieben werden.

Mein Problem welches ist grad habe ist dieses hier

Code:
<?php
function connect()
{
$db_server = 'localhost';      
                                                  
    $db_user = 'root';
    $db_passwort = '';
      $db_link = mysql_connect ($db_server, $db_user, $db_passwort);
      
      $sql = 'use hallo';
    $result = mysql_query($sql, $db_link);
     if (!$result)
     {
           die ('Ungültige Abfrage: ' . mysql_error());

     } 
    return $db_link;
};
function db_auslesen($db_link)
{
 $sql = 'select * ';
    $sql .= 'from hallo ORDER BY alter DESC';

    $result = mysql_query($sql, $db_link);
    if (!$result)
    {
        die ('Ungültige Abfrage: ' . mysql_error());
    }
 $db_arr=array();
    $c=0;
    while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
    {
    $db_arr[$c]['id']=$row['id'];
    $db_arr[$c]['name']=$row['name'];
    $db_arr[$c]['alter']=$row['alter'];
    $db_arr[$c]['sprache']=$row['sprache'];
    $c++;
    }
return $db_arr;
   
}
?>





<?php
require ('class_db1.php');
require ('top.php');
$db_link= connect();
$db_arr= db_auslesen($db_link);
echo '<table border="1">';
$arr_count=count($db_arr);
for ($k=0; $k<$arr_count;$k++)
{
echo '<tr>';
echo '<td>' . $db_arr[$k]['id'] . '</td>' ;
echo '<td>' . $db_arr[$k]['name']. '</td>' ;
echo '<td>' . $db_arr[$k]['alter']. '</td>' ;
echo '<td>' . $db_arr[$k]['sprache']. '</td>' ;
echo '<tr>';
}
echo '</table>';

require ('bot.html');
?>

Es soll eine Datenbank in einer Tabelle mit Umrandung angezeigt werden die in phpmyadmin schon erstellt wurde.
Kann man irgendwie es vereinfachen ?
Vielleicht ohne diese arrays ? den die verstehe ich überhaupt nicht hier in dem code
ich habe mir gedacht in der datei wo alle funktionen und die datenbankverbindung stattfindet.

Irgendwie blick ich gar nicht mehr durch und weiß nicht wie ich das lernen soll .. Ohne Funktion ist es doch meiner meinung viel einfacher einfacher aber wir sollten es OOP programmieren.
 
Ich frage mich mehrere sachen:
Wozu die sinnlosen arrays?
Du sollst in OOP Programmieren aber hast hier den Prozeduralen weg genommen?

Funktionen sind sind schön und recht, aber man sollte auch die Verbindung zur Datenbank wieder schliessen mit einer Funktion^^.

Wenn lernen dann richtig :D
 
Wenn du Arrays nicht verstehst, wird es objektorientiert auch nicht einfacher. Wo genau liegt denn das Verständnisproblem?
 
Naja was auch immer ... ich glaube keiner versteht so richtig meinte frage

also ich habe eine datei erstellt die folgenden quelltext hat
<?php
function connect()
{
$db_server = 'localhost';

$db_user = 'root';
$db_passwort = '';
$db_link = mysql_connect ($db_server, $db_user, $db_passwort);

$sql = 'use garden';
$result = mysql_query($sql, $db_link);
if (!$result)
{
die ('Ungültige Abfrage: ' . mysql_error());

} ;
return $db_link;
};
function db_auslesen($db_link)
{
$sql = 'select * ';
$sql .= 'from parzelle ORDER BY name DESC';

$result = mysql_query($sql, $db_link);
if (!$result)
{
die ('Ungültige Abfrage: ' . mysql_error());

}


Die will ich jetzt in einer anderen datei öffnen da habe ich dann folgendes probiert
<?php
require ('class_db1.php');
-> nun weiß ich nicht was ich schreiben soll damit ich die funktion db_auslesen hier anzeigen lassen kann


oder kann mir einfach jemand einen code schreiben wie ich aus einer datenbank etwas auslese und es auf der homepage angzeigt wird in einer tabelle.
Irgendwie sowas
$view='Select * from hallo ORDER BY alter desc;';
$exe=mysql_query($view,$connect);
echo 'Tabelle:<table border="1">';
while($row = mysql_fetch_array($exe,MYSQL_ASSOC)){
echo '<tr>';
echo '<td>' .$row['id'] . '</td>' ;
echo '<td>' .$row['name'] . '</td>';
echo '<td>' .$row['alter'] . '</td>' ;
echo '<td>' .$row['sprache'] . '</td>' ;
echo '</tr>';
} echo '</table>';


?>
 
Zuletzt bearbeitet:
Ich versteh jetzt zum beispiel nicht warum hier nichts angzeigt wird?
Erstmal nur anzeigen ohne tabelle oder so!
Wo liegt der fehler?

Das ist die Datei mit der Funktion

<?php
function connect()
{
$db_server = 'localhost';

$db_user = 'root';
$db_passwort = '';
$db_link = mysql_connect ($db_server, $db_user, $db_passwort);

$sql = 'use hallo';
$result = mysql_query($sql, $db_link);
if (!$result)
{
die ('Ungültige Abfrage: ' . mysql_error());

} ;
return $db_link;
};
function db_auslesen($db_link)
{
$sql = 'select * ';
$sql .= 'from tabelle ORDER BY name DESC';

$result = mysql_query($sql, $db_link);
if (!$result)
{
die ('Ungültige Abfrage: ' . mysql_error());
}

return $db_link;

}
?>


Das hier soll das was darüber steht auslesen lassen

<?php
require ('class_db1.php');
$db_link= connect();
$db_arr= db_auslesen($db_link);
?>

die obere datei heißt class_db1.php
 
Weil du noch nichts auf dem Bildschirm ausgibst. Verauch mal ein
PHP:
var_dump($db_arr);
 
Geht nicht .. habe diesen befehl auch noch nicht gesehen.

Es ist einfach schrecklich ich krieg nicht mal die leichteste Sache hin und wie soll man dann sein abi schaffen das wird nix....
 
Nimmste das Tut was ich mal vor Jahren genommen habe^^
http://tut.php-quake.net/de/

Beginnste einfach nochmal von vorne, wenn dir selbst die einfachsten sachen nicht leicht fallen ;)
 
kann man es irgendwie noch vereinfachen?
ich lerne es nämlich jetzt auswendig da ich sonst keine wahl habe.
Es soll nur eine Tabelle angezeigt werden die in einer classe per funktion ausgegeben wird..

<?php
require ('Neu3.php');
require ('top.php');

$db_link=connect();
$zahl= lesen($db_link);


echo '<table border="1">';
$count=count($zahl);
for ($k=0; $k< $count; $k++)
{
echo '<tr>';
echo '<td>' . $zahl[$k]['id'] . '</td>' ;
echo '<td>' . $zahl[$k]['name']. '</td>' ;
echo '<td>' . $zahl[$k]['land']. '</td>' ;
echo '<td>' . $zahl[$k]['sprache']. '</td>' ;
}
echo '</table>';
require ('bot.html');


<?php
function connect()
{
$db_server = 'localhost';
$db_user = 'root';
$db_passwort = '';



$db_link = mysql_connect ($db_server, $db_user, $db_passwort);

$sql = 'use db';
$result = mysql_query($sql, $db_link);

if (!$db_link)
{
die ('keine Verbindung möglich: ' . mysql_error());
};
return $db_link;
};
function lesen($db_link)
{
$sql = 'select * ';
$sql .= 'from daten ORDER BY name';

$result = mysql_query($sql, $db_link);
if (!$result)
{
die ('Ungültige Abfrage: ' . mysql_error());
}

$c=0;
while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
$db_arr[$c]['id']=$row['id'];
$db_arr[$c]['land']=$row['land'];
$db_arr[$c]['sprache']=$row['sprache'];
$db_arr[$c]['name']=$row['name'];
$c++;
}
return $db_arr;

}
?>
 
Zuletzt bearbeitet:
Shakall schrieb:
kann man es irgendwie noch vereinfachen?
Du kannst einiges rausstreichen, damit es übersichtlicher wird. Zum Lernen reichts.
Shakall schrieb:
ich lerne es nämlich jetzt auswendig da ich sonst keine wahl habe.
Mit Verlaub ist das das dümmste, was du bei sowas machen kannst. Wenn dein Lehrer bei so einer Aufgabe ein paar Variationen einbringt, stehst du auf dem Schlauch und weißt nicht weiter.
Shakall schrieb:
Es soll nur eine Tabelle angezeigt werden die in einer classe per funktion ausgegeben wird..
Du hast keine Klassen. Objektorientiert kann es einfacher sein, dafür muss man aber OOP kennen und verstanden haben.
 
Ja kannst du mir vielleicht den bitte helfen?
Wie könnte man es den vereinfachen?

Es soll nur eine Datenbank angezeigt werden nichts mehr. Jedoch durch einer seperaten Seite wo die ganzen funktionen sind.

Ich will es wirklich können aber das ist für mich unmöglich das zu verstehen. Für mich ist es ganz klar das schwerste Fach deutschlands...
 
Zuletzt bearbeitet:
Nicht, dass ich es so machen würde, aber das erspart dir dann ein paar Zeilen, die du weniger auswendig lernen musst:

functions.php
PHP:
function connect() {

    $db_server = 'localhost'; 
    $db_user = 'root';
    $db_passwort = '';

    $db_link = mysql_connect ($db_server, $db_user, $db_passwort)
        or die ('keine Verbindung möglich: '. mysql_error());
    mysql_select_db("db", $db_link);

    return $db_link;

}

function lesen($db_link) {

    $sql = "SELECT * FROM daten ORDER BY name";
    $result = mysql_query($sql, $db_link);
    
    $c=0;
    $db_arr = array();
    
    while ($row = mysql_fetch_array($result)) {

        $db_arr[$c]['id']       = $row['id'];
        $db_arr[$c]['land']     = $row['land'];
        $db_arr[$c]['sprache']  = $row['sprache'];
        $db_arr[$c]['name']     = $row['name']; 

        $c++;
    }

    return $db_arr;

}

irgendwasanderes.php
PHP:
include "functions.php";

$db_link = connect();
$werte = lesen($db_link);

echo '<table>';
$count = count($zahl);

for ($k = 0; $k < $count; $k++) {

    echo '<tr>
            <td>'. $werte[$k]['id'] .'</td>
            <td>'. $werte[$k]['name'] .'</td>
            <td>'. $werte[$k]['land'] .'</td>
            <td>'. $werte[$k]['sprache'] .'</td>
         </tr>';

}

echo '</table>';
 
Zuletzt bearbeitet von einem Moderator: (Hab den Datenbank-Select vergessen.)
Shakall schrieb:
Ich will es wirklich können aber das ist für mich unmöglich das zu verstehen. Für mich ist es ganz klar das schwerste Fach deutschlands...
Also ich persönlich finde php relativ einfach und ich hab kein abi ;)

Hab dir mal hier meine version zusammengepackt(als kleine verständnisshilfe^^).
 
Was soll ich den sonst machen außer es auswendig lernen? Ich habe noch ca 4 wochen zeit dann schreibe ich mein Abi .. Das ist doch aber auswendiggelerne wenn ihr das so aus dem kopf könnt dann ist es doch auswendig gelernt...

Wie gesagt ich darf sqlphp ,selfphp, selfhtml benutzen jedoch finde ich da zb nicht die erklärung von das , was ich anwenden soll.
Vielleicht gibts sie ja dort irgendwo ?


Datenbank verbindung , aufbau und den befehl wie select das ist für mich alles kein Problem das haben wir als zettel und müssen es nur abschreiben mir gehts eher um das array was aus einer funktion rausgelesen wird.
 
Zuletzt bearbeitet:
php.net/ -> erklärt alle funktionen von php
tut.php-quake.net/de/ -> kleines tut zu php

Wenn du dann noch anguggst was ich dir über deinen Post geschrieben habe, sollte es doch klar sein oder nicht? ;)
 
Shakall schrieb:
mir gehts eher um das array was aus einer funktion rausgelesen wird.

Deine lesen-Funktion erstellt und füllt das Array $db_arr, anschließend gibt die Funktion das Array über return zurück. Die Funktion lesen() rufst du in deinem anderen Script auf und speicherst die Rückgabe der Funktion in $werte, wodurch $werte auch zu einem Array wird mit dem Inhalt von $db_arr. Mehr ist das nicht.
 
ich darf nur sqlphp , selfphp , selfhtml benutzen keine andere seiten im abi....
trotzdem das genau so und so der befehl ist muss man ja auswendig lernen wenn es nicht auf den seiten steht ...
 
Zurück
Oben