Ankündigung

Einklappen
Keine Ankündigung bisher.

Daten aus Datenbank auslesen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Daten aus Datenbank auslesen

    Hallo,

    ich habe ein Problem mit einer Homepage.
    Vorab erstmal... es handel sich um eine Feuerwehr Homepage, wo die verschiedenen Einsätze ausgelesen werden sollen.
    Jeder Einsatz hat also in der Mysql Datenbank eine andere ID.

    Jeder Einsatz wird über die detail.php ausgegeben und lediglich nur die Daten mit einem php script verändert.

    Nun bekomme ich es aber nicht so hingeschrieben, dass mir die verschiedenen Einsätze angezeigt werden sondern nur die Daten vom Letzten Einsatz.
    Bei den Bildern unten (die 3 ) funktioniert es aber, komischerweise.
    Könnt ihr mir dort weiterhelfen?

    Mein Quellcode:

    Code:
    <? include"inc/connect.php";   $daten=mysql_fetch_array(mysql_query("SELECT id, enr,art,datum,azeit,dauer,eleiter,stich,objekt,maßnahmen,fahrzeuge,nbild1,nbild2,nbild3  FROM einsatz ORDER BY ID DESC LIMIT 1")); ?>
      <div style="margin-left:15px; margin-right:15px">
      <h2 class="titel">Einsatz <?echo$daten["enr"];?> am <?echo$daten["datum"];?> um <?echo$daten["azeit"];?> Uhr <div style="float:right"><?echo$daten["stich"];?></div></h2>
      <div style="clear:both"></div> 
      <div class="abstand3"></div>
      <div style="float:left; margin-left:50px"><table border="0" cellpadding="3" cellspacing="1" style="table-layout:fixed; padding-left:15px"><tr><td style="vertical-align:top"><b>Einsatzdauer:</b></td> <td><?echo$daten["dauer"];?> h</td> 
    		<tr><td style="vertical-align:top"><b>Einsatzort:</b></td> <td><?echo$daten["objekt"];?></td></table></div>
    	<div style="float:right; margin-right:50px"><table border="0" cellpadding="3" cellspacing="1" style="table-layout:fixed;"><tr><td style="vertical-align:top"><b>Einsatzart:</b></td> <td><?echo$daten["art"];?></td>
    		<tr><td style="vertical-align:top"><b>Einsatzleiter:</b></td> <td><?echo$daten["eleiter"];?></td></table></div>
    	<div style="clear:both"></div>
    
    	<div class="abstand3"></div>
    	<h3 class="titel">Einsatzmaßnahmen:</h3>
    	<table style="width:650px; padding-left:15px;"><tr><td><?echo$daten["maßnahmen"];?></tr></td></table>
    	<div class="abstand3"></div>
    	<h3 class="titel">Fahrzeuge vor Ort:</h3>
    	<table style="width:650px; padding-left:15px;"><tr><td><?echo$daten["fahrzeuge"];?></tr></td></table>
    	<div class="abstand3"></div>
    	<h3 class="titel">Einsatzbilder:</h3>
    
    	<? $sql = sprintf("SELECT id,nbild1,nbild2,nbild3 FROM einsatz WHERE id = \"%s\"",	mysql_real_escape_string($id));
    		$result =mysql_query($sql)OR die (mysql_error());
    		if (mysql_num_rows($result)){
    			while($row = mysql_fetch_assoc($result)) {
    		
    				echo "<a href=\"einsatz10/".$row[nbild1].".png\" rel=\"gallery\" target=\"_self\"><img class=\"abstandbilder\" src=\"einsatz10/".$row[nbild1].".png\" height=\"120px\" width=\"150px\" alt=\"\" border=\"0\" style=\"border:1px solid #870706; padding:2px\"/></a>";
    				echo "<a href=\"einsatz10/".$row[nbild2].".png\" rel=\"gallery\" target=\"_self\"><img class=\"abstandbilder\" src=\"einsatz10/".$row[nbild2].".png\" height=\"120px\" width=\"150px\" alt=\"\" border=\"0\" style=\"border:1px solid #870706; padding:2px\"/></a>";
    				echo "<a href=\"einsatz10/".$row[nbild3].".png\" rel=\"gallery\" target=\"_self\"><img class=\"abstandbilder\" src=\"einsatz10/".$row[nbild3].".png\" height=\"120px\" width=\"150px\" alt=\"\" border=\"0\" style=\"border:1px solid #870706; padding:2px\"/></a>";
    				
    		}
    		}
    		else {echo"<p>kein Eintrag vorhanden</p>";} ?>


  • #2
    Zitat von Science14 Beitrag anzeigen
    Nun bekomme ich es aber nicht so hingeschrieben, dass mir die verschiedenen Einsätze angezeigt werden sondern nur die Daten vom Letzten Einsatz.
    So ganz klar ist mir nicht wo das Problem liegt ... Du möchtest alle Einsätze (bzw. mehrere) angezeigt haben? Warum schränkst du dann die Anzahl mit "LIMIT 1" auf einen Einsatz ein? bzw. die ID ist kein geeignetes Feld um danach zu sortieren, sortiere nach dem Einsatzdatum o.ä..

    Bei den Bildern unten (die 3 ) funktioniert es aber, komischerweise.
    Könnt ihr mir dort weiterhelfen?
    Wo kommt die ID in $id her?

    außerdem:
    - die mysql_*-Funktionen sind veraltet, verwende mysqli bzw. PDO
    - dein Datenbankdesign ist defekt, das Feld datum ist höchstwahrscheinlich nicht vom Type DATE(TIME) und nummerierte Feldnamen deuten quasi immer auf eine Verletzung von Normalformen hin
    - schreibe nie sowas wie mysql_fetch_array(mysql_query("SELECT ...")), du hast keine Chance da eine ordentliche Fehlerbehandlung zu machen
    - <div class="abstand3"></div> möchte ersatzlos entfallen und durch margin/padding des vorherigen/nachfolgenden Elements ersetzt werden
    - das: <table style="width:650px; padding-left:15px;"><tr><td><?echo$daten["maßnahmen"];?></tr></td></table> ist ebenfalls Unsinn und möchte vermutlich gerne ein <hX> sein
    - wofür eine while-Schleife zum Abrufen von Daten wenn du nur einen Datensatz abrufst?
    - sowas: echo "<a href=\"einsatz10/".$row[nbild1].".png\" […]>[…]"; ist sehr schwer lesbar, verwende z.B. einfache Anführungszeichen: echo '<a href="einsatz10'.$row[nbild1].'.png" […]>[…]';
    - lagere CSS-Code aus, der hat im HTML-Code nichts verloren

    Kommentar

    Lädt...
    X