Mailinglisten-Archive |
"rh" <rh_(at)_logiks.de> wrote on 13.12.2001 19:03:53: > ><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> ><HTML><HEAD> ><META content="text/html; charset=iso-8859-1" http-equiv=Content-Type> ><META content="MSHTML 5.00.2614.3500" name=GENERATOR> ><STYLE></STYLE> ></HEAD> ><BODY bgColor=#ffffff> ><DIV><FONT face=Arial size=2> ><DIV><FONT face=Arial size=2> ><DIV><FONT face=Arial size=2>Hallo,<BR>ich habe ein kleines >Abfrageproblem.<BR><BR>Tabelle sieht folgendermaßen aus:<BR><BR>id feld 1 >feld 2 feld 3 .... >feld 15<BR>---------------------------------------------------------<BR>1 >inhalt1 1 inhalt2 1 inhalt3 1 inhalt15 1<BR>2 inhalt1 2 inhalt2 >2 ......<BR><BR>Die Felder sind teilweis auch nicht mit Inhalt >gefüllt!</FONT></DIV> ><DIV><FONT face=Arial size=2><BR>Nun möchte ich die Inhalte der Tabelle so >abfragen, <BR>daß ich alles in einem array habe und die dann sortieren >kann,</FONT></DIV> ><DIV><FONT face=Arial size=2>leere Felder wegzuwerfen und eine alphab. >Reihenfolge zu bekommen.<BR><BR>Folgendes habe ich bisher >versucht:<BR><BR><? >php<BR> $link >= mysql connect("localhost", "root", >"");<BR><BR> >if >(!$link)<BR> &n- >b- sp; die("Kein mysql connect() möglich. ><br>\n");<BR><BR> &nb- >s- p; $query = "select * from Tabelle";<BR><BR> >$res = mysql db query("intranet", $query, $link);<BR> if >(!$res)<BR> die(mysql >error($link));<BR><BR> $r = >mysql fetch array($res, MYSQL >ASSOC);<BR> $iss = array (sort >($r));<BR><BR> while ( $iss!="" >) {<BR> echo $iss. >"<br>\n";<BR> }<BR>? >><BR><BR>Dies endet aber in einer Endlosschleife.<BR><BR>Kann mir >jemand vielleicht einen kleinen Tipp geben, wie ich dies lösen kann? ><BR>Irgendwie habe ich mal was von 'temporary tables' gehört, <BR>aber >leider keine Beispiele hierzu gefunden ???<BR><BR><BR>--<BR>Mit >freundlichen Grüßen<BR>Karsten >Stratmann<BR></DIV></FONT></FONT></DIV></FONT></DIV></BODY></HTML> Hi Karsten, als erstes: Bitte kein HTML-Mail auf der Liste, sonst gehen hier wieder die endlosen Threads ueber Sinn und Unsinn darueber los. Die Endlosschleife verursachst Du selbst mit dem Konstrukt 'while ($iss!="")'. Dieses Array wird nie leer (da Du keine Elemente innerhalb der Schleife entfernst), deshalb wird die Schleife auch nie abgebrochen. Um die Elemente eines Arrays auszugeben, solltest Du mit einer for-Schleife durch alle Elemente gehen und sie einzeln ausgeben. Eventuell gibt es da im PHP noch andere Moeglichkeiten, ich komme aber vom C und da gehts nur so. Ansonsten solltest Du Dich vielleicht von dem Gedanken verabschieden, alles selber machen zu wollen. Der MySQL kann das - im Normalfall - schneller und besser. Fuege Deiner $query einen "order by Spalte(n)" hinzu, dann bekommst Du die Records bereits sortiert vom Server, der dann auch mit seinen Indizees arbeiten kann. Auch die leeren Datensaetze entfernt der Server bereits fuer Dich, wenn Du ihm das mit einem "where Bedingung(en)" sagst. Damit wird der Datenverkehr - auch wenn es die lokale Maschine ist - minimiert und alles geht schneller. Ciao Oliver -- Good programming is 40% experience, 30% skill, 20% RTFM, 10% caffeine, and 5% attention to detail. Oliver Six, CEO CAHOS GmbH, Cimbernstr. 51, Germany 81377 Muenchen Phone +49 89 71 01 93 40, Fax +49 89 71 01 93 41 --- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive