php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 05.01.2012, 12:57  
YEP
Erfahrener Benutzer
 
Registriert seit: 24.08.2009
Beiträge: 116
PHP-Kenntnisse:
Anfänger
YEP befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Doppelte Einträge in Session verhindern.

Hallo allerseits.

Ich komme mal wieder nicht so recht weiter.
Ich möchte gerne, dass doppelte Einträge in der Session verhindert werden:

Hier mal der Aufruf:

PHP-Code:
echo '<form name="merken" action="" method="POST">';
            echo 
'<input type="hidden" name="merken" value="'$row->objektnr '">';
            echo 
'<a href="javascript:document.merken.submit();" return false;>Objekt merken</a>';
            echo 
'</form>'
und hier die Verarbeitung:

PHP-Code:
$verbindung = @mysqli_connect($server$benutzer$passwort);
         
                if (
$verbindung){
                     
mysqli_select_db($verbindung$datenbank);

                if(
mysqli_error($verbindung)){
                      
                  echo 
'Fehler: ' mysqli_error($verbindung);
                            
                  }else{

                    if(isset(
$_POST['merken'])) {
                                        
                        if(isset(
$_SESSION['merk_array']['objektnr'])) {
                        
                        foreach(
$_SESSION['merk_array']['objektnr'] as $key) {
                        
                        
$key ==  $_POST['merken'];
                        
                        } 
                            if(
$key ==  $_POST['merken']) {
                            
                            break;
                            }
                             
                    }    else    { 
                    
                                                                                        
                        
$sql "SELECT objektnr FROM objekte WHERE objektnr = '" $_POST['merken'] . "';";
                                                                                        
                        
$auswahl mysqli_query($verbindung$sql);
                                            
                            
$_SESSION['merk_array'][] = array();
                                                        
                            while(
$merken mysqli_fetch_assoc($auswahl))
                            {
                       
                            
$_SESSION['merk_array']['objektnr'][] = $merken['objektnr'];
                                            
                            }
                                
                        }
                    } 
                }    
            } 
Das Problem ist der erstel Teil des Script wo überprüft werden soll, ob die Varialble sich schon in der Session befindet. Beim ersten Durchlauf geht die Variable glatt durch, das die Session ja noch leer ist, nur alle anderen nicht.

Danke für Hilfe.

Gruß
YEP ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 05.01.2012, 13:17  
meikel
Gast
 
Beiträge: n/a
Standard

Falsche Schachtelung.
  Mit Zitat antworten
Alt 05.01.2012, 13:36  
Erfahrener Benutzer
 
Registriert seit: 03.08.2010
Beiträge: 1.141
PHP-Kenntnisse:
Anfänger
hausl wird schon bald berühmt werdenhausl wird schon bald berühmt werden
Standard

Was soll das hier machen?

PHP-Code:
    foreach($_SESSION['merk_array']['objektnr'] as $key) { 
        
$key ==  $_POST['merken'];
    } 
__________________
Keine Zahl != ein Zeichen das keine Zahl ist
hausl ist offline   Mit Zitat antworten
Alt 05.01.2012, 14:12  
YEP
Erfahrener Benutzer
 
Registriert seit: 24.08.2009
Beiträge: 116
PHP-Kenntnisse:
Anfänger
YEP befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Falsche Schachtelung.
Ist sicher was dran, habe auch schon mehrere Varianten probiert. Evftl. ein Hinweis von Dir?


Zitat:
Zitat von hausl Beitrag anzeigen
Was soll das hier machen?

PHP-Code:
    foreach($_SESSION['merk_array']['objektnr'] as $key) { 
        
$key ==  $_POST['merken'];
    } 
Hier denke ich das Array nach der Variable zu durchsuchen, um festzustellen, ob es im Array vorhenden ist oder nicht.
YEP ist offline   Mit Zitat antworten
Alt 05.01.2012, 14:15  
Erfahrener Benutzer
 
Benutzerbild von Dark Guardian
 
Registriert seit: 10.10.2009
Beiträge: 2.630
PHP-Kenntnisse:
Fortgeschritten
Dark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekannt
Standard

