tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
9
ZUGRIFFE
564
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Camod Camod ist offline Mitglied
    Registriert seit
    Jun 2004
    Beiträge
    12
    Hallo Leute,

    ich habe mir einen Preisberechner mit PHP gebastelt.
    Der Kunde hat ein HTML-Formular wo er diverse Dinge ankreuzeln kann und sobald er auf berechnen klickt steht da die Summe.

    Nun mein Problem: Die Preise habe ich im Value definiert.
    HTML-Code:
    <input type="radio" name="sitemap" value="220"
    Hier kostet die Dienstleistung 220 EUR.

    Berechnet wird das ganze so:

    Code :
    1
    
    $ergebnis = $_POST['sitemap'] + $_POST['workshop_konzeption']*3 + $_POST['workshop_inhalte']

    Nun würde ich gerne die Werte aus einer Datenbank auslesen lassen und das ganze dann berechnen. Weiters würdet Ihr mir sehr weiterhelfen, wenn ich ausserdem och auf der ergebnis-Seite anzeigen lassen könnte, was der Kunde für Kästchen angeklickt hat.

    Das heißt, wenn er angenommem im Formular anklickt, das er PC-Reparatur 90 min wünscht, steht dann auf der Ergebnis-Seite Sie wählten PC-Reparatur 90 min Preis

    Vielen Dank schon mal
     

  2. #2
    Avatar von danielm
    danielm danielm ist offline Mitglied Gold
    Registriert seit
    Sep 2003
    Ort
    Kassel
    Beiträge
    123
    Hey,
    ich würde das ungefähr so machen:

    PHP-Code:
    $x = new Array('sitemap''workshop_konzeption''workshop_inhalte');

    foreach(
    $x as $y)
    {
      if (isset(
    $_POST['$y']))
        
    $select $select." `$y`";
    }

    $query "SELECT ".$select." FROM `tabelle`";
    $result mysql_query($query);
    $preise mysql_fetch_array($result);

    foreach(
    $preise as $preis)
    {
      
    $ergebnis += $preis;

    Musst du halt noch ein bissel an deine Bedürfnisse anpassen...
     

  3. #3
    Avatar von Shooter2k
    Shooter2k Shooter2k ist offline Mitglied Brokat
    Registriert seit
    Mar 2002
    Ort
    Hamburg
    Beiträge
    381
    WArum hast du $x = new Array(""); geschrieben statt $x = array(""); Hat das einen bestimmten Grund ?

    gruß
    henry
     
    Wer mit dem Strom schwimmt, erreicht die Quelle nie.

  4. #4
    Avatar von danielm
    danielm danielm ist offline Mitglied Gold
    Registriert seit
    Sep 2003
    Ort
    Kassel
    Beiträge
    123
    uhm
    War in Gedanken wohl beim OOP...
    Muss natürlich $x = array() heißen
     

  5. #5
    Camod Camod ist offline Mitglied
    Registriert seit
    Jun 2004
    Beiträge
    12
    Sorry, das kapier ich nicht ganz - hoffe ich nerve nicht, aber da ich PHP lernen möchte könntest du mir eventuell erklären was da in etwa passiert?

    Bekomme eine Fehlermeldung:
    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /srv/www/web1/html/test/rechnen.php on line 32
     

  6. #6
    Avatar von danielm
    danielm danielm ist offline Mitglied Gold
    Registriert seit
    Sep 2003
    Ort
    Kassel
    Beiträge
    123
    Ok, pass auf
    PHP-Code:
    $x = array('sitemap''workshop_konzeption''workshop_inhalte');
    //Das Array könntest du natürlich auch einfach mit den Namen deiner Kostenpunkte aus der Datenbank füttern

    foreach($x as $y)
    {
      if (isset(
    $_POST['$y']))
        
    $select $select." `$y`";

    Hier wird ein Array $x, mit den Elementen sitemap, workshop und workshop_inhalte erstellt. In der foreach-Schleife werden die Elemente von $x durchlaufen und jeweils überprüft ob sie von deinem Formular übertragen wurden. Wenn ja, dann wird der String $select um jeweils das Element ergänzt. Das sieht dann ungefähr so aus wenn es fertig ist, "sitemap, workshop_inhalte". Wenn sitemap und workshop_inhalte von deinem Formular übergeben wurde.

    PHP-Code:
    $query "SELECT ".$select." FROM `tabelle`";
    $result mysql_query($query);
    $preise mysql_fetch_array($result); 
    Hier wird der String $query gebaut, aus "SELECT ", dem $select-String und "FROM `tabelle`". Bei dem Beispiel von oben sähe das dann so aus "SELECT sitemap, workshop_inhalte FROM `tabelle`". Dann wird der $query-String an die Funktion mysql_query() übergeben. Und mit der Funktion mysql_fetch_array() werden die Inhalte, die du in $query Definiert hast, in das Array $preise geschrieben.

    PHP-Code:
    foreach($preise as $preis)
    {
      
    $ergebnis += $preis;

    Mit dieser foreach-Schleife wird das Array $preise durchlaufen, und das aktuelle Element wird in die Variable $preis geschrieben. In der Schleife wird dann einfach zu der Variable jeder Preis addiert... D.h. also wenn "sitemap" 50€, und "workshop_inhalte" 20€ kostet, dann steht in $ergebnis = 70€;

    Hoffe das war verständlich, wenn nicht einfach nochmal fragen

    Ahja, und wegen dem Fehler mach aus der Zeile:
    $select = $select."`$y`";

    mal das hier:
    if ($select == "")
    $select = "`$y`";
    else
    $select = ", `$y`";


    mfg Daniel
    Geändert von danielm (04.10.05 um 19:29 Uhr)
     

  7. #7
    Camod Camod ist offline Mitglied
    Registriert seit
    Jun 2004
    Beiträge
    12
    Ein Frage hätte ich noch? Was muß im Formular als VALUE stehen? Jetzt stehen ja die Preise drin, die werden ja dann aber aus der DB ausgelesen. einfach leer lassen?
     

  8. #8
    Camod Camod ist offline Mitglied
    Registriert seit
    Jun 2004
    Beiträge
    12
    Hab ausserdem die Änderung gemacht und erhalte nun folgende Fehlermeldung:

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /srv/www/web1/html/test/test_forum.php on line 23
     

  9. #9
    Avatar von danielm
    danielm danielm ist offline Mitglied Gold
    Registriert seit
    Sep 2003
    Ort
    Kassel
    Beiträge
    123
    Ja, einfach leer lassen...
    Lass dir den $query String mal mit echo() ausgeben
     

  10. #10
    Camod Camod ist offline Mitglied
    Registriert seit
    Jun 2004
    Beiträge
    12
    Also, ich bekomme das nicht hin. Wenn ich mir das mit Echo ausgeben lasse dann kommt folgendes:

    SELECT FROM `cd_webdesign`
    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /srv/www/web1/html/test/test_forum.php on line 23

    Warning: Invalid argument supplied for foreach() in /srv/www/web1/html/test/test_forum.php on line 25


    Ich sende dir mal die zwei Dateien:

    test_forum1.php:

    HTML-Code:
     <form name="form1" method="post" action="test_forum.php">
      <table width="410" height="*" border="0" cellpadding="0" cellspacing="0">
        <tr>
          <td align="left" valign="top" class="text" Colspan="2" height="30"><B>Die Konzeption</B></td>
          <td align="right" valign="top" class="text" Colspan="2">&nbsp;</td>
        </tr>
        <tr>
          <td height="1" colspan="4" bgcolor="#cccccc"></td>
        </tr>
        <tr>
          <td align="left" valign="middle" class="text"> Standard Struktur kleines Unternehmen:</td>
          <td>&nbsp;</td>
          <td align="left" valign="middle" class="text"><input type="radio" name="standard" value=""
    		checked		></td>
          <td align="right" valign="middle" class="text"> 0,00 &euro;</td>
        </tr>
        <tr>
          <td height="1" colspan="4" bgcolor="#cccccc"></td>
        </tr>
        <tr>
          <td align="left" valign="middle" class="text"> Individuelle Struktur:</td>
          <td>&nbsp;</td>
          <td align="left" valign="middle" class="text"><input type="radio" name="standard" value=""
    				></td>
          <td align="right" valign="middle" class="text"> 220,00 &euro;</td>
        </tr>
        <tr>
          <td height="1" colspan="4" bgcolor="#cccccc"></td>
        </tr>
        <tr>
          <td align="left" valign="middle" class="text"> Workshop zur Konzeption der Seite:</td>
          <td>&nbsp;</td>
          <td align="left" valign="middle" class="text"><input type=checkbox name="workshop_konzeption" value=""
    				></td>
          <td align="right" valign="middle" class="text"> 640,00 &euro;</td>
        </tr>
        <tr>
          <td height="1" colspan="4" bgcolor="#cccccc"></td>
        </tr>
        <tr>
          <td align="left" valign="middle" class="text"> Workshop zur Entwicklung der Inhalte:</td>
          <td>&nbsp;</td>
          <td align="left" valign="middle" class="text"><input type=checkbox name="workshop_inhalte" value=""
    				></td>
          <td align="right" valign="middle" class="text"> auf Anfrage</td>
        </tr>
      </table>
      <p>
        <input type="submit" name="Submit" value="Senden" >
      </p>
    </form>
    <p>&nbsp;</p>
    Die Datei test_forum:

    PHP-Code:
    <?
    $mysqlhost
    ="localhost"// MySQL-Host angeben
    $mysqluser="web1"// MySQL-User angeben
    $mysqlpwd="******"// Passwort angeben
    $mysqldb="******"// Gewuenschte Datenbank angeben

    $connection=mysql_connect($mysqlhost$mysqluser$mysqlpwd) or die("Verbindungsversuch fehlgeschlagen");

    mysql_select_db($mysqldb$connection) or die("Konnte die Datenbank nicht waehlen.");
    $x = array('standard''individuell''workshop_inhalte' ,'workshop_inhalte'); 
    foreach(
    $x as $y

      if (isset(
    $_POST['$y'])) 
        
    //$select = $select." `$y`"; 
        
    if ($select == "")
        
    $select "`$y`";
        else
        
    $select ", `$y`";


    echo (
    $query "SELECT ".$select." FROM `cd_webdesign`"); 
    $result mysql_query($query); 
    $preise mysql_fetch_array($result); 

    foreach(
    $preise as $preis

      
    $ergebnis += $preis


    ?>
    Vielleicht kannst du dir das nochmal ansehen
     

Ähnliche Themen

  1. mit PHP rechnen..
    Von madirfan im Forum PHP
    Antworten: 1
    Letzter Beitrag: 27.05.08, 15:08
  2. Rechnen
    Von siros im Forum PHP
    Antworten: 1
    Letzter Beitrag: 19.05.06, 10:32
  3. Rechnen
    Von mckani im Forum PHP
    Antworten: 0
    Letzter Beitrag: 07.12.05, 18:08
  4. Rechnen mit SQL?
    Von uwee im Forum Relationale Datenbanksysteme
    Antworten: 6
    Letzter Beitrag: 12.01.05, 09:44
  5. +- Rechnen !
    Von BigBruder im Forum Java
    Antworten: 6
    Letzter Beitrag: 14.11.03, 22:31