aktuelle.kurse/m133/4_Modulinhalte_und_Uebungen/01-Grundlagen/03-PHP-einfach/einf_mysql_einfache_abfrage.php.htm
Harald G. Mueller 28ff49e098 muh
2023-06-29 07:50:41 +02:00

248 lines
11 KiB
HTML

<html>
<head>
<title>PHP-Einfach.de - MySQL Einf&uuml;hrung - Einfache Datenabfrage und Ausgabe</title>
<meta name="Author" content="Andavos">
<meta name="Publisher" content="Andavos">
<meta name="Copyright" content="Andavos">
<link rel="stylesheet" href="css/main.css" tppabs="http://www.php-einfach.de/offline/css/main.css" type="text/css">
</head>
<body text="#000000" bgcolor="#DDDDDD" link="#004A95" alink="#004A95" vlink="#525252">
<table align="center" height="100%" width="100%" cellspacing="0" border="0" cellpadding="0">
<tr>
<td align="center" valign="middle" height="100%" width="100%">
<table height="100" width="750" cellspacing="0" border="0" cellpadding="0">
<tr>
<td height="100" bgcolor="#FFE09F" width="750"><img src="grafiken/banner_top.jpg" tppabs="http://www.php-einfach.de/offline/grafiken/banner_top.jpg" width="750" height="100" border="0" alt="">
<a name="oben"></a></td>
</tr>
</table>
<table height="650" width="750" cellspacing="0" border="0" cellpadding="0">
<tr>
<td valign="top" bgcolor="#FFE09F" width="160">
<table width="160" cellspacing="0" border="0" cellpadding="0">
<tr>
<td height="100" width="5"></td>
<td class="black" height="100" width="150">
<br><b><center><img src="grafiken/side_navigation.gif" tppabs="http://www.php-einfach.de/offline/grafiken/side_navigation.gif" width="150" height="25" border="0" alt=""></center></b>
<a target="_blank" class="blue" href="http://www.php-einfach.de/index.php"><b>&raquo;</b> Startseite</a><br>
<a target="_blank" class="blue" href="http://www.php-einfach.de/nav_news.php"><b>&raquo;</b> News&uuml;bersicht</a><br>
<a target="_blank" class="blue" href="http://www.php-einfach.de/nav_email.php"><b>&raquo;</b> Kontakt</a><br>
<a target="_blank" class="blue" href="http://www.php-einfach.de/nav_impressum.php"><b>&raquo;</b> Impressum</a><br><br>
<center><img src="grafiken/side_community.gif" tppabs="http://www.php-einfach.de/offline/grafiken/side_community.gif" width="150" height="25" border="0" alt=""></center>
<a target="_blank" class="blue" target="_blank" href="http://forum.php-einfach.de/"><b>&raquo;</b> Forum</a><br>
<a target="_blank" class="blue" href="http://www.php-einfach.de/nav_gaestebuch.php"><b>&raquo;</b> G&auml;stebuch</a><br><br>
<center><img src="grafiken/side_tutorials.gif" tppabs="http://www.php-einfach.de/offline/grafiken/side_tutorials.gif" width="150" height="25" border="0" alt=""></center>
<a class="blue" href="einf_php.php.htm" tppabs="http://www.php-einfach.de/offline/einf_php.php"><b>&raquo;</b> Einf&uuml;hrung PHP</a><br>
<a class="blue" href="einf_mysql.php.htm" tppabs="http://www.php-einfach.de/offline/einf_mysql.php"><b>&raquo;</b> Einf&uuml;hrung MySQL</a><br>
&nbsp;&nbsp;&nbsp;<a class="blue" href="einf_mysql_anfang.php.htm" tppabs="http://www.php-einfach.de/offline/einf_mysql_anfang.php"><b>&raquo;</b> Anfang</a><br>
<div style="position: relative; left:15;" ><a class="blue" href="einf_mysql_tabellen_spalten.php.htm" tppabs="http://www.php-einfach.de/offline/einf_mysql_tabellen_spalten.php"><b>&raquo;</b> Tabellen & Spalten</a><br></div>
&nbsp;&nbsp;&nbsp;<a class="blue" href="einf_mysql_tabellen_fuellen.php.htm" tppabs="http://www.php-einfach.de/offline/einf_mysql_tabellen_fuellen.php"><b>&raquo;</b> Tabellen f&uuml;llen</a><br>
&nbsp;&nbsp;&nbsp;<a class="blue" href="einf_mysql_verbindung_aufbauen.php.htm" tppabs="http://www.php-einfach.de/offline/einf_mysql_verbindung_aufbauen.php"><b>&raquo;</b> Verbin. aufbauen</a> <br>
&nbsp;&nbsp;&nbsp;<a class="blue" href="einf_mysql_einfache_abfrage.php.htm" tppabs="http://www.php-einfach.de/offline/einf_mysql_einfache_abfrage.php"><b>&raquo;</b> Daten ausgeben</a><br>
&nbsp;&nbsp;&nbsp;<a class="blue" href="einf_mysql_weitere_abfragen.php.htm" tppabs="http://www.php-einfach.de/offline/einf_mysql_weitere_abfragen.php"><b>&raquo;</b> Weitere Abfragen</a><br>
&nbsp;&nbsp;&nbsp;<a class="blue" href="einf_mysql_daten_schreiben.php.htm" tppabs="http://www.php-einfach.de/offline/einf_mysql_daten_schreiben.php"><b>&raquo;</b> Daten hinzuf&uuml;gen</a><br>
&nbsp;&nbsp;&nbsp;<a class="blue" href="einf_mysql_daten_aendern.php.htm" tppabs="http://www.php-einfach.de/offline/einf_mysql_daten_aendern.php"><b>&raquo;</b> Daten &auml;ndern</a><br>
&nbsp;&nbsp;&nbsp;<a class="blue" href="einf_mysql_daten_loeschen.php.htm" tppabs="http://www.php-einfach.de/offline/einf_mysql_daten_loeschen.php"><b>&raquo;</b> Daten l&ouml;schen</a><br>
&nbsp;&nbsp;&nbsp;<a class="blue" href="einf_mysql_anzahl_zeilen.php.htm" tppabs="http://www.php-einfach.de/offline/einf_mysql_anzahl_zeilen.php"><b>&raquo;</b> Anzahl d. Zeilen</a><br>
&nbsp;&nbsp;&nbsp;<a class="blue" href="einf_mysql_verbindung_beenden.php.htm" tppabs="http://www.php-einfach.de/offline/einf_mysql_verbindung_beenden.php"><b>&raquo;</b> Verbin. beenden</a><br>
&nbsp;&nbsp;&nbsp;<a class="blue" href="einf_mysql_error_handling.php.htm" tppabs="http://www.php-einfach.de/offline/einf_mysql_error_handling.php"><b>&raquo;</b> MySQL-Fehler</a><br>
<br>
<br>
<center>
<a target="_blank" href="http://www.php-einfach.de/nav_verlinkung.php"><img src="grafiken/php-einfach.gif" tppabs="http://www.php-einfach.de/offline/grafiken/php-einfach.gif" width="88" height="31" border="0" alt="PHP-Einfach.de"></a><br><br>
<a target="_blank" href="http://www.digicount.de/"><b>Counterdienst:</b></a>
<a target="_blank" href="http://www.php-einfach.de/nav_digicount.php"><div>
<img src="grafiken/digicount_livedemo.jpg" tppabs="http://www.php-einfach.de/offline/grafiken/digicount_livedemo.jpg" border="0" alt="Digicount.de"><br>
<small>Unser werbefreier Counter- und Statistikdienst</small></div>
</a>
</center>
</td>
<td height="100" width="5"></td>
</tr>
</table>
</td>
<td valign="top" bgcolor="#FFFFFF" width="430">
<table width="430" cellspacing="0" border="0" cellpadding="0">
<tr>
<td height="100" width="10"></td>
<td valign="top" class="black" height="100" width="410">
<br>
<h4>Einfache Datenabfrage und Ausgabe</h4>
Nach dem letzten Kapitel habt ihr immerhin schon einige Daten in eurer Tabelle. Doch wie bekommt
man sie wieder raus? Zuerst einmal muss man wieder den obligatorischen Schritt mit dem
Verbindungsaufbau machen. <br> <br>
<h4>Einfache Abfrage</h4>
Eine einfache Abfrage ist gar nicht so kompliziert, hier ist erst mal die allgemeine Form:
<font color="#606060">
<pre>
&lt;?php
$abfrage = "SELECT Spaltenname FROM Tabellenname";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
{
echo "$row->Spaltenname";
}
?>
</pre>
</font>
Auf unser Beispiel mit der Linkliste w&uuml;rde bezogen, w&uuml;rde es z.B. so aussehen:
<font color="#606060">
<pre>
&lt;?php
$abfrage = "SELECT url FROM links";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
{
echo "$row->url &lt;br>";
}
?>
</pre>
</font>
Zuerst wird die Anfrage gesendet, dies geht wieder per <b>mysql_query()</b>. Danach folgt eine while-Schleife, die ausdr&uuml;ckt: "F&uuml;hre
die Anweisung solange aus, bis in das Array $row keine Werte mehr geschrieben werden.
". Dazu benutzen wir den Befehl <b>mysql_fetch_object()</b> <br><br>
Um nun einzelne Spalten anzusprechen muss man als Anweisung <br>
<b>echo "$row->spaltenname"; </b><br>
benutzen, wobei man nat&uuml;rlich die Werte nicht nur ausgeben muss, sondern sie auch z.B. &uuml;berpr&uuml;fen lassen kann.<br>
Diese Ausgabe funktioniert aber nur innerhalb der while-Schleife, au&szlig;erhalb nicht.<br>
Innerhalb der while-Schleife k&ouml;nnt ihr ganz normale PHP-Befehle benutzen und sogar weitere Tabellen abfragen.<br><br>
Nat&uuml;rlich m&ouml;chte man nicht nur eine Spalte einer Tabelle ausgeben. Um mehrere auszugeben muss man die Abfrage etwas anpassen:
<font color="#606060">
<pre>
&lt;?php
$abfrage = "SELECT id, url, urlname FROM links";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
{
echo "$row->id, $row->url, $row->urlname &lt;br>";
}
?>
</pre>
</font>
Dabei werden alle Spaltennamen mit einem Komma von einander getrennt.<br><br>
M&ouml;chte man alle Spalten abfragen, kann man auch anstatt die Spaltennamen zu schreiben, ein * benutzen.
<font color="#606060">
<pre>
&lt;?php
$abfrage = "SELECT * FROM links";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
{
echo "$row->name, $row->url, $row->urlname &lt;br>";
}
?>
</pre>
</font>
<b>Achtung:</b> Man kann zwar das Sternchen (*) benutzen, allerdings ist die Ausgabe dann etwas langsamer, denn MySQL muss alle Spalten abfragen und zwischenspeichern, obwohl evt. nur 2 oder 3 Spalten ben&ouml;tigt werden. Auf Rechnern mit wenig Arbeitsspeicher kann so das Script schon merklich langsamer werden. Deswegen sollte man die verschiedenen Spaltennamen mit einem Komma voneinander trennen.<br>
Auch wenn man alle Spalten ben&ouml;tigt, sollte man die Spalten einzeln auff&uuml;hren, denn so muss der Server die Reihenfolge nicht immer wieder neu berechnen.<br>
<b>Allerdings</b> sollte man darauf nur achten, wenn man viele (8 und mehr) Abfragen pro Seite hat, und dieses Script viele Personen (30 und mehr) auf einmal benutzen, oder wenn man einen langsamen Server hat. Ist dies nicht der Fall, dann kann man ruhig Sternchen benutzen, denn den der zeitliche Unterschied ist kaum messbar.<br><br>
In Beispielen findet man zwar meistens ein Sternchen, denn so muss der Autor nicht darauf achten, dass der Leser die Datenbank richtig abfragt.<br><br>
Es gibt aber noch viele <a href="einf_mysql_weitere_abfragen.php.htm" tppabs="http://www.php-einfach.de/offline/einf_mysql_weitere_abfragen.php">weitere Abfragen</a>.<br><br>
<a href="http://www.php-einfach.de/nav_impressum.php">Autor Andavos & Urza</a>
<div align="center"><a href="#oben">Nach oben</a></div>
</td>
<td height="100" width="10"></td>
</tr>
</table>
</td>
<td valign="top" bgcolor="#FFE09F" width="160">
<table width="160" cellspacing="0" border="0" cellpadding="0">
<tr>
<td height="100" width="5"></td>
<td valign="top" class="black2" height="100" width="150">
<br><b><center><img src="grafiken/side_news.gif" tppabs="http://www.php-einfach.de/offline/grafiken/side_news.gif" width="150" height="25" border="0" alt=""></center></b>
<a target="_blank" href="http://www.php-einfach.de/nav_news.php">News</a>
<br><br>
<b><center><img src="grafiken/side_forum.gif" tppabs="http://www.php-einfach.de/offline/grafiken/side_forum.gif" width="150" height="25" border="0" alt=""></center></b>
<a target="_blank" href="http://forum.php-einfach.de/">Forum</a>
<br><br>
<b><center><img src="grafiken/side_newsletter.gif" tppabs="http://www.php-einfach.de/offline/grafiken/side_newsletter.gif" width="150" height="25" border="0" alt="Newsletter"></center></b>
<form target="_blank" method="post" action="http://www.php-einfach.de/clanletter/save.php">
<br> <br>
<div align="center">&copy; PHP-Einfach.de 2003 - 2007 </div>
</td>
<td height="100" width="5"></td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>