ilch Forum » Allgemein » HTML, PHP, SQL,... » datenbank wert umtragen

Geschlossen
  1. #1
    User Pic
    lordrepha Mitglied
    Registriert seit
    11.03.2006
    Beiträge
    1.362
    Beitragswertungen
    22 Beitragspunkte
    Ich stecke gerade fest... um ehrlich zu sein ghet es immer noch um die 1000 Foren Post titel selber wählen... aber die Frage ist zu speziell deshlab neues thema..

    Hier erstmal der
    if ( $row['posts'] >= 500 ) {$aendern = "UPDATE prefix_user Set Forumtitel2 = Forumtitel, WHERE id = ".$_SESSION['authid']
          ; $update = mysql_query($aendern); }
    		else {$Forumtitel2 = "";}


    Ich brauch nach der if abfrgae ein code den den Wert Forumtitel nimmt und ihn in der Datenbank unter Forumtitel2 speichert.

    kann mir da jemand helfen??
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Das sollte so schon stimmen, wenn Forumtitel und Forumtitel2 Felder in der Datenbanktabelle prefix_user sind, aber dann hätte der else Zweig wenig Sinn.
    So einfach nur mit dem kleinen Stück Code kann man nur spekulieren bzw. mit den wenigen Informationen, die du gibst.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    lordrepha Mitglied
    Registriert seit
    11.03.2006
    Beiträge
    1.362
    Beitragswertungen
    22 Beitragspunkte
    Also gut Hier ausführlich...

    Ich habe mir folgendes prinzip überleg. IM Profiel gibt es ein Formularfeld mit dem titel "Forumtitel". Was dort eingetragen wird schreibt er in die datenbank tabelle in die spalte "Forumtitel".Nun soll der untestehende code Prüfen ob es eine bestimmte anzahl an Posts gibt und in die Spalte "Forumtitel2" das eintargen was in der Spalte "Forumtitel" steht.

    das hat folgenden sinn... da die Variable Forumtitel IMMER defeniert werden kann steht im Forum unter dem Avatar Forumtitel2 weil es diese variable erst dann gibt wennauch wirklich die erforderlcihe Post anzahl gibt.

    hier nun der vollständige Code:

    Es steht mit einem Kommentar dran wo sich der code befindet

    <?php 
    #   Copyright by: Manuel
    #   Support: www.ilch.de
    
    
    defined ('main') or die ( 'no direct access' );
    
    
    $title = $allgAr['title'].' :: Users :: Profil';
    $hmenu  = $extented_forum_menu.'<a class="smalfont" href="?user">Users</a><b> &raquo; </b> Profil'.$extented_forum_menu_sufix;
    $design = new design ( $title , $hmenu, 1, 'forum/index.htm' );
    
    #Forumtitel selber wählen
    $abfrage = 'SELECT posts FROM `prefix_user` WHERE id = "'.$_SESSION['authid'].'"';
    		
    		
    		
    
    if ( $_SESSION['authright'] <= -1 ) {  
    
    if ( empty ($_POST['submit']) ) {
      $design->header();
    	$abf = 'SELECT email,posts,wohnort,homepage,aim,msn,icq,yahoo,avatar,status,staat, Hauptklasse,Forumtitel,Forumtitel2,gebdatum,sig,opt_pm_popup,opt_pm,opt_mail,geschlecht,spezrank FROM `prefix_user` WHERE id = "'.$_SESSION['authid'].'"';
    	$erg = db_query($abf);
    	if ( db_num_rows($erg) > 0 ) {
    	  $row = db_fetch_assoc($erg);
    		
    		$tpl = new tpl ('user/profil_edit');
    		$row['staat'] = '<option></option>'.arliste ( $row['staat'] , get_nationality_array() , $tpl , 'staat' );
    		$row['sel_klasse_'.$row['Hauptklasse']] = 'selected';
    		$row['sel_klasse_'.$row['Forumtitel']] = 'selected';
        $row['geschlecht0'] = ( $row['geschlecht'] < 1 ? 'checked' : '' );
        $row['geschlecht1'] = ( $row['geschlecht'] == 1 ? 'checked' : '' );
        $row['geschlecht2'] = ( $row['geschlecht'] == 2 ? 'checked' : '' );
        if ( $row['status'] == 1 ) { $row['status1'] = 'checked'; $row['status0'] = ''; } else { $row['status1'] = ''; $row['status0'] = 'checked'; }
        if ( $row['opt_mail'] == 1 ) { $row['opt_mail1'] = 'checked'; $row['opt_mail0'] = ''; } else { $row['opt_mail1'] = ''; $row['opt_mail0'] = 'checked'; }
        if ( $row['opt_pm'] == 1 ) { $row['opt_pm1'] = 'checked'; $row['opt_pm0'] = ''; } else { $row['opt_pm1'] = ''; $row['opt_pm0'] = 'checked'; }
        if ( $row['opt_pm_popup'] == 1 ) { $row['opt_pm_popup1'] = 'checked'; $row['opt_pm_popup0'] = ''; } else { $row['opt_pm_popup1'] = ''; $row['opt_pm_popup0'] = 'checked'; }
        #Forumtitel selber wählen
    	if ( $row['posts'] >= 500 ) {$aendern = "UPDATE prefix_user Set Forumtitel2 = Forumtitel, WHERE id = ".$_SESSION['authid']
          ; $update = mysql_query($aendern); }
    		else {$Forumtitel2 = "";}
    		#Forumtitel selber wählen ENDE
        $row['avatarbild'] = ( file_exists ( $row['avatar'] ) ? '<img src="'.$row['avatar'].'" alt=""><br />' : '' );
        $row['Fabreite'] = $allgAr['Fabreite'];
        $row['Fahohe'] = $allgAr['Fahohe'];
        $row['Fasize'] = $allgAr['Fasize'];
        $row['forum_max_sig'] = $allgAr['forum_max_sig'];
        
    	$tpl->set('Forumtitel2', $Forumtitel2);
    		
        $tpl->set_ar_out($row,0);
    
    		profilefields_change ( $_SESSION['authid'] );
    		$tpl->out(1);
    		
      } else {
        $tpl = new tpl ( 'user/login.htm' );
        $tpl->set_out('WDLINK','index.php',0);
    	}
    	
    } else {  # submit
    	 
      # change poassword
    	if ( !empty($_POST['np1']) AND !empty($_POST['np2']) AND !empty($_POST['op'])) { 
        if ($_POST['np1'] == $_POST['np2']) { 
    		  $akpw = db_result(db_query("SELECT pass FROM prefix_user WHERE id = ".$_SESSION['authid']),0);
    			if ($akpw == md5($_POST['op'])) {
    			  $newpw = md5($_POST['np1']); 
    				db_query("UPDATE prefix_user SET pass = '".$newpw."' WHERE id = ".$_SESSION['authid']);
            setcookie(session_und_cookie_name(), $_SESSION['authid'].'='.$newpw, time() + 31104000, "/" );
    				$fmsg = $lang['passwortchanged'];
    			} else {
    		    $fmsg = $lang['passwortwrong'];
    		  }
    		} else {
    		  $fmsg = $lang['passwortnotequal']; 
    	  }
      }
    	
      # avatar speichern START
    			$avatar_sql_update = '';
          if ( !empty ( $_FILES['avatarfile']['name'] ) ) {
    				$file_tmpe = $_FILES['avatarfile']['tmp_name'];
    				$file_type = $_FILES['avatarfile']['type'];
    				$file_size = $_FILES['avatarfile']['size'];
    				$file_name = $_FILES['avatarfile']['name'];
            $fmsg = $lang['avatarisnopicture']; 
    				if ( substr ( $file_type , 0 , 6 ) == 'image/' ) {
    				  $endung = preg_replace("/.*\.([^\.]+)/", "\\1", $file_name);
    				  $size   = getimagesize($file_tmpe);
              $breite = $size[0];
              $hoehe  = $size[1];
              $fmsg   = $lang['avatarcannotupload']; 
    				  if ( $file_size <= $allgAr['Fasize'] AND $breite <= $allgAr['Fabreite'] AND $hoehe <=  $allgAr['Fahohe'] ) {
    					  $neuer_name = 'include/images/avatars/'.$_SESSION['authid'].'.'.$endung;
    						@unlink (db_result(db_query("SELECT avatar FROM prefix_user WHERE id = ".$_SESSION['authid']),0));
                move_uploaded_file ( $file_tmpe , $neuer_name );
                $avatar_sql_update = "avatar = '".$neuer_name."',";
                $fmsg = $lang['pictureupload']; 
    					}
    				}
    			} elseif ( isset($_POST['avatarloeschen']) ) {
            $fmsg = $lang['picturedelete']; 
            @unlink (db_result(db_query("SELECT avatar FROM prefix_user WHERE id = ".$_SESSION['authid']),0));
            $avatar_sql_update = "avatar = '',";
          }
      
      # avatar speichern ENDE
      
      
      # email aendern
      if ($_POST['email'] != $_POST['aemail']) {
        $id = $_SESSION['authid'].'||'.md5 (uniqid (rand()));
        db_query("INSERT INTO prefix_usercheck (`check`,email,datime,ak)
        VALUES ('".$id."','".escape($_POST['email'],'string')."',NOW(),3)");
        $page = $_SERVER["HTTP_HOST"].$_SERVER["SCRIPT_NAME"];
        $text = $lang['changedthemail'] . sprintf ($lang['registconfirmlink'], $page, $id );
        icmail ($_POST['email'], $lang['mail'].' '.$lang['changed'], $text );
        $fmsg = $lang['pleaseconfirmmail'];
      }
      #
      
      
      # statische felder speichern
    		  db_query("UPDATE prefix_user 
    			  SET 
              homepage = '".get_homepage(escape($_POST['homepage'], 'string'))."',
    		  Forumtitel = '".escape($_POST['Forumtitel'], 'string')."',
    		 
              wohnort = '".escape($_POST['wohnort'], 'string')."',
              icq = '".escape($_POST['icq'], 'string')."',
              msn = '".escape($_POST['msn'], 'string')."',
              yahoo = '".escape($_POST['yahoo'], 'string')."',
              ".$avatar_sql_update."
              aim = '".escape($_POST['aim'], 'string')."',
              staat = '".escape($_POST['staat'], 'string')."',
              geschlecht = '".escape($_POST['geschlecht'], 'string')."',
              status = '".escape($_POST['status'], 'string')."',
              opt_mail = '".escape($_POST['opt_mail'], 'string')."',
              opt_pm = '".escape($_POST['opt_pm'], 'string')."',
              opt_pm_popup = '".escape($_POST['opt_pm_popup'], 'string')."',
              gebdatum = '".get_datum(escape($_POST['gebdatum'], 'string'))."',
              sig = '".substr(escape($_POST['sig'], 'string'),0,$allgAr['forum_max_sig'])."',
    		  staat = '".escape($_POST['staat'], 'string')."',
    		  Hauptklasse = '".escape($_POST['Hauptklasse'], 'string')."'
    		  
    				WHERE id = ".$_SESSION['authid']
          );
          
    	   
    	   
    		
    		
    		
    		
      
    	# change other profil fields
      
      profilefields_change_save ( $_SESSION['authid'] );
    	$design->header();
      
    	# definie and print msg
    	$fmsg = ( isset($fmsg) ? $fmsg : $lang['changesuccessful'] );
    	wd('?user-8' , $fmsg  , 3 );
    
    }
    	
    } else {  
    		$tpl = new tpl ( 'user/login' );
    		$tpl->set_out('WDLINK', '?user-8', 0);
    }
    
    $design->footer();
    ?>
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Naja ich würds anders machen, lasse es doch einfach jeden Speichern und Zeige es im Forum nur dann an, wenn er mehr als 500 Posts hat.

    Ansonsten kann man das mit ein bisschen SQL auch direkt in der Abfrage unterbringen, da oben hat es irgendwie nix verloren, weil es dort nicht ums Speichern geht, und es bei jedem Aufruf der Seite ausgeführt wird.
      # statische felder speichern
              db_query("UPDATE prefix_user 
                  SET 
              homepage = '".get_homepage(escape($_POST['homepage'], 'string'))."',
              Forumtitel = '".escape($_POST['Forumtitel'], 'string')."',
             Forumtitel2 = IF(posts>500,Forumtitel,''),
              wohnort = '".escape($_POST['wohnort'], 'string')."',
              icq = '".escape($_POST['icq'], 'string')."',



    Zuletzt modifiziert von Mairu am 16.06.2007 - 11:50:04
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    lordrepha Mitglied
    Registriert seit
    11.03.2006
    Beiträge
    1.362
    Beitragswertungen
    22 Beitragspunkte
    hat funktioniert ist wesentlich einfacher gewesen danke mairu
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu HTML, PHP, SQL,...

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten