SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

PHP 5.3 & MySQL 5.1

PHP 5.3 & MySQL 5.1 zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP für Fortgeschrittene und Experten

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #11  
Alt 12.09.2007, 10:00:47
Luke85 Luke85 ist offline
Anfänger
 
Registriert seit: Aug 2007
Beiträge: 47
AW: DropDown Probleme

Ja ich merke auch, das kann so nicht sein.
Ich werde es jetzt nochmal Schritt für Schritt durchgehen und dementsprechend ändern.
Mit Zitat antworten
  #12  
Alt 12.09.2007, 12:57:21
Luke85 Luke85 ist offline
Anfänger
 
Registriert seit: Aug 2007
Beiträge: 47
AW: DropDown Probleme

Also ich habs mal anders Probiert. Und zwar hier nach dem Schema:
http://oszhdl.be.schule.de/gymnasium...n_aendern.html
Habe jetzt das Ausleseformular mit den DropDownMenü mit folgendem Skript vervollständigt:
HTML-Code:
echo '
<FORM action="produkt_aendern.php" METHOD="post">';

echo '<input type="submit" name="$pr_nrn" value="Datensatz ändern">';

echo '</FORM>';
Hier das Dokument produkt_aendern.php mit angepassten Werten,

PHP-Code:
<!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=utf-8" />
<title>Produkt ändern</title>
</head>

<body>
<?php
// Verbindung wird zur Datenbank aufgenommen  
$db=mysql_connect ("localhost","benutzer","");  

// Eingabe wird in Variable übergeben
$pr_nrn=$_POST['Produktnummer'];

//Prüfen ob der Datensatz in der Datenbank verfügbar ist
  
$query "produkt, SELECT * FROM test WHERE Produktnummer = '$pr_nrn'";
  
$result mysql_query($query);
  
$num mysql_num_rows($result);

  echo 
mysql_error(); 
  
mysql_close();
?>

<form action="produkt_aendern2.php" method="post">
<table width="665" border="1" cellspacing="0" cellpadding="0">
  <tr>
    <td width="162">Produktnummer</td>
    <td width="497"><?php echo "$pr_nrn" ?><input type="hidden" name="Produktnummer" value="<? echo "$pr_nrn"; ?>"/></td>
  </tr>
  <tr>
    <td>Typ</td>
    <td><input type="text" name="Typ" value="<? echo mysql_result($result, 0, "Typ"); ?>"/></td>
  </tr>
  <tr>
    <td>Teilung</td>
    <td><input type="text" name="Teilung" value="<? echo mysql_result($result, 0, "Teilung"); ?>"/></td>
  </tr>
  <tr>
    <td>Frequenzbereich</td>
    <td><input type="text" name="Frequenzbereich" value="<? echo mysql_result($result, 0, "Frequenzbereich"); ?>"/>  </tr>
  <tr>
    <td>Einfügungsdämpfung</td>
    <td><input type="text" name="Einfügungsdämpfung" value="<? echo mysql_result($result, 0, "Einfügungsdämpfung"); ?>"/>  </tr>
  <tr>
    <td>Rückflußdämpfung</td>
    <td><input type="text" name="Rückflußdämpfung" value="<? echo mysql_result($result, 0, "Rückflußdämpfung"); ?>"/>  </tr>
  <tr>
    <td>Isolation</td>
    <td><input type="text" name="Isolation" value="<? echo mysql_result($result, 0, "Isolation"); ?>"/>  </tr>
  <tr>
    <td>Impedanz</td>
    <td><input type="text" name="Impedanz" value="<? echo mysql_result($result, 0, "Impedanz"); ?>"/>  </tr>
  <tr>
    <td>Widerstand</td>
    <td><input type="text" name="Widerstand" value="<? echo mysql_result($result, 0, "Widerstand"); ?>"/>  </tr>
  <tr>
    <td>Schalterzeit</td>
    <td><input type="text" name="Schalterzeit" value="<? echo mysql_result($result, 0, "Schalterzeit"); ?>"/>  </tr>
  <tr>
    <td>Schalttyp</td>
    <td><input type="text" name="Schalttyp" value="<? echo mysql_result($result, 0, "Schalttyp"); ?>"/>  </tr>
  <tr>
  <td><input type="submit" name="Senden"></td>
  <td><input type="reset"></td>
  </tr>  
</table>
</form>

</body>
</html>
Doch er hat Probleme beim Verbinden zur Datenbank, bei " $query = "produkt, SELECT * FROM test WHERE Produktnummer = '$pr_nrn'";".
Mit Zitat antworten
  #13  
Alt 12.09.2007, 13:27:31
Raketenmann Raketenmann ist offline
Junior Member
 
Registriert seit: Jun 2004
Beiträge: 473
AW: DropDown Probleme

Vielleicht weißt du es besser als ich, aber gehört das "produkt," wirklich vor das "SELECT"? Kann man so eine DB auswählen, auf die sich das "SELECT" bezieht? So habe ich das noch nie gesehen (...kann aber, wie gesagt, auch meine Unwissenheit sein).

Ich hätte folgendes verwendet

PHP-Code:
// Verbindung wird zur Datenbank aufgenommen   
mysql_connect ("localhost","benutzer","");

// DB auswählen
mysql_select_db('produkt');

mysql_query("SELECT * FROM test WHERE Produktnummer = '$pr_nrn'"); 

Und noch ein Tipp: Statt dir jedes Feld der Ergebnismenge einzeln über die lahmarschige Funktion mysql_result() zu ziehen, solltest du dir mal die Funktion mysql_fetch_array() und/oder ähnliche Funktionen im Handbuch ansehen.
Mit Zitat antworten
  #14  
Alt 12.09.2007, 13:36:32
Luke85 Luke85 ist offline
Anfänger
 
Registriert seit: Aug 2007
Beiträge: 47
AW: DropDown Probleme

Ouh man, wieso bin ich nicht selbst draufgekommen. So ist die Fehlermeldung weg, jedoch habe ich jetzt ein Problem mit den Textfelder. In denen wird keine Datensatz übergeben sondern folgende Ausgabe steht drin. Dies im ersten:
HTML-Code:
"<br /><b>Warning</b>:  mysql_result() [<a href='function.mysql-result'>function.mysql-result</a>]: Unable to jump to row 0 on MySQL result index 3 in <b>C:\Programme\xampp\htdocs\Formular\FERTIG - FUNKTIONIERT\produkt_aendern.php</b> on line <b>34</b><br />"
In den restlichen:
HTML-Code:
"<br /><b>Warning</b>:  mysql_result() [<a href='function.mysql-result'>function.mysql-result</a>]: Unable to jump to row 0 on MySQL result index 3 in <b>C:\Programme\xampp\htdocs\Formular\FERTIG - FUNKTIONIERT\produkt_aendern.php</b> on line <b>38</b><br />"

Geändert von Luke85 (12.09.2007 um 13:43:37 Uhr)
Mit Zitat antworten
  #15  
Alt 13.09.2007, 08:33:11
Luke85 Luke85 ist offline
Anfänger
 
Registriert seit: Aug 2007
Beiträge: 47
AW: DropDown Probleme

So wie es scheint werden die Datensätze aus der Datenbank bzw. der Auswahl aus dem Formular mit dem Dropdownmenü nicht übergeben. Sehe ich das richtig, das die Variable bzw. der Name des Wertes, der in die einzelnen Felder geladen wird, exakt übereinstimmen muss mit dem Namen in der Datenbank ODER muss ich die einzelnen Felder vorher noch definieren?
Mit Zitat antworten
  #16  
Alt 13.09.2007, 09:52:22
Raketenmann Raketenmann ist offline
Junior Member
 
Registriert seit: Jun 2004
Beiträge: 473
AW: DropDown Probleme

Wenn du meine Auswahlbox verwendest findest du die ausgewählte Nr nach dem Absenden in $_GET['produkt'], wenn du dein namenloses Formular verwendest, solltest du den Namen des Button ändern (aktuell heißt er $pr_nrn <- Das ist ein HTML Submit-Button, keine PHP Variable). Nenne ihn doch einfach pr_nr, dann findest du den Wert nach dem Absenden in $_POST['pr_nr'].


Worauf du dich hier beziehst

PHP-Code:
// Eingabe wird in Variable übergeben 
$pr_nrn=$_POST['Produktnummer']; 
kann man in deinen Beispielen nicht sehen, aber es könnte schon sein, dass da gar keine Produktnummer ankommt, um die Suche in deiner DB zu ermöglichen.




Einen Zusammenhang zwischen den Feldnamen eines HTML-Formulars und den Spalten einer DB-Tabelle gibt es nicht, die können unterschiedliche Namen haben. Bei den MySQL-Statements kommt es darauf an, dass Feldbezeichner korrekt verwendet werden und die Werte mit den jeweiligen Datentypen der Spalten übereinstimmen.


Aber dafür (sehe ich gerade erst) geht das hier gar nicht!
Code:
  <tr> 
    <td>Einfügungsdämpfung</td> 
    <td><input type="text" name="Einfügungsdämpfung" value="<? echo mysql_result($result, 0, "Einfügungsdämpfung"); ?>"/>  </tr> 
  <tr> 
    <td>Rückflußdämpfung</td> 
    <td><input type="text" name="Rückflußdämpfung" value="<? echo mysql_result($result, 0, "Rückflußdämpfung"); ?>"/>  
</tr>
Keine Umlaute in name-Attributen verwenden!!!
...und auch kein ß!!!
Mit Zitat antworten
  #17  
Alt 13.09.2007, 10:33:43
Luke85 Luke85 ist offline
Anfänger
 
Registriert seit: Aug 2007
Beiträge: 47
AW: DropDown Probleme

Das mit den Umlauten, habe ich versehentlich reingemacht, da war das Hirn schon aus.
Habs aber gleich geändert ;).

Ich verwende deine Auswahlbox und kann den Code nachvollziehen.
Mir stellt sich aber die Frage: Es wird die Variable $bezeichner benutzt, damit die linke Spalte der Tabelle die Spaltennamen reinschreibt und $zeige_produkt" für die rechte Spalte zur Ausgabe der einzelnen Werte.
Wenn ich jetzt aber, die Inhalte einzeln in eine Tabelle mit Textfeldern ausgeben will, in der ich dann die Werte veränder und anschließend zurück an die Datenbank sende, benötige ich doch für jede einzelne Zeile sprich: "Teilung: blaba" eine zugewiesene Variable, damit er das auch einheitlich zuordnen kann.
Liege ich da mit meiner Denkweise jetzt total falsch oder wie muss ich das mit der Bearbeiten-Ausgabe-Prozedur verstehen?
Mit Zitat antworten
  #18  
Alt 13.09.2007, 11:06:04
Raketenmann Raketenmann ist offline
Junior Member
 
Registriert seit: Jun 2004
Beiträge: 473
AW: DropDown Probleme

Die Variable $bezeichner bezieht sich das Array, in dem ich die Spaltennamen platziert habe, um die Tabelle über eine kleine Schleife auszugeben. Die Zeilen der Tabelle sehen ja im Grunde alle gleich aus und somit muß man ja nicht zig mal hintereinander das Gleiche hinschreiben...

Du kannst das Array $bezeichner, wenn du es denn verwenden möchtest, auch weiter oben bilden, da wo $zeige_produkt erzeugt wird. Mit einer Schleife die Feldnamen aus dem Suchergebnis ziehen und $bezeichner zuweisen.

Statt die Elemente von $zeige_produkt (die die jeweiligen Daten des ausgewählten Elements beinhalten) direkt in eine Zelle zu schreiben, kannst du sie natürlich auf in das value-Attribut eines Input Feldes schreiben, um sie z.B. ändern zu können.

Auf den (neuen) Wert dieses Input-Feldes beziehst du dich nach dem Absenden über den Namen des Feldes (ohne Umlaute ;-) ) im $POST-Array.

Da du nicht ohne jede Prüfung einfach das in deine DB schreiben solltest, was ein Benutzer eingegeben hat, ist es völlig egal, wie die Inputfelder heißen. Es wär nur gut für dich (zum Verständnis) wenn sie sinnvolle Namen haben oder du notierst das Ganze so, dass du es als Array erhälst.

PHP-Code:

// Wenn ein Produkt gewählt wurde, zeige es in einer Tabelle 
if(isset($zeige_produkt)) 
    { 
        
$bezeichner=array('Produktnummer','Teilung','Frequenzbereich');  // usw. 
         
        
echo 
        <br>
        <form name="edit_form" method="post" action="produkt_aendern.php"> 
        <table>
        <input type="hidden" name="werte[]" value="'
.$_GET['produkt'].'">'
         
        for(
$z=0;$z<count($bezeichner);$z++) 
            { 
                echo 

                <tr> 
                <td>'
.$bezeichner[$z].'</td>
                <td><input type="text" name="werte[]" value="'
.$zeige_produkt[$z].'"></td> 
                </tr>'
;     
            } 
         
        echo 

        <input type="submit" value=" Änderungen speichern ">
        </table>
        </form>'

    } 
Nach dem Absenden befindet in der Variable $_POST['werte'] ein Array mit den (geänderten) Werten aus den Eingabefeldern des Formulars - wobei sich in Element 0 die Produktnummer befindet. Kannst du dir ja mal mit
print_r($_POST['werte']);
ansehen, was das kommt und wie...

Die Werte aus den Elementen von $_POST['werte'] werden in die jeweilige Spalte deiner DB geschrieben.

Geändert von Raketenmann (13.09.2007 um 11:07:52 Uhr) Grund: Da fehlte ein Anführungszeichen
Mit Zitat antworten
  #19  
Alt 13.09.2007, 12:24:42
Luke85 Luke85 ist offline
Anfänger
 
Registriert seit: Aug 2007
Beiträge: 47
AW: DropDown Probleme

Krass, das hätte man einfach so rumschreiben sollen. Ich denke mir das immer alles viel kompliziert.
Habe den Printbefehl eingegeben. Ich sehe jetz auch die Struktur wie er das dann ausgibt. Jetzt muss ich doch nur mit dem SQL Updatebefehl ausführen, damit der Inhalt der Tabelle aktualisiert wird, oder?
Mit Zitat antworten
  #20  
Alt 13.09.2007, 12:44:26
Raketenmann Raketenmann ist offline
Junior Member
 
Registriert seit: Jun 2004
Beiträge: 473
AW: DropDown Probleme

Richtig ;-)
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Dropdown formular rolan PHP Entwicklung und Softwaredesign 5 10.04.2007 15:37:06
Probleme mit getImageSize() duesentrieb PHP für Fortgeschrittene und Experten 8 01.03.2006 18:55:55
Probleme beim includen speak234 PHP Grundlagen 7 12.11.2003 15:05:39
Wert aus DropDown Feld auslesen Jim Panse PHP für Fortgeschrittene und Experten 12 07.04.2003 07:37:55
PHP mail() funktion und server probleme flobee PHP für Fortgeschrittene und Experten 0 03.07.2002 01:18:27


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:24:10 Uhr.


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


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt