php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2007

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 04.01.2005, 08:23  
Gast
 
Beiträge: n/a
Standard [Erledigt] Komme nicht weiter

Hallo Leute,

ich arbeite gerade an einer Bibliothek und komme nicht weiter. Es soll Folgendes möglich sein...

Ein Mitarbeiter gibt Kundennummer und Artikelnummer ein und es werden die Daten des Kunden ausgespuckt und der entsprechende Artikel. So weit, so gut. Ich möchte aber, dass die Möglichkeit besteht, dass der Mitarbeiter mehrere, bis zu 5 Artikelnummern eingeben kann und hier komme ich nicht mal mit 2 Artikelnummern weiter. Es wird immer nur ein Artikel, nämlich der 1. den ich eingebe ausgespuckt. Wer kann mir helfen?

Source Eingabeformular
PHP-Code:
<?php
session_start
();
?>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="styles.css">
</head>

<body text="DCDEF2" bgcolor="#666699" link="#FF0000" alink="#FF0000" vlink="#FF0000">

<class="small"><div align="center">


<h1>Ausgabeformular</h>



<DIV align="center">
<form action="ausgabe2.php" method="POST">

<table>
<tr>
<td>Bitte geben Sie die Kundennummer ein!</td>
<td><input name="kdnr" size="5" maxlength="3" size="15"></input></td>
</tr>
<tr>
<td>Bitte geben Sie die Artikelnummer ein!</td>
<td><input name="artnr" size="5" maxlength="3" size="15"></input></td>
</tr>
<tr>
<td>Bitte geben Sie eine weitere Artikelnummer ein!</td>
<td><input name="artnr2" size="5" maxlength="3" size="15"></input></td>
</tr>
<tr>
<td><input type="submit" name="senden" value="Eingeben"> </td>
</tr>
</table>
</form>


<?PHP
if(session_is_registered("tabelle"))
    echo 
$_SESSION['tabelle'];

?>
</body>
</html>
Source

PHP-Code:
<?PHP
session_start
();

if (isset(
$_POST["senden"])){
    
    
        
        
$db mysql_connect("localhost""root""") OR die(mysql_error());
        
mysql_select_db("bibliothek",$db) OR die(mysql_error());
        
//$query = mysql_query("SELECT * FROM `kunden`
                            //    WHERE kundennummer = ".$_POST['kdnr']."");
        
        
$query mysql_query("SELECT * FROM `kunden` , `medien` 
                                WHERE kundennummer = "
.$_POST['kdnr']." AND medien.`artikelnummer` = ".$_POST['artnr']."");
        
$tabelle "";
        while (
$result mysql_fetch_assoc($query)){

        
$_SESSION['kdnr'] = $result["kundennummer"];    
           
$_SESSION['anrede'] = $result["anrede"];
           
$_SESSION['vorname'] = $result["vorname"];
           
$_SESSION['name'] = $result["name"];    
           
$_SESSION['strasse'] = $result["strasse"];
           
$_SESSION['plz'] = $result["plz"];
           
$_SESSION['ort'] = $result["ort"];
           
$_SESSION['artnr'] = $result["artikelnummer"];
           
$_SESSION['artnr2'] = $result["artikelnummer"];
           
$_SESSION['titel'] = $result["Titel"];
           
$_SESSION['med_ID'] = $result["Med_ID"];
           
           
           
           
$ende strtotime("+1 week ".date("H")." hours ".date("i")." minutes ".date("s")." seconds");

           
$sqlab "INSERT INTO ausgabe_verleih"
        
$sqlab .= "(Kundennummer, Artikelnummer, Startdatum, Enddatum) values";
        
$sqlab .= "('".$_POST['kdnr']."', '".$_POST['artnr']."',  '".time()."', '".$ende."' )"
       
$result mysql_query($sqlab) OR die(mysql_error());
       
           
           
$query1mysql_query("SELECT Medium FROM `medium` WHERE Med_ID = ".$_SESSION['med_ID']."",$db);
        
$result mysql_fetch_assoc($query1);
           
$_SESSION['medium'] = $result["Medium"];
           
                   
           
$tabelle $tabelle.'<form>';
           
$tabelle $tabelle."<table style=\"border:2px; color:#000000; background:#DEDEDE;\" border='0'  width='20%'>";
        
$tabelle $tabelle.'<tr>';
               
$tabelle $tabelle.'<td colspan="2">[b]Kundennummer[/b]</td></tr>';
               
$tabelle $tabelle.'<tr><td colspan="2"><input size="5" value="'.$_SESSION['kdnr'].'"></input></td>';
               
$tabelle $tabelle'</tr>';
               
$tabelle $tabelle.'<tr><td colspan="2">[b]Anrede[/b]</td></tr>';
               
$tabelle $tabelle.'<tr><td colspan="2"><input size="5" value= " '.$_SESSION['anrede'].'"></input>[/b]</td>';
               
$tabelle $tabelle.'</tr>';
               
$tabelle $tabelle.'<tr>';
               
$tabelle $tabelle.'<td>[b]Vorname[/b]</td><td>[b]Nachname[/b]</td></tr>';
               
$tabelle $tabelle.'<tr><td><input value= "'.$_SESSION['vorname'].'"></input></td>';
               
$tabelle $tabelle'<td><input value= "'.$_SESSION['name'].'"></input>[/b]</td>';
               
$tabelle $tabelle'</tr>';
               
$tabelle $tabelle.'<tr>';
               
$tabelle $tabelle.'<td colspan="2">[b]Strasse, Hausnr.[/b]</td></tr>';
               
$tabelle $tabelle.'<tr><td colspan="2"><input value= " '.$_SESSION['strasse'].'"></input></td>';
               
$tabelle $tabelle'</tr>';
               
$tabelle $tabelle.'<tr>';
               
$tabelle $tabelle.'<td>[b]PLZ[/b]</td><td>[b]ORT[/b]</td></tr> ';
               
$tabelle $tabelle.'<tr><td><input size="5" value= " '.$_SESSION['plz'].'"></input></td>';
               
$tabelle $tabelle.'<td><input value= " '.$_SESSION['ort'].'"></input></td>';
               
$tabelle $tabelle'</tr></table>

'
;
               
$tabelle $tabelle.'<table><tr>';
               
$tabelle $tabelle.'<td colspan="2">[b]Artikelnr.[/b]</td><td colspan="2">[b]Titel[/b]</td><td colspan="2">[b]Medium[/b]</td></tr>';
               
$tabelle $tabelle.'<tr><td colspan="2"><input size="5" value= " '.$_SESSION['artnr'].'"></input></td>';
$tabelle $tabelle.'<tr><td colspan="2"><input size="5" value= " '.$_SESSION['artnr2'].'"></input></td>';
               
$tabelle $tabelle.'<td colspan="2"><input size="60" value= " '.$_SESSION['titel'].'"></input></td>';
               
$tabelle $tabelle.'<td colspan="2"><input size="10" value= " '.$_SESSION['medium'].'"></input></td></tr>'
           
               
$tabelle $tabelle'</table></form>';
               
        }    
        
          
$_SESSION['tabelle'] = $tabelle;    
           echo 
'<script type="text/javascript">
                <!-- 
                window.location.href="ausgabe3.php?'
.SID.'";
                //-->
                </script>'
;
            
    

}
?>
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 04.01.2005, 09:16  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.235
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Schritt 1: Formular erweitern um die Möglichkeit, mehrere Eingabefelder einzugeben. Das hast du ja schon einmal angefangen. Alternative: Du nennst die Felder nicht "artnr" und "artnr2", sondern alle "artnr[]". Dann landen sie alle im PHP in Variable "$_POST['artnr']" in einem Array.

Schritt 2: SQL- Abfrage anpassen. Sie kann am Ende so aussehen:
[...] WHERE kundennummer=12345 AND artikelnummer IN (1234, 2345, 4567)
Einfach einmal rumspielen.

Schritt 3: Mehr als en Ergebnis erwarten. Ab der Zeile mit dem mysql_fetch_assoc() musst du noch etwas basteln, beispielsweise eine while- Schleife. Beispiele finden sich im PHP-Manual bei den MySQL- Funktionen.
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen ist offline  
Alt 04.01.2005, 11:03  
Gast
 
Beiträge: n/a
Standard

Ich habe nun noch ein wenig ausprobiert, so dass nun alle Artikel aufgeführt werden. Allerdings ist der Aufbau der Seite mit den Tabellen nicht sonderlich fein.

Ich gebe also Folgendes ein:

kdnr: 41
artnr: 1
artnr: 5

Ausgespuckt wird Folgendes:

Tabelle mit Daten des Kunden mit der Nr. 41
Tabelle mit Daten des Artikels mit der Nr. 1

Tabelle mit Daten des Kunden mit der Nr. 41
Tabelle mit Daten des Artikels mit der Nr. 5

Tabelle mit Daten des Kunden mit der Nr. 43
Tabelle mit Daten des Artikels mit der Nr. 5

Kundennummer 43 gab ich nicht ein! Natürlich möchte ich, dass als Kopf die Daten des Kunden stehen und dann die von ihm ausgeliehenen Artikel. Was muss ich verändern?

Hier nochmal der veränderte Code
Eingabeformular verweise auf ausgabe2
PHP-Code:
<?PHP
session_start
();

if (isset(
$_POST["senden"])){
    
    
        
        
$db mysql_connect("localhost""root""") OR die(mysql_error());
        
mysql_select_db("bibliothek",$db) OR die(mysql_error());
        
        
$query mysql_query("SELECT * FROM `kunden` , `medien` 
                                WHERE kundennummer = "
.$_POST['kdnr']." AND medien.`artikelnummer` = ".$_POST['artnr']." OR medien.`artikelnummer` = ".$_POST['artnr2']."");
        
        
$tabelle "";
        while (
$result mysql_fetch_assoc($query)){
            
        
$_SESSION['kdnr'] = $result["kundennummer"];    
           
$_SESSION['anrede'] = $result["anrede"];
           
$_SESSION['vorname'] = $result["vorname"];
           
$_SESSION['name'] = $result["name"];    
           
$_SESSION['strasse'] = $result["strasse"];
           
$_SESSION['plz'] = $result["plz"];
           
$_SESSION['ort'] = $result["ort"];
           
$_SESSION['artnr'] = $result["artikelnummer"];
           
$_SESSION['titel'] = $result["Titel"];
           
$_SESSION['med_ID'] = $result["Med_ID"];
           
$_SESSION['artnr2'] = $result["artikelnummer"];
       
           
/*$ende = strtotime("+1 week ".date("H")." hours ".date("i")." minutes ".date("s")." seconds");

           $sqlab = "INSERT INTO ausgabe_verleih"; 
        $sqlab .= "(Kundennummer, Artikelnummer, Startdatum, Enddatum) values";
        $sqlab .= "('".$_POST['kdnr']."', '".$_POST['artnr']."',  '".time()."', '".$ende."' )"; 
       $result = mysql_query($sqlab) OR die(mysql_error());
       */
           
           
$query1mysql_query("SELECT Medium FROM `medium` WHERE Med_ID = ".$_SESSION['med_ID']."",$db);
        
$result mysql_fetch_assoc($query1);
           
$_SESSION['medium'] = $result["Medium"];
           
            
        
           
$tabelle $tabelle.'<form>';
           
$tabelle $tabelle."<table style=\"border:2px; color:#000000; background:#DEDEDE;\" border='0'  width='20%'>";
        
$tabelle $tabelle.'<tr>';
               
$tabelle $tabelle.'<td colspan="2">[b]Kundennummer[/b]</td></tr>';
               
$tabelle $tabelle.'<tr><td colspan="2"><input size="5" value="'.$_SESSION['kdnr'].'"></input></td>';
               
$tabelle $tabelle'</tr>';
               
$tabelle $tabelle.'<tr><td colspan="2">[b]Anrede[/b]</td></tr>';
               
$tabelle $tabelle.'<tr><td colspan="2"><input size="5" value= " '.$_SESSION['anrede'].'"></input>[/b]</td>';
               
$tabelle $tabelle.'</tr>';
               
$tabelle $tabelle.'<tr>';
               
$tabelle $tabelle.'<td>[b]Vorname[/b]</td><td>[b]Nachname[/b]</td></tr>';
               
$tabelle $tabelle.'<tr><td><input value= "'.$_SESSION['vorname'].'"></input></td>';
               
$tabelle $tabelle'<td><input value= "'.$_SESSION['name'].'"></input>[/b]</td>';
               
$tabelle $tabelle'</tr>';
               
$tabelle $tabelle.'<tr>';
               
$tabelle $tabelle.'<td colspan="2">[b]Strasse, Hausnr.[/b]</td></tr>';
               
$tabelle $tabelle.'<tr><td colspan="2"><input value= " '.$_SESSION['strasse'].'"></input></td>';
               
$tabelle $tabelle'</tr>';
               
$tabelle $tabelle.'<tr>';
               
$tabelle $tabelle.'<td>[b]PLZ[/b]</td><td>[b]ORT[/b]</td></tr> ';
               
$tabelle $tabelle.'<tr><td><input size="5" value= " '.$_SESSION['plz'].'"></input></td>';
               
$tabelle $tabelle.'<td><input value= " '.$_SESSION['ort'].'"></input></td>';
               
$tabelle $tabelle'</tr></table>

'
;
               
$tabelle $tabelle.'<table><tr>';
               
$tabelle $tabelle.'<td colspan="2">[b]Artikelnr.[/b]</td><td colspan="2">[b]Titel[/b]</td><td colspan="2">[b]Medium[/b]</td></tr>';
               
$tabelle $tabelle.'<tr><td colspan="2"><input size="5" value= " '.$_SESSION['artnr'].'"></input></td>';
               
$tabelle $tabelle.'<td colspan="2"><input size="60" value= " '.$_SESSION['titel'].'"></input></td>';
               
$tabelle $tabelle.'<td colspan="2"><input size="10" value= " '.$_SESSION['medium'].'"></input></td></tr>'
               
$tabelle $tabelle'</table></form>';
               
        }    
        
          
$_SESSION['tabelle'] = $tabelle;    
           echo 
'<script type="text/javascript">
                <!-- 
                window.location.href="ausgabe3.php?'
.SID.'";
                //-->
                </script>'
;
            
}    


?>
Ausgabe2 verweist auf Ausgabe3
PHP-Code:
<?php
session_start
();
?>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="styles.css">
</head>

<body text="DCDEF2" bgcolor="#666699" link="#FF0000" alink="#FF0000" vlink="#FF0000">

<class="small"><div align="center">


<h1>Ausgabeformular</h>




<?PHP

if(session_is_registered("tabelle"))
echo 
$_SESSION['tabelle']; 
    
    
    
//echo "<pre>".print_r($_SESSION,true)."</pre>";

?>
</body>
</html>
 
Alt 04.01.2005, 11:09  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.235
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

In deinem WHERE schreibst du explizit, dass die Kundennummer ODER die Artikelnummer passen sollen. Wenn du willst, dass die Kundennummer UND die Artikelnummer passen sollen, musst du das UND (engl. AND) auch nehmen, statt des ODER (engl. OR).
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen ist offline  
Alt 04.01.2005, 11:17  
Gast
 
Beiträge: n/a
Standard

Dachte ich auch! Aber wenn ich AND nehme erscheinen keine Daten!
 
Alt 04.01.2005, 11:25  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.235
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

eieieieiei. Habsch mich selber verguckt. Nun nochmal langsam. Les in Ruhe meinen ersten Beitrag, was ich dort vorschlage. Ansonsten mein Verweis, einmal boolsche Algebra zu lernen. Man sollte sich niemals darauf verlassen, dass eine Mischung von OR und AND auf gleicher Ebene gut geht. Nutze klammern In deinem Beispiel konkret:

SELECT * FROM `kunden` , `medien`
WHERE kundennummer = ".$_POST['kdnr']." AND ( medien.`artikelnummer` = ".$_POST['artnr']." OR medien.`artikelnummer` = ".$_POST['artnr2'].")"
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen ist offline  
Alt 04.01.2005, 11:47  
Gast
 
Beiträge: n/a
Standard

Ok, ich habe nun Folgendes geändert:

ausgabe3 wird nun nicht mehr gebraucht. Klammern sind gesetzt und Kunde mit der NR. 43 erschein nicht mehr.
Ich gebe also Folgendes ein:

kdnr: 41
artnr: 1
artnr: 5

Ausgespuckt wird Folgendes:

Tabelle mit Daten des Kunden mit der Nr. 41
Tabelle mit Daten des Artikels mit der Nr. 1

Tabelle mit Daten des Kunden mit der Nr. 41
Tabelle mit Daten des Artikels mit der Nr. 5

Erreichen möchte ich jedoch:

Tabelle mit Daten des Kunden mit der Nr. 41
Tabelle mit Daten des Artikels mit der Nr. 1
Tabelle mit Daten des Artikels mit der Nr. 5
 
Alt 04.01.2005, 11:54  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.235
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Dann musst du entweder zwei Selects machen oder dein Ergebnis anders interpretieren. Ich hoffe, du erwartest nun nicht, dass ich dir helfe, deine HTML- Tabelle so umzuschreiben, dass es genau passt.
Ein bischen Eigenleistung solltest du nun drauf haben bzw. ab hier erst einmal selber weiter probieren, sonst lernst du es nicht.

Ausserdem habe ich für eine derartig intensive Betreuung keine Zeit. Das ändert auch nicht die Tatsache, dass ich in der Zeit, in der ich diesen Post geschrieben habe, dein HTML-Teil hätte ändern können.
mepeisen ist offline  
Alt 04.01.2005, 12:59  
Gast
 
Beiträge: n/a
Standard

Wie eine html -Tabelle umgeschrieben wird weiß ich, ich habe den Verdacht dass es auch nicht an der Tabelle liegt. Ich habe nun aus 2 Tabellen (Kundendaten, Artikel) eine gemacht, hat aber auch nichts gebracht. Außerdem habe ich ein wenig mit der while-Schleife experimentiert, was einmal gebracht hat, dass zwar eine Tabelle angezeigt wird, aber wieder nicht der 2. Artikel...ich hab keine Ahnung was ich noch machen könnte. Ich bin seit gestern dran und mittlerweile weiß ich echt nicht weiter und bin genervt. Ist halt schwierig wenn man allein an etwas rangeht wovon man nicht wirklich Ahnung hat. Aber Danke für deine Mühe....
 
Alt 04.01.2005, 13:02  
Gast
 
Beiträge: n/a
Standard

Nachsatz...

wie kann es an der Tabelle liegen? Es ist eine Tabelle und als Ergebnis werden 2 Tabellen geliefert.. halt für jeden Artikel eine mit jeweils den Kundendaten. Außerdem versteh ich auch nicht, dass der 2. Artikel $artnr2 heißt, diese nicht in der Tabelle aufgeführt wird und trotzdem erscheint der 2. Artikel...versteh momentan gar nix mehr
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

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

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu


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




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.