Hallo mxcom,
also ich versuch dir mal weitestgehend zu helfen:
PHP-Code:
<?php
require_once '../inc/db_connect.php';
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" href="styles.css" type="text/css" />
<title>Bilder Suchen</title>
</head>
<body>
<form method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<h1>Bilder Suchformular:</h1>
<select size="1">
<option name="<?php echo kid; ?>" selected>Künstler wählen</option>
<?php
$abfrage=("SELECT kunstler.id, kunstler.nachname, kunstler.vorname, bgallery.kid,
bgallery.bild, bgallery.kommentar FROM kunstler, bgallery WHERE kunstler.id = bgallery.kid");
$ergebnis = mysql_query($abfrage);
while($datensatz = mysql_fetch_array($ergebnis, MYSQL_ASSOC)) {
?>
<option name="<?php echo kid; ?>" value="<?php echo $datensatz['kid'];?>">
<?php echo $datensatz['vorname'];?> <?php echo $datensatz['nachname'];?>
</option>
<?php } ?>
</select>
<input type="submit" name="suchen" value="Suchen"/>
</form>
<p> </p>
<?php
if (isset($_POST['suchen']))
{
$zahl ="0";
$abfrage='SELECT * FROM kunstler t1 INNER JOIN bgallery t2 ON t1.id = t2.kid';
$ergebnis = mysql_query($abfrage);
echo mysql_error();
echo "<table> <tr>";
while($datensatz = mysql_fetch_array($ergebnis, MYSQL_ASSOC)) {
// Falls es ein Bild zu gerade angezeigten Datensatz
// gibt, wird dieses in einen img-Tag eingebaut
if ($datensatz['bild'] != '' && file_exists('./bilder/' . $datensatz['bild']))
{
// Damit die Tabelle nicht voellig ausser Form
// geraet, wird die Hoehe des Bilder auf 90px
// eingeschraenkt
$groesse = GetImageSize('./bilder/' . $datensatz['bild']);
$hoehe = $groesse[1] > 150 ? 150 : $groesse[1];
$stil = $stil == 'zebra1' ? 'zebra2' : 'zebra1';
echo '<td class='.$stil.'><img src="./bilder/'.$datensatz['bild'].'" height="'.$hoehe.'" alt="Bild" /><br>Künstler:
<br><b>'.$datensatz['vorname'].' '.$datensatz['nachname'].'</b><br>';
echo $datensatz['$kid'];
?>
<hr /></td>
<?php
if($zahl=="3")
{
echo "</tr>";
$zahl="-1";
}
$zahl++;
}
}
}
echo "</table>";
@mysql_free_result($ergebnis);
@mysql_close($verbindung);
?>
</body>
</html>
Folgende Fehler:
Zeile 16: kid => $kid (Wenn dann bitte richtig)
Zeile 18/19: bitte ohne klammern ...
Zeile 23: kid => $kid (Wenn dann bitte richtig)
So das waren erstmal die syntax Fehler.
Kommen wir nun zu den restlichen Fehlern:
$kid => Wird das überhaupt initialisiert ? Wenn ja hab ich das wohl übersehen
Ich hoffe ich konnte dir ein wenig weiterhelfen.
Für die Zukunft, vorallem wenn du gerade am anfang deiner Entwickler-Laufbahn bist, gewöhne dir an stets Code von Design zu trennen. Dies bewirkt zum einem eine bessere Übersicht und zum anderen eine leichtere Problemlösung.
Auch ist es hilfreich den Code zu Formatieren und gegenfalls Kommentare einzubauen. Vorallem Kommentare können für die Problemlösung hilfreich sein, da du bei der Laufzeit erkennst wo die Probleme auftreten und mithilfe deiner Kommentare schnell in dem dafür vorgesehenen Code-Abschnitt bist.
Ein Tipp noch zur Problemlösung, vllt. schaffst du es auch dann alleine. Versuche das Problem stück für stück nachzuvollziehen. Was funktioniert denn nicht ? Gibt es Probleme bei der DropDown - Liste oder Probleme bei der Auswertung des Formulars ? Werden die Werte geladen (var_dump) oder gibt es bereits hier Probleme ? Wenn nicht, gibt es dann Probleme bei der Ausgabe ?
All dies würde dir und uns helfen dein Problem schneller zu finden und zu analysieren.
Mit freundlichen Grüßen und alles gute für deine Laufbahn.
Marc