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
  #1  
Alt 11.09.2007, 09:14:28
Luke85 Luke85 ist offline
Anfänger
 
Registriert seit: Aug 2007
Beiträge: 47
DropDown Probleme

Hey Leutz!
Ich benötige einen Tipp von euch, wie ich das optimal verwirkliche. Habe ein Ausleseformular, dass die Datensätze aus der Datenbank in die Tabelle lädt.
Über die Auswahl eines DropDownmenüs sollen die einzelnen Produkte ausgewählt gewählt werden. Die Produktnummer, der Primarykey in der Datenbank, wird bereits ins DropDown geladen. Ab hier hänge ich fest: Wenn ich einen Datensatz auswähle wird dieser nicht reingeladen.
Wie heißt der Befehl, der mir das ermöglicht? Hier mal der Code, vllt. ist das nur eine kleine Geschichte.

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>Daten ausgeben</title>
<script type="text/javascript" src="format.js"></script>

</head>

<body>

<?php

// Verbindung wird zur Datenbank aufgenommen
   
$db  mysql_connect ("localhost","benutzer","");

// SQL-Anfrage an Datenbank "Produkt"  
   
$res mysql_db_query("produkt""select DISTINCT * from test ORDER BY Produktnummer ASC");
   
// Liefert Anzahl betroffener Datensätze
   
$num mysql_affected_rows();

   for (
$i=0$i<$num$i++)
   {
      
$ty mysql_result($res$i"Typ");
      
$tn mysql_result($res$i"Teilung");
      
$fb mysql_result($res$i"Frequenzbereich");
      
$ed mysql_result($res$i"Einfuegungsdaempfung");
      
$rd mysql_result($res$i"Rueckflussdaempfung");
      
$is mysql_result($res$i"Isolation");
      
$im mysql_result($res$i"Impedanz");
      
$wi mysql_result($res$i"Widerstand");
      
$sz mysql_result($res$i"Schalterzeit");
      
$st mysql_result($res$i"Schalttyp");
   }
 

             
?>

<form action="daten_ausgeben_beta2.php" method="get" name="focusform">
<table width="400" border="1" cellspacing="0" cellpadding="0">
<tr>
    <td width="350">
            <td width="200">
            <strong>Produktnummer: 
            <select name="Produktnummer" onChange="produkt()">

            <?php
            
for ($i=0$i<$num$i++)
                {
                  
$pn mysql_result($res$i"Produktnummer");
                    echo 
"<option value= '$pn'>$pn</option>";
                } 
            
?>
            </select></strong>
            </td>
    </td>
</tr>  
  <tr>
    <td>Teilung</td>
    <td><input id="pn" name="Teilung" size="80" value="<?php echo "$tn" ?>" readonly="readonly"></td>
  </tr>
  <tr>
    <td>Frequenzbereich</td>
    <td><input name="fb" size="80" value="<?php echo "$fb" ?>" readonly="readonly"></td> 
  </tr>
  <tr>
    <td>Einfügungsdämpfung</td>
    <td><input name="ed" size="80" value="<?php echo "$ed" ?>" readonly="readonly"></td>
  </tr>
  <tr>
    <td>Rückflußdämpfung</td>
    <td><input name="rd" size="80" value="<?php echo "$rd" ?>" readonly="readonly"></td>    
  </tr>
  <tr>
    <td>Isolation</td>
    <td><input name="is" size="80" value="<?php echo "$is" ?>" readonly="readonly"></td>
  </tr>
  <tr>
    <td>Impedanz</td>
    <td><input name="im" size="80" value="<?php echo "$im" ?>" readonly="readonly"></td>
  </tr>
  <tr>
    <td>Widerstand</td>
    <td><input name="wi" size="80" value="<?php echo "$wi" ?>" readonly="readonly"></td>
  </tr>
  <tr>
    <td>Schalterzeit</td>
    <td><input name="sz" size="80" value="<?php echo "$sz" ?>" readonly="readonly"></td>
  </tr>
  <tr>
    <td>Schalttyp</td>
    <td><input name="st" size="80" value="<?php echo "$st" ?>" readonly="readonly"></td>
  </tr>
  <tr>
  <td></td>
  <td><input type="reset"></td>
  </tr>  
</table>
</form>        
</body>
</html>
Mit Zitat antworten
  #2  
Alt 11.09.2007, 12:24:06
Raketenmann Raketenmann ist offline
Junior Member
 
Registriert seit: Jun 2004
Beiträge: 473
AW: DropDown Probleme

Es gibt keinen Befehl, der dir das ermöglicht. Du mußt das schon über Schleifen machen, nur in deiner Schleife werden die Variablenwerte immer wieder überschrieben, so wird das nix mit der Ausgabe.

PHP-Code:

// Verbindung wird zur Datenbank aufgenommen 
$db=mysql_connect ("localhost","benutzer",""); 

// SQL-Anfrage an Datenbank "Produkt"   
$res=mysql_query("SELECT * FROM test ORDER BY Produktnummer ASC");

$pr_nrn=array();

// Hier die Nrn. sammeln und falls etwas bestimmtes ausgewählt wurde, betreffenden Ds merken (show_produkt)
while($row=mysql_fetch_array($res))
    {
        
$pr_nrn[]=$row['Produktnummer'];
        
        if(isset(
$_GET['produkt']) && $_GET['produkt']==$row['Produktnummer'])
            {
                
$zeige_produkt=$row;            
            }    
    }


// Ab hier Ausgabe

// Zuerst die Asuwahl der Produktnummern in einem <select>
echo '
<form name="produktwahl" method="get" action="'
.$_SERVER['PHP_SELF'].'">
<select name="produkt" onchange="document.produktwahl.submit()">
<option value="-1">Bitte wählen</option><option value="-1"></option>'
;

for(
$z=0;$z<count($pr_nrn);$z++)
    {
        
// Da die Produktnummer im value Attribut steht, kannst du als Bezeichnung der options natürlich auch was anderes als die Nummer verwenden...
        
if(isset($_GET['produkt']) && $_GET['produkt']==$pr_nrn[$z])
            {
                echo 
'<option value="'.$pr_nrn[$z].'" selected>'.$pr_nrn[$z].'</option>';
            }
        else
            {
                echo 
'<option value="'.$pr_nrn[$z].'">'.$pr_nrn[$z].'</option>';
            }
    }

echo 
'</select></form>';


// Wenn ein Produkt gewählt wurde, zeige es in einer Tabelle
if(isset($zeige_produkt))
    {
        
$bezeichner=array('Produktnummer','Teilung','Frequenzbereich');  // usw.
        
        
echo '
        <br>
        <table>'
;
        
        for(
$z=0;$z<count($bezeichner);$z++)
            {
                echo 
'
                <tr>
                <td>'
.$bezeichner[$z].'</td>
                <td>'
.$zeige_produkt[$z].'</td>
                </tr>'
;    
            }
        
        echo 
'
        </table>'
;
    } 
Du mußt dabei beachten, dass das Array $bezeichner in Anzahl und Reihenfolge der Elemente mit den Spalten deiner Tabelle übereinstimmen muß. So wie es jetzt ist, werden immer nur die ersten drei Merkmal ausgegeben.

Wenn du es noch verfeinern willst, kann du auch die Spaltennamen von MySQL beziehen und $bezeichner damit füllen.

Hatte sich dein JavaScript-Vorschau-Problem damit auch erledigt?

Geändert von Raketenmann (11.09.2007 um 12:34:06 Uhr)
Mit Zitat antworten
  #3  
Alt 11.09.2007, 12:44:49
Luke85 Luke85 ist offline
Anfänger
 
Registriert seit: Aug 2007
Beiträge: 47
AW: DropDown Probleme

Danke dir Raketenmann.
Ich habe mir schon gedacht, dass es nur über Schleifen geht. Dein Skript bleibt aber in Zeile "...while($row=mysql_fetch_array($res))..." stecken. Sehe jetzt nicht wieso, aber er macht nicht weiter.
Das mit der Vorschau hatte nicht so geklappt wie ich es mir vorgestellt habe. Deshalb möchte ich diese Ausgabe schreiben und dann nach erfolgreichem Einfügen, die Daten per Button ansehen. Umständlich aber naja.
Mit Zitat antworten
  #4  
Alt 11.09.2007, 13:00:39
Raketenmann Raketenmann ist offline
Junior Member
 
Registriert seit: Jun 2004
Beiträge: 473
AW: DropDown Probleme

Jaja... wenn man es nicht ausprobiert ;-)

Also du kannst die while-Zeile mal ändern in
PHP-Code:
while($row=mysql_fetch_array($res,MYSQL_NUM)) 
Das ist aber nicht der Fehler, den du aktuell hast...


Schreibe mal unter die Zeile $res=... folgendes:
PHP-Code:
// SQL-Anfrage an Datenbank "Produkt"    
$res=mysql_query("SELECT * FROM test ORDER BY Produktnummer ASC"); 

echo 
mysql_error(); 
EDIT
Ich hätte deine DB Verbindung nicht ändern sollen, also da wo das hier steht
PHP-Code:
// Verbindung wird zur Datenbank aufgenommen 
   
$db  mysql_connect ("localhost","benutzer",""); 
muß das hier hin:
PHP-Code:
$db_server "localhost"// zum Bsp.
$db_name "";  // mußt du füllen
$db_user "";  // mußt du füllen
$db_passwort "";  // mußt du füllen

MYSQL_CONNECT($db_server,$db_user,$db_passwort) or die ("Konnte keine Verbindung zur Datenbank herstellen");
mysql_select_db($db_name) or die("Auswahl der Datenbank fehlgeschlagen"); 

Geändert von Raketenmann (11.09.2007 um 13:09:38 Uhr)
Mit Zitat antworten
  #5  
Alt 11.09.2007, 13:06:30
Luke85 Luke85 ist offline
Anfänger
 
Registriert seit: Aug 2007
Beiträge: 47
AW: DropDown Probleme

Okay Fehler wurde ausgemerzt. Die Angabe des Datenbanknamens hat gefehlt. Danke dir ;)

Doch im DropDownMenü sehe ich nicht die Bezeichnung bzw. die Produktnummer ist nicht sichtbar, sprich es ist leer. Jedoch sind 4 Datensätze vorhanden, man kann diese auch auswählen.
Beim zweiten und letzten "unsichtbaren", wenn dieses angeklickt wird, erfolgt die Ausgabe. Aber nur dort.

Geändert von Luke85 (11.09.2007 um 13:16:34 Uhr)
Mit Zitat antworten
  #6  
Alt 11.09.2007, 13:16:50
Raketenmann Raketenmann ist offline
Junior Member
 
Registriert seit: Jun 2004
Beiträge: 473
AW: DropDown Probleme

Mann... vielleicht sollte ich auch man hingucken, was ich mache...

Also das mit dem hier:
PHP-Code:
while($row=mysql_fetch_array($res,MYSQL_NUM)) 
war etwas unüberlegt, weil direkt danach ein assoziativer Index 'Produktnummer' verwendet wird...

Ich gehe davon aus, dass Produktnummer die erste Spalte in der DB Tabelle ist
PHP-Code:
while($row=mysql_fetch_array($res,MYSQL_NUM)) 
    { 
        
$pr_nrn[]=$row[0]; 
         
        if(isset(
$_GET['produkt']) && $_GET['produkt']==$row[0]) 
            { 
                
$zeige_produkt=$row;             
            }     
    } 
Das ist der schnellste Weg es zu ändern, ansonsten müsste unten noch die Ausgabe angepasst werden.
Mit Zitat antworten
  #7  
Alt 11.09.2007, 13:35:07
Luke85 Luke85 ist offline
Anfänger
 
Registriert seit: Aug 2007
Beiträge: 47
AW: DropDown Probleme

Es geht, wow. Du bist mein Ausgabeheld ;D!
Dann werde ich jetzt eine Gescheite Ausgabetabelle schreiben, damit es gut formatiert aussieht und diese dann ins Echo setzten.

Dann kann man ja jetzt einen "Änder" Button einfügen, damit der ausgewählte Datensatz verändert werden kann oder?

Geändert von Luke85 (11.09.2007 um 14:09:27 Uhr)
Mit Zitat antworten
  #8  
Alt 11.09.2007, 14:17:37
Raketenmann Raketenmann ist offline
Junior Member
 
Registriert seit: Jun 2004
Beiträge: 473
AW: DropDown Probleme

Klar...

Du schreibst einfach die Produktnr in ein Hidden-Input des Ändern-Formulars oder hängst die Nr an den Button. Dann weiß dein Update Skript "wo es lang geht". ;-)
Mit Zitat antworten
  #9  
Alt 12.09.2007, 10:32:04
Luke85 Luke85 ist offline
Anfänger
 
Registriert seit: Aug 2007
Beiträge: 47
AW: DropDown Probleme

Kann das überhaupt so funktionieren, zwei unterschiedliche Anfragen an die MySQL-Datenbank in einer PHP-Datei?

Geändert von Luke85 (12.09.2007 um 11:01:06 Uhr)
Mit Zitat antworten
  #10  
Alt 12.09.2007, 10:56:17
Raketenmann Raketenmann ist offline
Junior Member
 
Registriert seit: Jun 2004
Beiträge: 473
AW: DropDown Probleme

Zitat:
Zitat von Luke85 Beitrag anzeigen
Kann das überhaupt so funktionieren, zwei unterschiedliche Anfragen an die MySQL-Datenbank in einer PHP-Datei?
Wenn man das richtig macht... Ja.


Ehrlich gesagt, verstehe ich nicht im geringsten was du da machst. Welche Ausgabe? Ich sehe nur den Versuch etwas in der DB-Tabelle "upzudaten". Aber woher kommen denn die Werte für $data? Fehlt da was? Kannst du mal den Rest zeigen und bitte ein paar Kommentare und Leerzeilen einfügen.

Schon mal soviel: Die Zählung des Feldindex bei mysql_field_name() beginnt bei 0. Wenn du $i mit 1 initialisierst, "vergißt" du das erste Feld. Das Gleiche gilt auch für das Array $data, das mit leeren eckigen Klammern, also per "Autoindex", erzeugt wird - das erste Element hat den Index 0.
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 16:37:06
Probleme mit getImageSize() duesentrieb PHP für Fortgeschrittene und Experten 8 01.03.2006 19:55:55
Probleme beim includen speak234 PHP Grundlagen 7 12.11.2003 16:05:39
Wert aus DropDown Feld auslesen Jim Panse PHP für Fortgeschrittene und Experten 12 07.04.2003 08:37:55
PHP mail() funktion und server probleme flobee PHP für Fortgeschrittene und Experten 0 03.07.2002 02:18:27


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:26:12 Uhr.


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


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