PHP-Code:
<?php
if(isset($_POST['merken'])) {
                    
    if(isset(
$_SESSION['merk_array']['objektnr'])) {
    
        foreach(
$_SESSION['merk_array']['objektnr'] as $key) {
            
$key == $_POST['merken'];
        }
         
        if(
$key == $_POST['merken']) {
            break;
        }
     
    } else {
Mit vernünftiger Einrückung sollte dir der Fehler ins Auge springen.
__________________
"Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".
Dark Guardian ist offline   Mit Zitat antworten
Alt 05.01.2012, 17:21  
YEP
Erfahrener Benutzer
 
Registriert seit: 24.08.2009
Beiträge: 116
PHP-Kenntnisse:
Anfänger
YEP befindet sich auf einem aufstrebenden Ast
Standard

Irgendwie komme ich immer noch nicht klar.

Ich habe das ganze noch mal etwas durchdacht und ein paar Änderungen vorgenommen:

PHP-Code:
if(isset($_POST['merken'])) {
                    
                        if(isset(
$_SESSION['merk_array']['objektnr'])) {
                        
                            foreach(
$_SESSION['merk_array']['objektnr'] as $key) {
                                                         
                            if(
$key == $_POST['merken']) {
                                
                                break;
                            
                                } else {
                            
                                                                                                
                                    
$sql "SELECT objektnr FROM objekte WHERE objektnr = '" $_POST['merken'] . "';";
                                                                                                    
                                    
$auswahl mysqli_query($verbindung$sql);
                                                        
                                        
$_SESSION['merk_array'][] = array();
                                                                    
                                        while(
$merken mysqli_fetch_assoc($auswahl))
                                        {
                                   
                                        
$_SESSION['merk_array']['objektnr'][] = $merken['objektnr'];
                                                        
                                        }
                                    }    
                                }
                            } 
                        } 
Nun schreibt er mir zwar weitere Variablen in das Array, aber leider auch die breits schon enthaltenen. Muss ich das foreach vor dem else schließen...jaje bin ein wenig durch heute.

Danke für weitere Hilfen.
YEP ist offline   Mit Zitat antworten
Alt 05.01.2012, 17:37  
Erfahrener Benutzer
 
Registriert seit: 22.07.2004
Beiträge: 226
DirkHo befindet sich auf einem aufstrebenden Ast
Standard

Hallo!

Anstelle der foreach-Schleife kannst du auch einfach die Funktion in_array() (http://de2.php.net/in_array) und die Abfrage negieren -> wenn nicht in_array(), dann mach das SQL-Zeug und schreibe es in die Session.

Ist kürzer und um einiges übersichtlicher.

Viele Grüße,

Dirk
DirkHo ist offline   Mit Zitat antworten
Alt 05.01.2012, 17:39  
Erfahrener Benutzer
 
Benutzerbild von Dark Guardian
 
Registriert seit: 10.10.2009
Beiträge: 2.630
PHP-Kenntnisse:
Fortgeschritten
Dark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekannt
Standard

Logisch korrekter Ablauf

- prüfen ob $_POST merken gesetzt ist
- Eine Prüfvariablöe mit false initialisieren
- prüfen ob bereits Objekte hinzugefügt wurden ($_SESSION['objektnr'] ist ein Array?)
---Wenn ja dann
------Mit in_array prüfen und wert der Prüfvariablen zuweisen
---Wenn nein
------dann das Array erzeugen
- Wenn Prüfvariable immernoch false beinhaltet dann Wert eintragen
__________________
"Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".
Dark Guardian ist offline   Mit Zitat antworten
Alt 05.01.2012, 17:50  
YEP
Erfahrener Benutzer
 
Registriert seit: 24.08.2009
Beiträge: 116
PHP-Kenntnisse:
Anfänger
YEP befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von DirkHo Beitrag anzeigen
Hallo!

Anstelle der foreach-Schleife kannst du auch einfach die Funktion in_array() (http://de2.php.net/in_array) und die Abfrage negieren -> wenn nicht in_array(), dann mach das SQL-Zeug und schreibe es in die Session.

Ist kürzer und um einiges übersichtlicher.

Viele Grüße,

Dirk
Ich danke Dir für den Tipp Dirk, das war jetzt Gold wert.

Dark Guardian ich danke für deine Ausführungen, das Problem letzendlich war, dass er die Erste Variable nicht noch einmal in Array geschrieben hat, aber die zweite hat er immer wieder durchgelassen.(z.B. VariableA, VariableB, VariableB, usw.) Sicher ein Problem der Struktur, aber mit dem was Dirk gepostet hat, geht es wirklich ganz einfach, vielen Dank noch mal an alle
YEP ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

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 an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Help! Doppelte Warenkorb Einträge bei Bestellungen?! obsius Datenbanken 5 13.04.2011 00:34
[Erledigt] Doppelte Einträge herausfinden skandler Datenbanken 5 24.08.2010 22:33
SessionHandler - Sessions in einer Datenbank #Avedo Software-Design 11 04.05.2009 15:44
[Erledigt] doppelte einträge in der Datenbank david1985 PHP Tipps 2009 4 09.04.2009 12:33
[Erledigt] Session array mit doppelte einträge ? ? ? c01001 Beitragsarchiv 3 12.03.2009 01:49
Doppelte einträge löschen Riks Datenbanken 6 25.04.2007 19:29
doppelte Einträge filtern TailerD Datenbanken 7 12.07.2006 13:29
Doppelte Einträge aus Array Filtern Robstar Datenbanken 25 01.06.2006 11:56
Sicherung gegen doppelte Einträge Maho88 PHP Tipps 2006 5 02.01.2006 12:49
doppelte einträge löschen! Datenbanken 3 09.08.2005 14:38
doppelte session verhindern lindner PHP Tipps 2005-2 7 24.07.2005 15:21
doppelte Einträge aus Datenbank anzeigen Lia PHP Tipps 2005 9 24.05.2005 14:49
[Erledigt] Doppelte Einträge aus Textdatei entfernen PHP Tipps 2004 11 17.10.2004 15:00
doppel einträge in db verhindern? themonk PHP Tipps 2004 2 03.07.2004 14:26
Doppelte Einträge prüfen Datenbanken 12 15.06.2004 20:30

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php doppelte session, javascript doppelte einträge unterbinden, doppelte posts verhindern php, php doppelte einträge verhindern, php textdateien doppelte einträge mit $_session löschen, doppelte einträge vermeiden echo, foreach sql doppelt php schreiben, in_array negiert, doppelte session verhindern, php $_post doppeleinträge verhindern, warenkorb doppeleintrag, php session value doppelt, doppelte einträge verhindern in sql, doppelte einträge in php vermeiden

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:37 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum