PHP/MySQL Abruf

Akihisa

Well-known member
ID: 332118
L
21 Oktober 2008
165
13
Hallo,

folgendes ich habe eine Tabelle mit den Spalten Firma und datum.
Jetzt wollte ich in einem Formular ein Dropdown-menu erstellen, dass mit den Firmen gefüllt wird.
Bis hierhin kein Problem, aber dann wollte ich darunter ein Textfeld (input nicht textarea) erstellen, in dem dann das passende Datum gespeist wird, leider zeigt er entweder gar kein Datum an oder er erstellt für jedes Datum nen neues Input Feld.

Ich hoffe ihr versteht mein Problem und könnt mir helfen :)
 
hi

meine Glaskugel ist gerade kaputt zeig doch mal deinen bisherigen Code :mrgreen: dann kann man dir eher helfen.

mfg

chris
 
Ich hab grad gemerkt, dass die Firmen sofern doppelt in der DB auch dopplet im dropdown verokommen, dass muss auch noch geändert werden -.-*

PHP:
			<form action="db_1.php" method="post">
			<select size="1" style="width:150px" name="Firma">
				<option value="0" selected>auswählen</option>
<?php
$db = @new mysqli("localhost","root","","projekt");
			if (mysqli_connect_errno()) {
			    die ('Konnte keine Verbindung zur Datenbank aufbauen: '.mysqli_connect_error().'('.mysqli_connect_errno().')');
			}

	$zahl = 0;
	
	$sql = 'SELECT Firma, seit	FROM Kunde'; 
	
	
$result = $db->query($sql);
			if (!$result) {
			    die ('Etwas stimmte mit dem Query nicht: '.$db->error);
			}
			
				while ($row = $result->fetch_assoc()) { 
				    // $row ist nun das Array mit den Werten
					
					echo "<option value=\"".++$zahl."\">".$row['Firma']."</option>\n";
				}
				echo "</select><br />";
				
		$result->close();
	    unset($result); 		
				
$result2 = $db->query($sql);
			if (!$result2) {
			    die ('Etwas stimmte mit dem Query nicht: '.$db->error);
			}
			
				while ($row2 = $result2->fetch_assoc()) { 
				    // $row2 ist nun das Array mit den Werten
					
					echo "<input type=\"text\" name=\"date\" style=\"width:150px\" value=\"".$row['seit']."\" />";
				}
	
		$result2->close();
	    unset($result2); 				
		


?>
 
Ich verstehe nicht ganz.

1. damit Einträge nur einfach vorkommen, benutzt zu "DISTINCT" also z.B.
PHP:
<?php
$query = mysql_query('SELECT DISTINCT * FROM ´firmendata´ WHERE a = b');
?>

2. Ich verstehe, dass du eine SelectBox gebaut hast... aber wenn du jetzt zu jeder Firma, die existiert, auch noch das Datum dazu in einem <input> ausgeben lässt, ist es doch klar, dass du immer mehr als 1 <input> bekommst... oder willst du, dass wenn man eine FIrma auswählt, dazu dann das passende <input>-Feld beokmmt? dann müsstest auf Ajax zurück greifen...

Erklär, dein Problem bitte mal etwas präzieser...
 
Hier noch mal Tabellen Struktur vllt hilft die:

ID| Firma | Datum
---------------------
1 |Firma a| aa.aa.aa
2 |Firma b| bb.bb.bb

Also ich möchte, dass wenn man aus dem Dropdown zB Firma a auswählt, dann passende input Feld Datum aa.aa.aa erscheint.

Ist das denn nicht mit PHP/MySQL möglich?

Aber danke schonmal für DISTINCT
 
Doppelte Einträge mit DISTINCT zu eliminieren ist hier denke ich der falsche Ansatz.
Es sollte vielmehr geprüft werden, warum Firmen doppelt in der Tabelle drin sind.

Gehört jede Firma nur einmal rein, dann ist die Datenbasis falsch und sollte bereinigt werden ( inklusive der Programme, die diese Daten einstellen ).

Gehört die Firma öfters rein ( weil z.B. nur in Verbindung mit der Spalte "seit" eindeutig ), dann hilft ein SELECT DISTINCT * auch nicht weiter.
 
Soll die Tabelle eher "Bestellungen" (eine Firma kann mehrfach zu unterschiedlichen Daten an der Relation teilnehmen) beinhalten oder einfach nur eine Auflistung aller Firmen (eine Firma kann nur maximal einmal partizipieren) sein?

In letztem Fall ist schon das Datenbank-Schema falsch: den Surrogatschlüssel kann man sich sparen und stattdessen sollte die Firma Primärschlüssel sein / Alternativ: Surrogat beibehalten und UNIQUE-Index auf die Firma.

Zur Frage, ob das geht mit "Anzeigen, wenn ausgewählt": Ne, das geht mit PHP/MySQL nicht, da das eine clientseitige Aktion is - der Browser muss ja was tun, ergo: JavaScript
Du musst halt quasi die Tabelle komplett auslesen und mit PHP dann entsprechendes JavaScript generieren, z.B. ein Array, was alle Daten hat und dann gewohnt über Event-Handler den gewünschten Effekt durchführt.
 
Eher "Bestellungen". Man trägt halt die Firma+Kundennumer+usw in die datenbank ein und dann in ne andere Tabelle bestimmte Produkte die sie gekauft haben.
Und da hab ich jetzt ziemlich Probleme, da ich erst am Montag angefangen habe mich überhaupt mit MySQL + PHP zu beschäftigen :(.

Wäre also nett wenn ihr mir helfen könnt, denn ich versteh atm nicht mehr allzuviel.
 
Wenns ne Kundennummer gibt, ist die aber der Primärschlüssel und der Surrogat wieder überflüssig...

Ich geb dir den dringenden Rat, erstmal das Schema ordentlich auszuarbeiten, dir Gedanken zu machen, ER-Diagramm zeichnen, Relationen klären, wer steht mit wem in Beziehung und wie oft, dass erstmal die Datenbank passt.

Erst danach kannst du dich an die Programmierung mit PHP machen und die entsprechenden Sachen anzeigen lassen.