Announcement

Collapse
No announcement yet.

MySQL Spalten verketten; verbinden; verknüpfen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • #16
    Danke für den Tipp, leider funktioniert es immer noch nicht.

    Ich denke es liegt daran, dass das Feld "Anrede" und "geehrte" noch nicht richtig benannt sind.

    also in etwa:

    Code:
    mysql_select_db($database_Kundenstamm, $Kundenstamm);
    $query_Kundenstamm2 = "SELECT *(CASE 
           WHEN (Anrede = 'Herr') THEN (geehrte = 'geehrter') 
           ELSE 'geehrte' 
           END)
      FROM kundendatenbank WHERE Kundennummer = '$kundennummer'";
    so weit hab ichs jetzt. Zeigt auch kein Fehler an. Nur macht er leider nix =(

    Comment


    • #17
      Das hat wenig mit der Benennung der Felder zu tun, sondern vor allem damit, dass du alles Mögliche mischst, ohne genauer nachzudenken.

      Wenn du (nach unserer Empfehlung) die gewünschte Formulierung durch SELECT holst, hat die Spalte geehrte dort nichts zu suchen. In den THEN-Zweig gehört ausschließlich der Text, der im WHEN-Fall gewünscht wird, sonst nichts. Außerdem fehlt zwischen dem Asterisk (für "alle Spalten") und der CASE-Konstruktion ein Komma.

      Nebenbei: Die andere CASE-Version passt besser, weil nicht irgendwelche Bedingungen geprüft werden, sondern exakte Inhalte einer bestimmten Spalte. Und die CASE-Konstruktion sollte mit AS einen Alias-Namen erhalten.

      Aber ich fürchte, Falk hatte recht:
      Originally posted by Falk Prüfer View Post
      ... doch eher "zu faul"!? Lesen kannst du doch bestimmt! Z.B. im MySQL-Handbuch ...
      Deine Formulierungen lassen mich stark vermuten, dass du immer noch nicht nachgelesen hast, wie CASE geschrieben werden muss. Jürgen

      Comment


      • #18
        ich raffs einfach ned! Alle beschreibungen die ich gefunden habe gehen davon aus, dass dieselbe Spalte geändert wird. Es gibt nicht ein Fall der mein Problem beschreibt.
        Code:
        	switch ($geehrte){
        		case $Anrede = "Herr":
        			echo "geehrter";
        		case $Anrede = "Frau":
        			echo "geehrte";	}
        habs jetzt mal so laut Handbuch versucht, aber auch das bringt nix. Zeigt zwar keine Fehlermeldung an, ändert aber nix

        Comment


        • #19
          Dir ist schon der Unterschied zwischen PHP und einem SQL-Statement bewusst? O.a. ist PHP. Das bewirkt in einer DB nichts
          Zuletzt editiert von Christian Marquardt; 16.01.2013, 21:32.
          Christian

          Comment


          • #20
            wenn ich ehrlich bin: keine Ahnung! ich dachte das PHP script schreibt in die DB?!?

            Was kann ich dann besser machen? Hab mir jetzt fast alle texte und foren zu dem Thema gelesen. Aber wie gesagt keiner geht speziell von meinem Fall aus

            Comment


            • #21
              Tja, lerne die Grundlagen

              http://php.net/manual/de/book.mysql.php

              Konkrete Hilfe wird schwer, da du ja ein vorhandenes Script ändern willst.

              Grundsätzlich muss man die Verbindung zur DB herstellen, das SQL-Statement erzeugen, das Statement absetzen und das Ergebnis auswerten.

              So jedenfalls wird das nix
              Christian

              Comment


              • #22
                Das ist schon alles da, und es hat bisher auch alles funktioniert was ich wollte und das war echt ned wenig. Nur darab beiß ich mir die Zähne aus. Die verbindung zu DB ist ja auch da, alle Felder werden brav gespeichert und übernommen. Ich möchte lediglich noch hinbekommen, das wenn icn einer Spalte Frau steht das automatisch in eine andere geehrte und bei Herr eben geehrter steht. Das kann doch ned so schwer ein? =(

                Comment


                • #23
                  Offenbar schon, da du

                  - nicht weißt, was ein SQL-Statement ist
                  - nicht weißt, WIE das einzufügen ist
                  - nicht weißt, WO das in deinem Script hinkommt

                  Da keiner dein Script kennt, ist -wie schon gesagt - konkrete Hilfe schwierig.

                  Das Problem wäre also zu zerlegen in

                  Wie sieht das SQL-Staement aus (jedenfalls nicht PHP-Code). Dazu ist die Kenntnis der Tabellen und Spalten erorderlich

                  und

                  Wo ist das im Script mit welchen PHP-Mitteln einzufügen. Dazu ist die Kenntnis es Scripts erforderlich
                  Christian

                  Comment


                  • #24
                    Code:
                    <?php require_once('../Connections/Kundenstamm.php'); ?>
                    <?php require_once('../Connections/anmeldung.php'); ?>
                    <?php
                    if (!isset($_SESSION)) {
                      session_start();
                    }
                    $MM_authorizedUsers = "";
                    $MM_donotCheckaccess = "true";
                    
                    // *** Restrict Access To Page: Grant or deny access to this page
                    function isAuthorized($strUsers, $strGroups, $UserName, $UserGroup) { 
                      // For security, start by assuming the visitor is NOT authorized. 
                      $isValid = False; 
                    
                      // When a visitor has logged into this site, the Session variable MM_Username set equal to their username. 
                      // Therefore, we know that a user is NOT logged in if that Session variable is blank. 
                      if (!empty($UserName)) { 
                        // Besides being logged in, you may restrict access to only certain users based on an ID established when they login. 
                        // Parse the strings into arrays. 
                        $arrUsers = Explode(",", $strUsers); 
                        $arrGroups = Explode(",", $strGroups); 
                        if (in_array($UserName, $arrUsers)) { 
                          $isValid = true; 
                        } 
                        // Or, you may restrict access to only certain users based on their username. 
                        if (in_array($UserGroup, $arrGroups)) { 
                          $isValid = true; 
                        } 
                        if (($strUsers == "") && true) { 
                          $isValid = true; 
                        } 
                      } 
                      return $isValid; 
                    }
                    
                    $MM_restrictGoTo = "../index.php";
                    if (!((isset($_SESSION['MM_Username'])) && (isAuthorized("",$MM_authorizedUsers, $_SESSION['MM_Username'], $_SESSION['MM_UserGroup'])))) {   
                      $MM_qsChar = "?";
                      $MM_referrer = $_SERVER['PHP_SELF'];
                      if (strpos($MM_restrictGoTo, "?")) $MM_qsChar = "&";
                      if (isset($QUERY_STRING) && strlen($QUERY_STRING) > 0) 
                      $MM_referrer .= "?" . $QUERY_STRING;
                      $MM_restrictGoTo = $MM_restrictGoTo. $MM_qsChar . "accesscheck=" . urlencode($MM_referrer);
                      header("Location: ". $MM_restrictGoTo); 
                      exit;
                    }
                    
                    ?>
                    <?php
                    function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
                    {
                      $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;
                    
                      switch ($theType) {
                        case "text":
                          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
                          break;    
                        case "long":
                        case "int":
                          $theValue = ($theValue != "") ? intval($theValue) : "NULL";
                          break;
                        case "double":
                          $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
                          break;
                        case "date":
                          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
                          break;
                        case "defined":
                          $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
                          break;
                      }
                      return $theValue;
                    }
                    
                    $editFormAction = $_SERVER['PHP_SELF'];
                    if (isset($_SERVER['QUERY_STRING'])) {
                      $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
                    }
                    $title = 'Datensatz wurde erfolgreich aktualisiert';
                    $kundennummer = $_GET['kundennummer'];
                    if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "Auftragsseite")) {
                      $updateSQL = sprintf("UPDATE kundendatenbank SET Anrede=%s, Titel=%s, Vorname=%s, Name=%s, Strasse=%s, Plz=%s, Ort=%s, Telefon=%s, Geburtsdatum=%s, geehrte=%s WHERE Kundennummer=$kundennummer",
                                           GetSQLValueString($_POST['Anrede'], "text"),
                                           GetSQLValueString($_POST['Titel'], "text"),
                                           GetSQLValueString($_POST['Vorname'], "text"),
                                           GetSQLValueString($_POST['Name'], "text"),
                                           GetSQLValueString($_POST['Strasse'], "text"),
                                           GetSQLValueString($_POST['Plz'], "text"),
                                           GetSQLValueString($_POST['Ort'], "text"),
                                           GetSQLValueString($_POST['Telefon'], "text"),
                                           GetSQLValueString($_POST['Geburtsdatum'], "text"),
                                           GetSQLValueString($_POST['geehrte'], "text"),
                                           GetSQLValueString($_POST['Kundennummer'], "text"));
                    
                      mysql_select_db($database_Kundenstamm, $Kundenstamm);
                      $Result1 = mysql_query($updateSQL, $Kundenstamm) or die(mysql_error());
                    
                      $updateGoTo = "kundeanzeigen.php?title=$title";
                      if (isset($_SERVER['QUERY_STRING'])) {
                        $updateGoTo .= (strpos($updateGoTo, '?')) ? "&" : "?";
                        $updateGoTo .= $_SERVER['QUERY_STRING'];
                      }
                      header(sprintf("Location: %s", $updateGoTo));
                    }
                    
                    mysql_select_db($database_Kundenstamm, $Kundenstamm);
                    $query_Kundenstamm2 = "SELECT * FROM kundendatenbank WHERE Kundennummer = '$kundennummer'";
                    $Kundenstamm2 = mysql_query($query_Kundenstamm2, $Kundenstamm) or die(mysql_error());
                    $row_Kundenstamm2 = mysql_fetch_assoc($Kundenstamm2);
                    $totalRows_Kundenstamm2 = mysql_num_rows($Kundenstamm2);
                    
                    ?>
                    Code:
                    SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
                    SET time_zone = "+00:00";
                    
                    --
                    -- Datenbank: `usr_web200_1`
                    --
                    
                    -- --------------------------------------------------------
                    
                    --
                    -- Tabellenstruktur für Tabelle `kundendatenbank`
                    --
                    
                    CREATE TABLE IF NOT EXISTS `kundendatenbank` (
                      `Kundennummer` varchar(50) COLLATE latin1_general_ci NOT NULL,
                      `Anrede` varchar(50) COLLATE latin1_general_ci NOT NULL,
                      `Titel` varchar(50) COLLATE latin1_general_ci NOT NULL,
                      `Vorname` varchar(50) COLLATE latin1_general_ci NOT NULL,
                      `Name` varchar(50) CHARACTER SET latin1 COLLATE latin1_german1_ci NOT NULL,
                      `Strasse` varchar(250) COLLATE latin1_general_ci NOT NULL,
                      `Plz` varchar(50) COLLATE latin1_general_ci NOT NULL,
                      `Ort` varchar(50) COLLATE latin1_general_ci NOT NULL,
                      `Telefon` varchar(50) COLLATE latin1_general_ci NOT NULL,
                      `Geburtsdatum` varchar(50) COLLATE latin1_general_ci DEFAULT NULL,
                      `geehrte` varchar(50) COLLATE latin1_general_ci NOT NULL,
                       KEY `Telefon` (`Telefon`)
                    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
                    Das ist der bisherige Code (den Teil über den wir hier sprechen ist erstmal wieder gelöscht da er nicht funktioniert)

                    Comment


                    • #25
                      Nunja, von wem ist der Code?

                      Jetzt musst du einen finden, der Zeit und Muße hat, das zu analysieren und der dann das SQL-Statement einfügt
                      Christian

                      Comment


                      • #26
                        das ist ein grundkonstrukt einer einfachen kundendatenbank das ich mir vor einiger Zeit gekauft habe. Ich habe gelernt es zu erweitern und kenne mich mittlerweile ein wenig damit aus (auch wenn ich keine eigenen Codes schreiben kann)

                        Deswegen bin ich ja hier, ich hoffe einer von euch ist so freundlich und hilft mir =)

                        Comment


                        • #27
                          Originally posted by specialops View Post
                          wenn ich ehrlich bin: keine Ahnung! ich dachte das PHP script schreibt in die DB?!?
                          Wenn das Deine Antwort auf die Frage von Christian ist, ob Du den Unterschied zwischen PHP und SQL kennst, dann denke ich mal, ist an dieser Stelle Schluß. Dir fehlt offenbar jeglicher Überblick.

                          Was kann ich dann besser machen? Hab mir jetzt fast alle texte und foren zu dem Thema gelesen. Aber wie gesagt keiner geht speziell von meinem Fall aus

                          Erst einmal verstehen, was so alles grob im Kontext Webserver, PHP, Datenbank, SQL abläuft. Wenn Dir nicht einmal klar ist, wie die Aufgabenverteilung zwischen diesen Komponenten ist, bis Du in einem 'Entwickler-Forum' grundfalsch. Es gibt mehr als genug Einführungskurse in die Thematik.


                          Andreas

                          Comment


                          • #28
                            Originally posted by specialops View Post
                            Code:
                            <?php
                            select (case 
                                   when Anrede = 'Herr' then 'geehrter' 
                                   else 'geehrte' 
                                   end)
                              from $Kundenstamm2;
                            ?>
                            Fehlermeldung: Parse error: syntax error, unexpected T_CASE, expecting ')' in /kundebearbeiten.php on line 50
                            Die Fehlermeldung ist eine Meldung von PHP! Und das ist auch normal, schließlich ist das was du da ausführen willst KEIN gültiger PHP-CODE!
                            Du kannst nicht einfach SQL-Code in PHP schreiben und dann erwarten, dass automatisch eine Abfrage an die DB geschickt wird. Hier fehlen offensichtlich elementarste Grundlagen. Wenn du selbst programmieren willst, dann solltest du das Lernen, Handbücher und Beispiele lesen und bist hier richtig. Wenn du etwas programmiert haben möchtest, dann bist du hier falsch und solltest ein Angebot unter Jobs und Projekte einstellen.

                            Gruß Falk
                            Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

                            Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

                            Comment

                            Working...
                            X