php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 26.12.2011, 20:35  
Neuer Benutzer
 
Registriert seit: 23.12.2011
Beiträge: 9
PHP-Kenntnisse:
Anfänger
buyakascha befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Niklas Beitrag anzeigen
Das ist etwas merkwürdig, ist mir grad mal aufgefallen. Denn alle "Gleichungen", also die Ausgaben mit dem Gleichheitszeichen dazwischen sind ja in der Session gespeichert. Alle POST-Variablen sind in Array ( ), und das ist leer. Also werden keine POST-Daten übermittelt. Aber die Mengen stehen ja in der Session, die werden ausgegeben. Dann wird die POST-Variable rech_name an die Session übergeben, aber da POST ja komplett leer ist wird eben nix übergeben.
Und wo ist der Fehler in meinem Script? Bzw warum werden bei mir keine POST-Daten übermittelt? Ich hab doch den Quelltext richig,oder?
buyakascha ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 26.12.2011, 21:11  
Erfahrener Benutzer
 
Registriert seit: 27.03.2009
Beiträge: 129
PHP-Kenntnisse:
Fortgeschritten
Niklas befindet sich auf einem aufstrebenden Ast
Standard

Hmm, vielleicht liegt es daran dass es in der bestellung_menu_daten.php zwei ineinander verschachtelte Form-Tags gibt??
Zitat:
Zitat von buyakascha Beitrag anzeigen
PHP-Code:
<form action="bestellung_menu_ende.php" method="POST">
    
    <?php
        $timestamp 
time();
        
$tage = array("Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag");
        
$tag date("w");
        
$datum date("d.m.Y"$timestamp);
        
$uhrzeit date("H:i "$timestamp);
        
            


        echo 
"    
        <form action'bestellung_menu_ende.php' method='POST'>
Ich kann das nicht genau sagen da ich noch nie ausprobiert habe ob das funktioniert, aber eine andere Ursache habe ich bisher nicht gefunden.
Niklas ist offline   Mit Zitat antworten
Alt 26.12.2011, 21:40  
Neuer Benutzer
 
Registriert seit: 23.12.2011
Beiträge: 9
PHP-Kenntnisse:
Anfänger
buyakascha befindet sich auf einem aufstrebenden Ast
Standard

Ich hab es eben nochmal ganz detailiert aufgebaut. Dachte ich hätte mich bei den ganzen Tabellenspalten und - zeilen vertan oder so.

Aber am Ende war es einfach folgendes:

Ich hatte bei dem Button einen Fehler - anstatt dem Button den Typ "submit" zuzordnen, hatte ich da nur "Button" stehen - daher wurden wohl keine Daten übertragen. Änder ich es auf submit, funzt 1a.

Oh man, und das hat mich einen halben Tag aufgehalten - sehr ärgerlich!
Aber iwie bin ich froh, das ich da weiterkomme
buyakascha ist offline   Mit Zitat antworten
Alt 26.12.2011, 22:00  
Erfahrener Benutzer
 
Registriert seit: 27.03.2009
Beiträge: 129
PHP-Kenntnisse:
Fortgeschritten
Niklas befindet sich auf einem aufstrebenden Ast
Standard

Ach jaaaaaaaaaa...
Sorry, das war mir auch mal aufgefallen, aber ich habe vergessen es zu erwähnen...
Glaubt mir jetzt eh keiner
Niklas ist offline   Mit Zitat antworten
Alt 02.01.2012, 22:03  
Neuer Benutzer
 
Registriert seit: 23.12.2011
Beiträge: 9
PHP-Kenntnisse:
Anfänger
buyakascha befindet sich auf einem aufstrebenden Ast
Standard

So, nun die nächste Baustelle bei mir.

In diesem Abschnitt wird in einer Schleife alle Einträge mit Kategorie_ID = 1 aus der Datenbank gezogen. Anschließend wird der Name, der Preis und ein Eingabefeld zeilenweise erstellt.

Bei Betätigung des Buttons kommt man auf warenkorb.php

PHP-Code:
    <?php
        session_start
();


    
$server "localhost";  
    
$user   "iuk4";  
    
$pass   "dT19369.";
    
$verbindung mysql_connect($server$user$pass)
        or die (
"Keine Verbindung zum Server möglich - Abbruch des Skripts.");
    
mysql_select_db($datebase "iuk4")
        or die (
"Fehler beim Zugriff auf die gew&uuml;nschte Datenbank");

    
?>
           <form action="warenkorb.php" method="POST">

    <?php 
    
        $sql 
"SELECT * FROM produkte WHERE kategorie_id='1'";
        
$abfrage mysql_query($sql);
        
        echo 
'    <tr bgcolor="#F4F3FB"><td colspan="6" height="10">&nbsp;</td></tr>
                     <tr bgcolor="#F4F3FB"><td colspan="6" height="10"><font size="2"><b>&nbsp;&nbsp;&nbsp;&nbsp;Backwaren:</b></td></tr> '
;        
    

        if(!
$abfrage) {
            echo 
"<p>Die SQL-Anweisung ist fehlgeschlagen!</p>";
            }
            
            while (
$zeile mysql_fetch_array($abfrage))
            {
                echo 
'<tr><td><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;'$zeile['Name'].'</font></td>
                    <td ><div align="center"><img src="http://www.php.de/images/status_green.gif" alt="Status" border="0"></div></td>
                    <td><div align="right"><font size="2"><font color="#cc0033">'
$zeile['Preis'].' &euro; &nbsp;&nbsp;&nbsp;&nbsp; </font></div></td>
                    <td><div align="center"><input style="text-align:right" type="text" size="3" name="produkt_id['
.$zeile['Produkt_ID'].']" /></font></div></td></tr>';
            }

<
td colspan="6" height="10"><input type="reset" name="abbruch" value="Abbrechen">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="submit" name="bestellung_indiv" value="In den Warenkorb"></td>
            </
tr>
        
?>
</form>

Warenkorb sieht momentan so aus:

PHP-Code:
<?php
    
    session_start
();

    
$timestamp time();
    
$tage = array("Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag");
    
$tag date("w");
    
$datum date("d.m.Y"$timestamp);
    
$uhrzeit date("H:i "$timestamp);

    
$_SESSION["menu_menge1"]     = $_POST["menu_menge1"];
    
$_SESSION["menu_menge2"]     = $_POST["menu_menge2"];
    
$_SESSION["menu_menge3"]     = $_POST["menu_menge3"];
    
$_SESSION["menu_menge4"]     = $_POST["menu_menge4"];


    
$_SESSION["produkt_id"]     = $_POST["produkt_id"];

            while (list (
$key$value) = each($_SESSION))
            {
                echo 
$key." = ".$value."<br>";    
            }
    

    
        if (!empty(
$_POST["bestellung_menu"]))
            {
            echo 
"<br><br><font size='3'>&nbsp&nbsp&nbsp&nbsp&nbspVielen Dank f&uumlr Ihre Men&uuml-Bestellung " .$_SESSION["menu_menge1"] ."&nbsp<b>" .$_SESSION["lief_name"] ."&nbsp!</b></font>";
            }

        if (!empty(
$_POST["bestellung_indiv"]))
            {
            echo 
"<br><br><font size='3'>&nbsp&nbsp&nbsp&nbsp&nbspVielen Dank f&uumlr Ihre individuelle Bestellung!</b></font>";
            }
$zeile['Name'], $zeile['Preis'] etc sind ja alles Arrays - wie krieg ich es hin das in der Session für jedes Produkt eine Variable angelegt wird, in der man jeweils den Namen, die Bestellmenge etc speichert.

Als Ausgabe in warenkorb.php bekomme ich: produkt_id = array !


Edit: Die Menu-Daten in der Session stehen für die Bestellung der Menüs - da gibt es ja nur 4 und diese sind direkt zuordenbar bzw werden nicht aus der Datenbank als Array gezogen, sondern sind manuell im HTML-Quelltext.

Bei über 50 Produkten in den Kategorien macht es aber keinen Spaß das alles mehrmals abzutippen...

Geändert von buyakascha (02.01.2012 um 22:07 Uhr).
buyakascha ist offline   Mit Zitat antworten
Alt 06.01.2012, 21:25  
Neuer Benutzer
 
Registriert seit: 23.12.2011
Beiträge: 9
PHP-Kenntnisse:
Anfänger
buyakascha befindet sich auf einem aufstrebenden Ast
Standard

Also ich hab meine Angebotsseite: angebot.php

Dort werden die individuellen Produkte (um sich ein Frühstück zusammenzustellen) aus der Datenbank
ausgelesen.

Das ist der Quellcode dazu als Beispiel für die Produktkategorie 1 = Backwaren:
Es erscheint dann für jedes Produkt eine Zeile mit:
- Name -> '.htmlentities($zeile['Name']).'
- grüner Graphik (= ausreichend Bestand verfügbar)
- Preis -> '.htmlentities($zeile['Preis']." €", ENT_COMPAT, "UTF-8").'
- Feld für Mengeneingabe -> menge['.$zeile['Produkt_ID'].']



PHP-Code:
<?php

$sql 
"SELECT * FROM produkte WHERE kategorie_id='1'";
$abfrage mysql_query($sql);

echo 
'
<tr bgcolor="#F4F3FB">
<td colspan="2" height="15"><font size="2"><b>&nbsp;&nbsp;&nbsp;&nbsp;Backwaren:</b></font></td>
<td height="15" width="70"></td>
<td height="15" width="120"></td>
<td height="15" width="120"></td></tr>'
;

if(!
$abfrage) {
echo 
"<p>Die SQL-Anweisung ist fehlgeschlagen!</p>";
}

while (
$zeile mysql_fetch_array($abfrage))
{
echo 
'<tr bgcolor="#F4F3FB">
<td colspan="2" height="15"><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;'
.htmlentities($zeile['Name']).'</font></td>
<td height="15" width="70"><div align="center"><img src="images/status_green.gif" alt="Status" border="0"></div></td>
<td height="15" width="120"><div align="right"><font size="2"><font color="#cc0033">'
.htmlentities($zeile['Preis']." €"ENT_COMPAT"UTF-8").' &nbsp;&nbsp;&nbsp;&nbsp; </font></div></td>
<td height="15" width="120"><div align="center"><input style="text-align:right" value="0" type="text" size="3" name="menge['
.$zeile['Produkt_ID'].']" /></font></div></td></tr>';
}
?>
<tr bgcolor="#F4F3FB" align='center'>
<td colspan="6" height="10"><input type="reset" name="abbruch" value="Abbrechen">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="submit" name="bestellung_indiv" value="In den Warenkorb"></td>
</tr>

Nun soll, wenn bei einem Produkt eine Bestellmenge >=1 (oder größer 0) dann der Name, Einzelpreis und die bestellte Menge an meinen Warenkorb übergeben werden
und dann ausgegeben werden:
Ach ja, ich arbeite mit Sessions!

Mein Problem:
Was muss ich denn in dem unteren Quellkode angeben bei $key und $value damit er mir die Arrays (mit Name, Einzelpreis und besteller Menge) übernimmt? Geht das überhaupt so? Oder wie soll ich die Warenkorbseite abändern?


PHP-Code:
<?php

if(isset($_POST["bestellung_menu"]) or isset($_POST["bestellung_indiv"]))
{
while (list (
$key$value) = each($_POST))
{
if (
$value >= 1)
{
$_SESSION[$key] = floor($value);
}
else
{
if(isset(
$_SESSION[$key]))
{
unset(
$_SESSION[$key]);
}
}
}
}


?>
buyakascha ist offline   Mit Zitat antworten
Alt 09.01.2012, 16:24  
Erfahrener Benutzer
 
Registriert seit: 27.03.2009
Beiträge: 129
PHP-Kenntnisse:
Fortgeschritten
Niklas befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von buyakascha Beitrag anzeigen
Geht das überhaupt so?
Das wirst du doch am besten feststellen können. Funktionierts oder nicht?
Ich fürchte, ich verstehe das Problem nicht ganz.
Niklas ist offline   Mit Zitat antworten
Antwort


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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
MySQL Daten in bestimmte Zellen/Zeilen ausgeben MCBurner Datenbanken 15 16.04.2011 22:31
[Erledigt] Mysql PHP array ausgeben ioaccept Datenbanken 10 28.11.2010 22:09
[Erledigt] MySQL Abfrage in mehreren Tabellen ausgeben Camee PHP Tipps 2010 2 03.11.2010 23:58
MySQL Felder vergleichen und Wert ausgeben Nike77 Datenbanken 22 19.10.2010 14:43
mySQL Tabelle ausgeben und Tabellendarstellung je nach Inhalt anpassen Hoffi PHP Tipps 2010 10 26.07.2010 23:00
MySQL Tabelleninhalt ausgeben toxyurl PHP Tipps 2010 4 02.04.2010 22:22
[Erledigt] MySQL Link Resource in einer statischen Variablen speichern Lenki PHP-Fortgeschrittene 8 18.03.2010 16:37
Preis korrekt ausgeben Rutor PHP Tipps 2010 3 22.02.2010 14:34
[Erledigt] Ausgeben von MySql Daten in einem input Textfeld BocaSpanky Datenbanken 7 13.04.2009 15:02
(MySQL) Ergebnisse Zählen und sortiert ausgeben... Hawk Datenbanken 5 04.03.2007 17:08
MySQL daten auf verschienden seiten ausgeben DiveMaster88 PHP Tipps 2006 4 27.11.2006 04:12
mysql - text ausgeben dws PHP Tipps 2006 14 15.06.2006 22:50
Links aus MySql ausgeben PHP Tipps 2005 3 27.05.2005 12:11
mysql daten ohne html formatierung ausgeben wizzardxx PHP Tipps 2005 2 28.03.2005 00:56

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mysql zeile mit zwei preisen ausgeben

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:37 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