gs-500.de  

Zurück   gs-500.de > Fun, Offtopic, etc. > Computer, Handy, Technik, ...

Hinweise

Antwort
 
Themen-Optionen
Alt 09.05.2010, 12:30:13   #1
red_bull
Benutzer
 
Registriert seit: 30.01.2009
Beiträge: 91
Standard php classes problem :(

Hi.

Ich habe da ein Problem mit den PHP classes. Ich habe noch nie vorher mit den Classes gearbeitet. Immer nur so einfach den Code von Php in z.B. PsPad eingegeben und via Localhost ausgegeben. Mein vorhaben ist ein ganz simples. Ich habe in einer Index.php Seite zwei eingabe Felder und einen Submit. In die Felder sollen jeweils eine Zahl eingegeben werden die dann miteinander addiert werden. Dies soll dann in eine Datenbank eingefügt werden. Der Code ansich ist richtig(habe ich getestet) aber sobald ich dan mit class berechnen und function hantiere packt er die sachen nicht in die Datenbank oder macht garnix. Weiß jemand warum? In meiner berechnen.php steht nun dieser code:

PHP-Code:
class berechnen
{
   public function 
rechnen($zahl,$zahl2)
    {
      
$zahl1=$_GET['zahl1'];
      
$zahl2=$_GET['zahl2'];
      
$ergebnis$zahl1 $zahl2 ;
      if (empty(
$zahl1) or empty($zahl2)) { echo " verzieh dich"; die;} 
      else
      if (!empty(
$zahl1) and !empty($zahl2))
     {
      
$db_server 'localhost';       
      
$db_user 'root';                
      
$db_passwort '';
      
$zahl1=$_GET['zahl1'];
      
$zahl2=$_GET['zahl2'];
      
$ergebnis$zahl1 $zahl2 ;
    
       
$db_link mysql_connect ($db_server$db_user$db_passwort);
     if (!
$db_link)
          {
          die (
'keine Verbindung möglich: ' mysql_error());
          }
      
$sql 'use iron';
      
$result mysql_query($sql$db_link);
       if (!
$result)
            {
           die (
'Ungültige Abfrage: ' mysql_error());
            }
     
$sql 'INSERT INTO maxx ';
     
$sql .= '(id, Zahl1, Zahl2, Ergebnis) ';
     
$sql .= "values ('Null', '$zahl1', '$zahl2', '$ergebnis')";

      
$result mysql_query($sql$db_link);
     if (!
$result)
            {
           die (
'Ungültige Abfrage: ' mysql_error());
            }
       echo 
"alles paletti das ergebnis ist $ergebnis;
    
     }
    
      
    }
    } 
__________________
GS Teile zum Verkauf
red_bull ist offline   Mit Zitat antworten
Alt 09.05.2010, 16:15:34   #2
acid
Gast
 
Beiträge: n/a
Standard

1. public function rechnen($zahl1,$zahl2)
2. $sql = 'use iron';
Was soll denn das für ein SQL Statement sein? Das ist total sinnlos.
  Mit Zitat antworten
Alt 09.05.2010, 17:26:31   #3
verdi
Administrator
 
Benutzerbild von verdi
 
Registriert seit: 15.05.2002
Ort: Hamburg
Alter: 43
Beiträge: 9.038
Baujahr: 1994
Kilometer: 45000
Standard

wieso übergibst du der funktion rechnen denn 2 variablen wenn du die übergebenen werte sofort überschreibst ?
__________________
When I get sad, I stop being sad and be awesome again. True story.
verdi ist offline   Mit Zitat antworten
Alt 09.05.2010, 17:27:30   #4
verdi
Administrator
 
Benutzerbild von verdi
 
Registriert seit: 15.05.2002
Ort: Hamburg
Alter: 43
Beiträge: 9.038
Baujahr: 1994
Kilometer: 45000
Standard

Zitat:
Zitat von acid Beitrag anzeigen
1. public function rechnen($zahl1,$zahl2)
2. $sql = 'use iron';
Was soll denn das für ein SQL Statement sein? Das ist total sinnlos.
http://dev.mysql.com/doc/refman/5.0/en/use.html
__________________
When I get sad, I stop being sad and be awesome again. True story.
verdi ist offline   Mit Zitat antworten
Alt 09.05.2010, 17:27:55   #5
red_bull
Benutzer
 
Registriert seit: 30.01.2009
Beiträge: 91
Standard

1. hab ich nicht gesehen.
2. ich mach das mit xampp und das mit $sql=' use iron' ; ist der zugriff auf die datenbank mit dem namen iron. sprich diese datenbank ist in phpmyadmin von mir erstellt worden. und mit diesem statement sage ich dem skipt das es diese datenbank für die weiteren angaben benutzen soll.
__________________
GS Teile zum Verkauf
red_bull ist offline   Mit Zitat antworten
Alt 09.05.2010, 17:29:32   #6
red_bull
Benutzer
 
Registriert seit: 30.01.2009
Beiträge: 91
Standard

@verdi
ich hab keine ahnung von den mit class und function kram. ich hab einfach mal rumprobiert und dann einfach die variablen da eingefügt zum probieren. bin total ungeübt in den sachen.
__________________
GS Teile zum Verkauf
red_bull ist offline   Mit Zitat antworten
Alt 09.05.2010, 17:35:05   #7
verdi
Administrator
 
Benutzerbild von verdi
 
Registriert seit: 15.05.2002
Ort: Hamburg
Alter: 43
Beiträge: 9.038
Baujahr: 1994
Kilometer: 45000
Standard

gib mal den ganzen code. also incl dem formular teil
__________________
When I get sad, I stop being sad and be awesome again. True story.
verdi ist offline   Mit Zitat antworten
Alt 09.05.2010, 17:36:02   #8
acid
Gast
 
Beiträge: n/a
Standard

Ah verstehe.

Die Übergabeparameter sind im Grunde sinnlos, da Du die Werte von zahl1 und zahl2 wie man sieht sowieso aus den $_GET Variablen ausliest. Wenn dann müsstest Du schreiben "rechne($_GET[zahl1], $_GET[zahl2])".
  Mit Zitat antworten
Alt 09.05.2010, 17:38:32   #9
red_bull
Benutzer
 
Registriert seit: 30.01.2009
Beiträge: 91
Standard

hier mal die index.php

PHP-Code:
<!-- notice the form submit action to formhandler.php -->
<
form action='berechnen.php' method='get'>
<
h1>iron</h1>


    <
b>Zahl1:</b><br/>
    <
input type='text' name='zahl1' value='' size='30'/><br/><br/>

    <
b>Zahl2:</b><br/>
    <
input type='text' name='zahl2' value='' size='30'/><br/><br/>


    <
br/><br/>
        <
input type='submit' name='submit' value='berechnen'/><br/>
</
form
__________________
GS Teile zum Verkauf
red_bull ist offline   Mit Zitat antworten
Alt 09.05.2010, 17:42:22   #10
red_bull
Benutzer
 
Registriert seit: 30.01.2009
Beiträge: 91
Standard

falls einer von euch mit xampp und phpmyadmin arbeitet hier der code dafür
HTML-Code:
-- phpMyAdmin SQL Dump
-- version 3.2.4
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Erstellungszeit: 09. Mai 2010 um 18:40
-- Server Version: 5.1.41
-- PHP-Version: 5.3.1

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Datenbank: `iron`
--

-- --------------------------------------------------------

--
-- Tabellenstruktur für Tabelle `maxx`
--

CREATE TABLE IF NOT EXISTS `maxx` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `Zahl1` int(50) NOT NULL,
  `Zahl2` int(50) NOT NULL,
  `Ergebnis` int(50) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

--
-- Daten für Tabelle `maxx`
--

INSERT INTO `maxx` (`id`, `Zahl1`, `Zahl2`, `Ergebnis`) VALUES
(1, 2, 2, 4),
(2, 1, 7, 8);

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
__________________
GS Teile zum Verkauf
red_bull ist offline   Mit Zitat antworten
Alt 09.05.2010, 17:50:21   #11
verdi
Administrator
 
Benutzerbild von verdi
 
Registriert seit: 15.05.2002
Ort: Hamburg
Alter: 43
Beiträge: 9.038
Baujahr: 1994
Kilometer: 45000
Standard

es fehlt immernoch der code aus der brechnen.php der die funktion dann aufruft ...
__________________
When I get sad, I stop being sad and be awesome again. True story.
verdi ist offline   Mit Zitat antworten
Alt 09.05.2010, 17:50:55   #12
acid
Gast
 
Beiträge: n/a
Standard

Wenn Du das Formular absendest, wird die berechnen.php aufgerufen. Aber da fehlt der Aufruf der Funktion rechne().

Mal ein Beispiel wie du das machen könntest OHNE Klassen.

Code:
if(!empty($_GET[a]) AND !empty($_GET[b])){
   $e = $_GET[a] + $_GET[b];
   //SQL Query mit INSERT
}
else{
   //Formular ausgeben
}
  Mit Zitat antworten
Alt 09.05.2010, 17:53:41   #13
red_bull
Benutzer
 
Registriert seit: 30.01.2009
Beiträge: 91
Standard

ja also das berechne.php was im ersten bericht steht ist eig alles was da drin steht in berechne.php. halt nur noch <?php ?>.
Zitat:
Aber da fehlt der Aufruf der Funktion rechne().
das habe ich mir schon fast gedacht das da was fehlt das er den weiß das er die funktion bearbeiten soll..hab aber keine ahnung wie das aussieht
__________________
GS Teile zum Verkauf
red_bull ist offline   Mit Zitat antworten
Alt 09.05.2010, 17:56:07   #14
acid
Gast
 
Beiträge: n/a
Standard

Machs einfach ohne Klasse und les nochmal nach, was Klassen ausmacht, wie sie funktionieren und wie man Aufrufe formuliert
  Mit Zitat antworten
Alt 09.05.2010, 17:58:48   #15
red_bull
Benutzer
 
Registriert seit: 30.01.2009
Beiträge: 91
Standard

Zitat:
Machs einfach ohne Klasse und les nochmal nach, was Klassen ausmacht, wie sie funktionieren und wie man Aufrufe formuliert
das problem ist ja das ich sowas in etwa in einer Klausur machen soll am mittwoch . ich hoffe einer kann mir eine rettende lösung aufzeigen . ansonsten heißt es viel lesen im internet ...
__________________
GS Teile zum Verkauf
red_bull ist offline   Mit Zitat antworten
Alt 09.05.2010, 18:11:54   #16
verdi
Administrator
 
Benutzerbild von verdi
 
Registriert seit: 15.05.2002
Ort: Hamburg
Alter: 43
Beiträge: 9.038
Baujahr: 1994
Kilometer: 45000
Standard

berechnen.php

PHP-Code:

<?php
      
      
if (!empty($zahl1) and !empty($zahl2))
     {
      
$db_server 'localhost';       
      
$db_user 'root';                
      
$db_passwort '';
      
$zahl1=$_GET['zahl1'];
      
$zahl2=$_GET['zahl2'];
      
$ergebnis$zahl1 $zahl2 ;
    
       
$db_link mysql_connect ($db_server$db_user$db_passwort);
     if (!
$db_link)
          {
          die (
'keine Verbindung möglich: ' mysql_error());
          }
      
$sql 'use iron';
      
$result mysql_query($sql$db_link);
       if (!
$result)
            {
           die (
'Ungültige Abfrage: ' mysql_error());
            }
     
$sql 'INSERT INTO maxx ';
     
$sql .= '(id, Zahl1, Zahl2, Ergebnis) ';
     
$sql .= "values ('Null', '$zahl1', '$zahl2', '$ergebnis')";

      
$result mysql_query($sql$db_link);
     if (!
$result)
            {
           die (
'Ungültige Abfrage: ' mysql_error());
            }
       echo 
"alles paletti das ergebnis ist $ergebnis;
    
     }
     else
     {
        die(
'nix übergeben');
    
      
    }
      
?>
__________________
When I get sad, I stop being sad and be awesome again. True story.
verdi ist offline   Mit Zitat antworten
Alt 09.05.2010, 18:16:26   #17
red_bull
Benutzer
 
Registriert seit: 30.01.2009
Beiträge: 91
Standard

@verdi.

das ist ja der code ohne die klassen richtig?

das hatte ich ja auch schonmal ausprobiert und es hat auch gefunzt. das problem liegt halt bei den classes die ich irgendwie mit einbinden muss.
__________________
GS Teile zum Verkauf
red_bull ist offline   Mit Zitat antworten
Alt 09.05.2010, 18:21:43   #18
verdi
Administrator
 
Benutzerbild von verdi
 
Registriert seit: 15.05.2002
Ort: Hamburg
Alter: 43
Beiträge: 9.038
Baujahr: 1994
Kilometer: 45000
Standard

PHP-Code:
<?php

class Rechner
{
    public function 
rechnen($zahl1,$zahl2)
    {
        
$ergebnis$zahl1 $zahl2;
        return 
$ergebnis;
    }
}



if (!empty(
$zahl1) and !empty($zahl2))
{

    
$db_server 'localhost';
    
$db_user 'root';
    
$db_passwort '';

    
$db_link mysql_connect ($db_server$db_user$db_passwort);
    if (!
$db_link)
    {
        die (
'keine Verbindung möglich: ' mysql_error());
    }

    
mysql_select_db('maxx'$db_link);

    
$zahl1=$_GET['zahl1'];
    
$zahl2=$_GET['zahl2'];
        
    
$meinrechner = new Rechner();
    
$ergebnis $meinrechner->rechnen($zahl1$zahl2);
        

    
$sql 'INSERT INTO maxx ';
    
$sql .= '(id, Zahl1, Zahl2, Ergebnis) ';
    
$sql .= "values ('Null', '$zahl1', '$zahl2', '$ergebnis')";

    
$result mysql_query($sql$db_link);
    if (!
$result)
    {
        die (
'Ungültige Abfrage: ' mysql_error());
    }

    echo 
"alles paletti das ergebnis ist $ergebnis;

}
else
{
    die(
'nix übergeben');


}







?>
__________________
When I get sad, I stop being sad and be awesome again. True story.
verdi ist offline   Mit Zitat antworten
Alt 09.05.2010, 18:23:43   #19
verdi
Administrator
 
Benutzerbild von verdi
 
Registriert seit: 15.05.2002
Ort: Hamburg
Alter: 43
Beiträge: 9.038
Baujahr: 1994
Kilometer: 45000
Standard

du solltest dir dringend mal nen grundlagen artikel zu OO durchlesen ... z.b. ( auf die schnelle bei google gefunden ) http://www.peterkropff.de/site/php/oop.htm

sowie nochmal die php basics http://tut.php-quake.net/de/
__________________
When I get sad, I stop being sad and be awesome again. True story.
verdi ist offline   Mit Zitat antworten
Alt 09.05.2010, 18:28:39   #20
red_bull
Benutzer
 
Registriert seit: 30.01.2009
Beiträge: 91
Standard

schonmal vielen dank verdi für deine mühen.

aber das funktioniert bei mir immer noch nciht . der übergibt das nicht in die datenbank. hab den code kopiert , eingefügt und gespeichert.

ja ich muss mir die grundlagen nochmal ansehen. fataler fehler von mir in der schule nicht zugehört zu haben.
__________________
GS Teile zum Verkauf
red_bull ist offline   Mit Zitat antworten
Alt 09.05.2010, 18:33:40   #21
verdi
Administrator
 
Benutzerbild von verdi
 
Registriert seit: 15.05.2002
Ort: Hamburg
Alter: 43
Beiträge: 9.038
Baujahr: 1994
Kilometer: 45000
Standard

was sagt er denn ?
__________________
When I get sad, I stop being sad and be awesome again. True story.
verdi ist offline   Mit Zitat antworten
Alt 09.05.2010, 18:36:30   #22
red_bull
Benutzer
 
Registriert seit: 30.01.2009
Beiträge: 91
Standard

sagen tut er nix. auf der index seite steht am anfang schon nix übergeben (ist klar warum) und nach absenden auch nix übergeben. scheinbar erkennt er kein problem so an sich, stellt aber auch nix in die datenbank rein
__________________
GS Teile zum Verkauf
red_bull ist offline   Mit Zitat antworten
Alt 09.05.2010, 18:41:11   #23
verdi
Administrator
 
Benutzerbild von verdi
 
Registriert seit: 15.05.2002
Ort: Hamburg
Alter: 43
Beiträge: 9.038
Baujahr: 1994
Kilometer: 45000
Standard

mein fehler

die abfrage empty ging auf die falschen variablen

PHP-Code:
<?php

class Rechner
{
    public function 
rechnen($zahl1,$zahl2)
    {
        
$ergebnis$zahl1 $zahl2;
        return 
$ergebnis;
    }
}



if (!empty(
$_GET['zahl1']) && !empty($_GET['zahl2']))
{

    
$db_server 'localhost';
    
$db_user 'root';
    
$db_passwort ='';

    
$db_link mysql_connect ($db_server$db_user$db_passwort);
    if (!
$db_link)
    {
        die (
'keine Verbindung möglich: ' mysql_error());
    }

    
mysql_select_db('maxx'$db_link);

    
$zahl1=$_GET['zahl1'];
    
$zahl2=$_GET['zahl2'];
        
    
$meinrechner = new Rechner();
    
$ergebnis $meinrechner->rechnen($zahl1$zahl2);
        

    
$sql 'INSERT INTO maxx ';
    
$sql .= '(id, Zahl1, Zahl2, Ergebnis) ';
    
$sql .= "values ('Null', '$zahl1', '$zahl2', '$ergebnis')";

    
$result mysql_query($sql$db_link);
    if (!
$result)
    {
        die (
'Ungültige Abfrage: ' mysql_error());
    }

    echo 
"alles paletti das ergebnis ist $ergebnis;

}
else
{
    die(
'nix übergeben');


}







?>
__________________
When I get sad, I stop being sad and be awesome again. True story.
verdi ist offline   Mit Zitat antworten
Alt 09.05.2010, 18:49:06   #24
red_bull
Benutzer
 
Registriert seit: 30.01.2009
Beiträge: 91
Standard

da ist immernoch ein fehler drin. der sagte mir no database selected
vermutlich hat das mit dieser zeile zutun gehabt.


PHP-Code:
mysql_select_db('maxx'$db_link); 
hab diese dann durch die hier ersetzt und danach hat es funktioniert

PHP-Code:
 $sql 'use iron';
      
$result mysql_query($sql$db_link);
       if (!
$result)
            {
           die (
'Ungültige Abfrage: ' mysql_error());
             } 
danke nochmal verdi.du hast mit super geholfen. du bist der beste!!!
__________________
GS Teile zum Verkauf
red_bull ist offline   Mit Zitat antworten
Alt 09.05.2010, 18:50:46   #25
verdi
Administrator
 
Benutzerbild von verdi
 
Registriert seit: 15.05.2002
Ort: Hamburg
Alter: 43
Beiträge: 9.038
Baujahr: 1994
Kilometer: 45000
Standard

nein du musst nur das maxx durch iron ersetzen ... da muss halt dein datenbankname rein ...

hatte die db bei mir maxx genannt
__________________
When I get sad, I stop being sad and be awesome again. True story.
verdi ist offline   Mit Zitat antworten
Alt 09.05.2010, 18:56:21   #26
red_bull
Benutzer
 
Registriert seit: 30.01.2009
Beiträge: 91
Standard

hatte ich auch gedacht und geändert. hat nich gefunzt. jezz gerade wieder probiert und dann hat es funktioniert. hab mich wohl verschrieben.

DANKE VERDI
__________________
GS Teile zum Verkauf
red_bull ist offline   Mit Zitat antworten
Antwort

Lesezeichen


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 aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
"Benzinhahn-Problem"-ähnliches Problem der Jo Fehlerdiagnose 7 30.04.2010 16:50:04
Ton Problem Saugwurmmensch Computer, Handy, Technik, ... 10 15.11.2007 21:19:11
hab da ein problem... f!tox Fehlerdiagnose 11 06.09.2007 11:07:33
icq problem knut Computer, Handy, Technik, ... 10 12.02.2006 00:03:13
Hab ein Problem Allgemeines 1 09.05.2003 18:49:17


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:27:52 Uhr.


Powered by vBulletin® Version 3.8.9 (Deutsch)
Copyright ©2000 - 2025, vBulletin Solutions, Inc.