PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP für Fortgeschrittene und Experten (http://www.selfphp.de/forum/forumdisplay.php?f=13)
-   -   Datenbank - Eine generelle Frage (http://www.selfphp.de/forum/showthread.php?t=4089)

Stella 24.04.2003 08:07:08

Datenbank - Eine generelle Frage
 
Guten Morgen,

na alle fit? Ich hab mal wieder.... (war ja in den letzten 2 Tagen kaum hier) ... eine Frage.

Kann ich Probleme bei der Ausgabe eines Arrays bekommen, wenn in meinem Feld ein Leerzeichen steht?

zB.
name
Egon Müller

oder wäre es besser das zu spliten in:
vorname name
Egon Müller

Die frage stellt sich mir, weil ich es nicht schaffe meine Daten wieder zurück an die DB zu senden. Er schickt bloß Egon und läßt den Müller einfach weg.


Gruß Nina

c4 24.04.2003 08:14:23

Da gibt es eigentlich kein Problem.
Dürfte ich daher wieder um das entsprechende Stückchen Code bitten? Ich vermute mal, dass da wieder ein paar ' oder " fehlen...

Stella 24.04.2003 08:16:09

Schau mal unter Probleme mit echoausgabe...

c4 24.04.2003 08:28:52

Also was mir wieder aufgefallen ist, ist, dass bei den ganzen print()-Befehlen nicht einmal " oder ' verwendet wurde. Dies empfiehlt sich aber noch immer.

Du sagst, dass Du die Daten zurückschreiben willst - bei Deinem alten Problem mit den echos steht nix von INSERT oder UPDATE, was ja zum zurück schreiben in die DB nötig wäre. Das, was dort steht - auch die Arrays - sieht schon mal okay aus.
Der Code, in dem genau das geschehen soll ist der interessantere.

Stella 24.04.2003 08:36:08

Vielleicht kurz zur Erklärung:

Ich habe eine Tabelle mit sämtlichen Kontaktdaten der Mitarbeiter.
Ich möchte, das der User die Personen heraussuchen kann mit denen er am meisten zu tun hat. Die soll er auswählen und danach bekommt er alle Daten angezeigt, damit er sie sich auch ausdrucken kann.

Mehr möchte ich im Prinzip nicht. Eine Abfrage der Namen, eine Auswahlmöglichkeit und das Anzeigen der kompletten Datensäze zu den Auswahlen.

Ist das so schwierig ?

c4 24.04.2003 08:45:22

Ah, da hab ich doch tatsächlich was falsch verstanden. Passiert.

Steht in Deinem Skript noch immer sowas:
name='kontakt' value=$row['name']>.$row['name']<td>? Wenn ja, dann fehlen dort mal wieder/noch immer die Hochkommas bei value! Somit übermittelt er halt nur Erwin oder Egon oder was auch immer. Alles dahinter bleibt noch immer unberührt stehen.

Stella 24.04.2003 08:48:30

ich habe in meiner DB die Namen mittlerweile getrennt. Es gibt nur Vor- und Nachnamen.

die Auswahl klappt mittlerweile, die Nachnamen stehen auch in der URL aber die Anzeige klappt noch nicht. Habe ich das eine falsche Idee gehabt?

Der Code zur Ausgabe ist:
PHP-Code:

//Anzeige der ausgewählten Daten
$result=mysql_query("SELECT * FROM kontakt WHERE name='".$_REQUEST['name']."' ORDER BY name");
while(
$row mysql_fetch_array($result))
{
print (
"<tr>");
print (
"<td width='200' bgcolor='#0f1e37'> </td>");
print (
"<td width='300' bgcolor='#2c58a2' class='H16'>");
print (
"Name: ".$row[vorname].$row[name]);
print (
"<BR>Abteilung".$row[abteilung].$row[bereich]);
print (
"<BR>Telefon: ".$row[telefon]);
print (
"<BR>Fax: ".$row[fax]);
print (
"<BR>Mobil: ".$row[handy]);
print (
"<BR>E-Mail: ".$row[email]);
print (
"<td>");
print (
"<td width='140' bgcolor='#0f1e37'> </td>");
print (
"</tr>");

print (
"<tr><td width=200 bgColor=0F1E37></td><td width=300 bgColor=#2c58a2 class=H16><INPUT type=submit name=Liste erstellen></td><td width=140 bgColor=0F1E37><img src=/images/transparent.gif width=1 height=1></td></tr></form>");
print (
"</table></table>"); 

Ich habe es jetzt getrennt, damit ich besser zurecht komme.

c4 24.04.2003 08:58:13

Dumm gefragt: Im URL steht datei.php?name=Scholz und er zeigt den Nutzer Scholz nicht an?
Stimmt die Groß- und Kleinschreibung mit der DB überein?
Der Code sieht ja mal wieder okay aus - von den fehlenden ' bei $row['Bezeichner'] mal abgesehen...

Stella 24.04.2003 09:04:47

Code:

http://62.153.211.38/cdhomepage/test.php?name=B%FChl&name=Essert&name=L%FCck&name=Raule&Liste=
So sieht die URL aus. Die Checkbox muß ja den gleichen Namen haben wie das Feld in der DB? Die Groß-Klein Schreibung müßte stimmen.

Er zeigt hinterher nicht den kompletten Datensatz an.

c4 24.04.2003 09:16:29

Ich bin heute etwas langsam im Verarbeiten, ich merk das schon. :(

Trotzdem: Ideen zur Lösung

Schreib statt
<input type="checkbox" name="name" value="Essert">
<input type="checkbox" name="name" value="Lück">

lieber
<input type="checkbox" name="name[]" value="Essert">
<input type="checkbox" name="name[]" value="Lück">

Damit wird von PHP ein Array $name erzeugt.
$name[0]=="Essert" und $name[1]=="Lück"

Dieses Array kannst Du dann mittels Schleife durchlaufen und dann Datensatz für Datensatz anzeigen lassen.
PHP-Code:

$i=0; while ($i<count($name))
 {
  
$result=mysql_query("SELECT ... WHERE name='".$name[$i]."' ..");
  
// Ausgabe der Datensätze vom Nutzer
  
$i++;
 } 

Der Name des Feldes im Quelltext des Formulares muss nicht mit dem Feldnamen der DB übereinstimmen. Es vereinfacht nur das Verständnis.


Am Besten wäre es natürlich, wenn Du jedem Nutzer eine ID zuweist und dann nur mit dieser arbeitest. Erspart Dir so manches an Arbeit.


Alle Zeitangaben in WEZ +2. Es ist jetzt 11:38:01 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.