ebiz-webhosting
- Ad -
php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here!

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 17-07-2005, 11:09
thurman
 Newbie
Links : Onlinestatus : thurman ist offline
Registriert seit: Jul 2005
Beiträge: 15
thurman ist zur Zeit noch ein unbeschriebenes Blatt
Standard Variable wird nicht übergeben

Hallo Zusammen,

ich habe ein Problem und weiss nicht so recht weiter. Ich arbeite gerade an einer kleinen E-Shop Lösung.

In einer FOR Schleife lese ich die Artikel alle fein aus und Artikel die vom User ausgewählt wurden speichere ich dann in einer Warenkorbtabelle in die DB.
Nur mit der Anzahl weiss ich jetzt nicht so recht weiter, weil die wird ja erst direkt vor dem senden vom User festgelegt.
Da ich keinen Submit Button habe, weiss ich nicht wie ich es machen muss. Hier mal meine nicht funktionierende Lösung:

PHP-Code:
# Warenkorb in die DB schreiben
$mysql->clearall();
$mysql->set_table("project_warenkorb");
$mysql->set_field("user_id",$_SESSION['userID']);
$mysql->set_field("material_id",$_REQUEST['materialid']);
$mysql->set_field("anzahl",$_REQUEST['anzahl0']);
$mysql->insert(); 
Hier die FOR SChleife wo die Artikel ausgelesen werden. Dahinter direkt das Warenkorb Icon zum senden:
PHP-Code:
<? 
        
# Material auslesen
$mysql->clearall();
$mysql->set_table("project_material");
if(
$_REQUEST['categorie']!="")
  
$mysql->set_where("shop=1 AND categorie =" $_REQUEST['categorie']);
else
  
$mysql->set_where("2=1");
        
  
$material_num=$mysql->select();
  for(
$x=0;$x<$material_num;$x++)
  {
  
?>
  <td style="width: 40px;" class="listenhintergrund2_schwach"   align="center"><input type="text" name="anzahl<? echo $x?>
value="<? if ($_REQUEST['anzahl'][$x]>0) echo $_REQUEST['anzahl'][$x]; else echo "0";?>" style="width: 30px;" maxlength="3"></td>
                <td class="listenhintergrund2_schwach"><a href="main.php?ebene1=select_bestellung&ebene2=show_shopbestellung&
Send=1&categorie=<? echo $cat?>&materialid=<? echo $material_id[$x];>">
<img src="
images/16x16_warenkorb.gif" border="0"></a></td>
</tr>
<?
}
?>
Hoffe ihr könnte mir helfen

Geändert von thurman (17-07-2005 um 14:41 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 17-07-2005, 11:25
Shurakai
 Master
Links : Onlinestatus : Shurakai ist offline
Registriert seit: May 2004
Ort: Bergisch Gladbach
Beiträge: 3.090
Shurakai ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Du musst die Daten zum Server bekommen. Setz doch auf das Icon dann nen form.submit(); o.Ä.... Man kann auch in <button>-Tags Bilder reinmachen. Oder per JS dann die Menge an die URL anhängen aber das ist .....


P.S.: Wärest du so freundlich und würdest die Regeln befolgen und deinen Code so umbrechen, dass wir nicht mehr scrollen müßen? Ich hab hier 2 TFTs stehen @ 1280x1024 und dein Posting geht quasi über beide Monitore....
Mit Zitat antworten
  #3 (permalink)  
Alt 17-07-2005, 11:42
thurman
 Newbie
Links : Onlinestatus : thurman ist offline
Registriert seit: Jul 2005
Beiträge: 15
thurman ist zur Zeit noch ein unbeschriebenes Blatt
Standard

danke für den Tipp mit den Bildern in den Buttons!

müsste ja dann wie folgt in etwa aussehen:

PHP-Code:
<INPUT type="image" src="images/16x16_warenkorb.gif" title="In den Warenkorb"
Jetzt bin ich wirklich alles andere als ein Spezialist, wie bekomme ich jetzt die Werte übergeben?.
Der Artikel steht ja nicht einem Feld sondern einfach als Text auf der Seite.

Den habe ich ja bisher über das <a href .. mit übergeben

PHP-Code:
&materialid=<? echo $material_id[$x];?>
Mit Zitat antworten
  #4 (permalink)  
Alt 17-07-2005, 11:49
thurman
 Newbie
Links : Onlinestatus : thurman ist offline
Registriert seit: Jul 2005
Beiträge: 15
thurman ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Habe jetzt den folgenden Lösungsweg gefunden.
Das klappt auch alles ganz wunderbar, solange die Anzahl einstellig ist. Wenn ich aber z.B. 12 Artikel reinlege, zeigt der Warenkorb nur die Menge 1 an. Bei 43 z.B. 4.
Also schneidet er nach der ersten Stelle ab.
Verlasse ich die Seite und rufe sie ganz neu auf, steht die korrekt Anzahl drin. Also wird auch richtig in die DB gespeichert.
Hat jemand eine Idee, finde den Fehler mehr als merkwürdig.

Danke

PHP-Code:
        for($x=0;$x<$material_num;$x++)
        {
        ?>
        <form action="main.php" name="add_artikel" method="post" enctype="multipart/form-data">
            <input name="ebene1" type="hidden" value="select_bestellung">
            <input name="ebene2" type="hidden" value="show_shopbestellung">
            <input name="anzahl" type="hidden" value="<? echo $_REQUEST['anzahl']?>">
            <input name="artikel" type="hidden" value="<? echo $material_id[$x];?>">
            <input name="categorie" type="hidden" value="<? echo $cat?>">
            <input name="Send" type="hidden" value="1">
            <tr><td>&nbsp;</td></tr>
            <tr>
                <td class="listenhintergrund2_schwach"><a href="#" onClick="openpic('images/shop/
<? echo $material_image[$x];?>','Detailansicht', '250', '250')"><img src="images/shop/<? echo $material_image[$x]?>" style="width: 45px;" border="0" title="Detailansicht"></a></td>
                <td style="width: 250px;" class="listenhintergrund2_schwach"><? echo $material_name[$x]."<br>Artikel-Nr. "$material_nummer[$x];?></td>
                <td class="listenhintergrund2_schwach"><? echo $material_desc[$x?></td>
                <td style="width: 50px;" class="listenhintergrund2_schwach" align="right" ><? echo $material_einheit[$x]." ST";?></td>
                <td style="width: 60px;" class="listenhintergrund2_schwach" align="right"><? echo german_price($material_preis[$x]) . " €";?></td>
                <td style="width: 40px;" class="listenhintergrund2_schwach" align="center"><input type="text" name="anzahl" value="0" style="width: 30px;" maxlength="3">
                <td class="listenhintergrund2_schwach" align="center" ><INPUT type="image" src="images/16x16_warenkorb.gif" title="In den Warenkorb"><p>
                <?
                
if($material_lieferzeit[$x]>&& $material_lieferzeit[$x]<=3)
                    echo 
"<img src='images/3.gif' border='0' title='Lieferung innerhalb von $material_lieferzeit[$x] Tagen'>";
                if(
$material_lieferzeit[$x]>&& $material_lieferzeit[$x] <=6)
                    echo 
"<img src='images/6.gif' border='0' title='Lieferung innerhalb von $material_lieferzeit[$x] Tagen'>";
                if(
$material_lieferzeit[$x]>6)
                    echo 
"<img src='images/18.gif' border='0' title='Lieferung innerhalb von $material_lieferzeit[$x] Tagen'>";
                
?>
                </td>
            </tr>
        </form>
        <?

Geändert von thurman (19-07-2005 um 21:36 Uhr)
Mit Zitat antworten
  #5 (permalink)  
Alt 19-07-2005, 21:30
thurman
 Newbie
Links : Onlinestatus : thurman ist offline
Registriert seit: Jul 2005
Beiträge: 15
thurman ist zur Zeit noch ein unbeschriebenes Blatt
Standard

die Anzeige des Warenkorbs sieht wie folgt aus:

PHP-Code:
<td>Warenkorb: <?echo german_price($basket)." €"?></td>
und die MySQL Befehle lauten so:

PHP-Code:
<?
    
# debug Modus
    # $mysql->enable_debug();

    # eingeloggte Firma
    
$mysql->clearall();
    
$mysql->set_table("project_firmenprofil");
    
$mysql->set_where("id=".$_SESSION['firmenID']);
    
$mysql->select();
    
$cache=$mysql->fetch_assoc();
    
$gruppe=$cache['gruppen_id'];

    
# übergebene categorie
    
$mysql->clearall();
    
$mysql->set_table("project_shop_categorie");
    if (
$_REQUEST['categorie']>0)
        
$mysql->set_where("id=".$_REQUEST['categorie']);
    
$mysql->select();
    
$cache=$mysql->fetch_assoc();
    
$categorie=$cache['name'];
    
$cat=$cache['id'];
    
    
# Material auslesen
    
$mysql->clearall();
    
$mysql->set_table("project_material");
    if(
$_REQUEST['categorie']!="")
        
$mysql->set_where("shop=1 AND categorie =" $_REQUEST['categorie']);
    else
        
$mysql->set_where("2=1");
    
$material_num=$mysql->select();

    for(
$x=0;$x<$material_num;$x++)
    {
        
$cache=$mysql->fetch_assoc();
        
$material_name[$x] = $cache['name'];
        
$material_nummer[$x] = $cache['artikelnummer'];
        
$material_desc[$x] = $cache['description'];
        
$material_einheit[$x] = $cache['einheit'];
        
$material_image[$x] = $cache['image'];
        
$material_lieferzeit[$x] = $cache['lieferzeit'];
        
$material_id[$x] = $cache['id'];
        
$material_xid[$cache['id']] = $x;
    }

    
# Der Materialpreis ist abhängig davon, welcher Preisgruppe die Firma angehört!
    
$mysql->clearall();
    
$mysql->set_table("project_materialpreis");
    
$mysql->set_where("gruppen_id=".$gruppe);
    
$preis_num=$mysql->select();

    for(
$x=0;$x<$preis_num;$x++)
    {
        
$cache=$mysql->fetch_assoc();
        
$materialpreis_id[$x] = $cache['material_id'];
        
$material_preis[$material_xid[$cache['material_id']]] = $cache['preis']." ";
    }
    
    if (
$_REQUEST['Send']&& $_REQUEST['anzahl']>0)
    {
        
# Warenkorb in die DB schreiben

        
$mysql->clearall();
        
$mysql->set_table("project_warenkorb");
        
$mysql->set_field("user_id",$_SESSION['userID']);
        
$mysql->set_field("material_id",$_REQUEST['artikel']);
        
$mysql->set_field("anzahl",$_REQUEST['anzahl']);
        
$mysql->insert();
    }
    
    
# Warenkorb aus der DB lesen (Anzeige oben rechts)
    
$mysql->clearall();
    
$mysql->set_table("project_warenkorb");
    
$mysql->set_where("user_id=".$_SESSION['userID']);

    
$basket_num=$mysql->select();

    for(
$x=0;$x<$basket_num;$x++)
    {
        
$cache=$mysql->fetch_assoc();
        
$materialid[$x]=$cache['material_id'];
        
$materialxid[$cache['id']] = $x;
        
$anzahl[$x]=$cache['anzahl'];
    }
    
    
# Materialpreise des Warenkorbes (Anzeige oben rechts)
    
$mysql->clearall();    
    for(
$x=0;$x<$basket_num;$x++)
    {
        
$mysql->clearall();
        
$mysql->set_table("project_materialpreis");
        
$mysql->set_where("material_id=".$materialid[$x] ." AND gruppen_id =".$gruppe);
        
$mysql->select();

        
$cache=$mysql->fetch_assoc();
        
$preis[$materialxid[$cache['material_id']]] = $cache['preis']." ";
        
$basket $basket+($preis[$materialxid[$cache['material_id']]]*$anzahl[$x]);
    }
        
        
 
?>
Mit Zitat antworten
  #6 (permalink)  
Alt 19-07-2005, 21:34
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.188
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

*zack* da schiebe ich doch direkt mal eine Verwarnung hier ein. Bitte bearbeite deine Beiträge gemäß den Forenregeln (insb. horizontales Scrollen).

http://www.php-resource.de/forum/sho...threadid=50454

Hat leider nicht jeder so nen schönen 50" Bildschirm wie du...
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #7 (permalink)  
Alt 19-07-2005, 21:37
thurman
 Newbie
Links : Onlinestatus : thurman ist offline
Registriert seit: Jul 2005
Beiträge: 15
thurman ist zur Zeit noch ein unbeschriebenes Blatt
Standard

super tolle und hilfreiche Antwort, zumal man noch gerade dabei ist seinen
Beitrag zu editieren.
Wie oft hast diesen Satz wohl schon los gelassen.
*kopfschüttel*
Mit Zitat antworten
  #8 (permalink)  
Alt 19-07-2005, 21:42
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.188
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

OffTopic:
Es tut mir leid, ich kann leider nicht Hellsehen. Und da nach Shurakais Hinweis erneut überlänge gepostet wurde, halte ich meinen Hinweis doch für angebracht.
Zitat:
Wie oft hast diesen Satz wohl schon los gelassen.
Leider viel zu oft, da einige Leute leider nicht in der Lage sind, sich zuerst in einem Forum umzusehen und Threads wie "erst lesen" ignorieren.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #9 (permalink)  
Alt 19-07-2005, 21:46
thurman
 Newbie
Links : Onlinestatus : thurman ist offline
Registriert seit: Jul 2005
Beiträge: 15
thurman ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ich denke so sollte es auf gehen, meiner Meinung nach wird der Code durch die Umbrüche noch schwerer zu lesen

Wäre wirklich sehr nett wenn mir jemand bei dem Problem helfen kann. Sitze da jetzt schon 1 1/2 Tage dran,
falls jemand das Verhalten mal live sehen will,
kann ich gerne einen login schicken.

Will ihn aber nicht einfach so für alle posten, weil es nicht privat ist.
Mit Zitat antworten
  #10 (permalink)  
Alt 19-07-2005, 21:49
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

kein plan, mit dem code kann ich persönlich nichts anfangen.
var_dump() sei dein freund, debuggen musst du selbst.
Mit Zitat antworten
  #11 (permalink)  
Alt 19-07-2005, 21:55
thurman
 Newbie
Links : Onlinestatus : thurman ist offline
Registriert seit: Jul 2005
Beiträge: 15
thurman ist zur Zeit noch ein unbeschriebenes Blatt
Standard

habe ganz oben mal

var_dump($anzahl) ; einfügt

der liefert mir bei Anzahl 4:

string(1) "4"

bei Anzahl 13:

string(2) "13"

bei Anzahl 332:

string(3) "332"

das sieht doch an sich sehr korrekt aus

füge ich das var_dump($anzahl) ; unten direkt vor die for schleife ein,
bekomme ich folgenden output:

array(9) { [0]=> string(1) "4" [1]=> string(1) "4" [2]=> string(1) "2" [3]=> string(1) "3" [4]=> string(2) "12" [5]=> string(1) "4" [6]=> string(2) "44" [7]=> string(3) "333" [8]=> string(1) "4" }

Geändert von thurman (19-07-2005 um 21:58 Uhr)
Mit Zitat antworten
  #12 (permalink)  
Alt 19-07-2005, 21:57
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

dann wirds an der ausgabe liegen.
Mit Zitat antworten
  #13 (permalink)  
Alt 19-07-2005, 22:18
thurman
 Newbie
Links : Onlinestatus : thurman ist offline
Registriert seit: Jul 2005
Beiträge: 15
thurman ist zur Zeit noch ein unbeschriebenes Blatt
Standard

jo den ersten fehler habe ich. Überschreibe mir die Variablen anscheinend wieder. Umbenannt und es geht )
Mit Zitat antworten
  #14 (permalink)  
Alt 19-07-2005, 22:33
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von TobiaZ
Hat leider nicht jeder so nen schönen 50" Bildschirm wie du...
OffTopic:
dabei könnte man doch experimentellerweise in den stylesheets dieses forums reinschreiben:
Code:
code {
   white-space: normal;
}
das würde die leute dazu motivieren, ihre posts direkt zu editieren.
Mit Zitat antworten
  #15 (permalink)  
Alt 19-07-2005, 22:49
thurman
 Newbie
Links : Onlinestatus : thurman ist offline
Registriert seit: Jul 2005
Beiträge: 15
thurman ist zur Zeit noch ein unbeschriebenes Blatt
Standard

jetzt habe ich meinen fehler. Anscheinend sollte das <input feld "anzahl">
nicht den selben namen haben wie meine Variable $anzahl. Als ich $anzahl
umbenannt habe in $stueck geht es 1a. Das hat vielleicht nerven gekostet
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

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 an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

MariaDB 5.5 veröffentlicht
MariaDB 5.5 veröffentlichtDie freie MySQL-Alternative MariaDB wurde in der stabilen Version 5.5.23 veröffentlicht und soll einige Verbesserungen gegenüber Oracles Communityversion von MySQL mitbringen.

16.04.2012 | Berni

Deutsche Yii Framework Community
Deutsche Yii Framework CommunitySeit dem 19.03.2012 gibt es für die Yii PHP Framework Community ein deutsches Zuhause.

20.03.2012 | dhcomputer

 

Aktuelle PHP Scripte

Advanced Login ansehen Advanced Login

Login-System und Kundenverwaltung, die sich spielend leicht in bestehende Webseiten einbauen lässt und einen enormen Funktionsumfang bietet. Ihre eigene Webseite muss mit Advanced Login nicht umständlich an ein fertiges System angepasst werden.

25.05.2012 Madden | Kategorie: PHP/ Kundenverwaltung
BROM CMS/BelCal 3 ansehen BROM CMS/BelCal 3

Spezielles CMS für Betreiber von Ferienwohnungen. Komplette Seitenerstellung online, Verwaltung mehrerer Objekte, Reservierungssystem mit sofortigem Abgleich im Belegungskalender und vieles mehr bietet dieses Content Management System.

25.05.2012 belcal2 | Kategorie: PHP/ CMS
belbit LiveSupport Script ansehen belbit LiveSupport Script

Schnellen und unkomplizierten Support im LiveSupport-Chat anbieten. Ohne Datenbank und in wenigen Sekunden installiert.

24.05.2012 EichbaumMedia | Kategorie: PHP/ Chat
 Alle PHP Scripte anzeigen

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