Portal > Foren > PHP > PHP-Programmierung > Datenbankabgleich Problem :(
Antwort
 
Themen-Optionen Thema durchsuchen
Alt 09.11.2005, 11:35 Nach oben    #1
Erfahrener Benutzer
 
Benutzerbild von Doggi
 
Registriert seit: 26.10.2005
Ort: Basel
Beiträge: 115
Standard Datenbankabgleich Problem :(

PHP-Code:
 
<?php
error_reporting
(E_ALL); 
@include 
'config.php';
include 
'constant.php'// Konfigurationsdatei laden 
 
//Variablen aus Formular übergeben
$name $_POST['name'];
$straße $_POST['straße'];
$hausnr $_POST['hausnr'];
$plz $_POST['plz'];
$ort $_POST['ort'];
$mail $_POST['mail'];
 
@
mysql_connect(MYSQL_HOSTMYSQL_USERMYSQL_PASS) OR die(mysql_error()); 
mysql_select_db(MYSQL_DATABASE) OR die(mysql_error()); 
$sql "SELECT 
               Mail 
          FROM 
               Gewinnspiel "


$result mysql_query($sql) OR die(mysql_error()); 
 
$kmail"mail"//Falls die Datenbank noch leer ist.
//Standardwert um Fehlerausgabe zu vermeiden. Ist eigentlich wurst.
 
if(mysql_num_rows($result)) { // gucken ob was im Query drinsteckt 
   
while($row mysql_fetch_assoc($result)) {
    
$kmail=$row['Mail']; //Problem wenn Datenbank leer ist!
     
if ($mail==$kmail){
 
        echo 
"Entschuldigen Sie, jeder darf nur einmal teilnehmen. <br />\n";
     } 
   }
} else { echo 
" *1 Die mail ist nicht vorhanden.<br />\n";}
// *1 hier soll später der code zum eintragen der Daten in die Datenbank rein. 
 
?>
Tja, soweit die Theroie. Leider funktioniert die if Schleife innerhalb der While Schleife nicht. Frust macht sich breit. Ich möchte prüfen ob die Mail schonmal vorhanden ist, da ich einen Doppeleintrag verhindern möchte um die Datenbank nicht unnötig durch doppeltes senden des Formulars zu füllen. Wo ist hier mein Denkfehler? Bitte nicht über den Code meckern, ich arbeite mit PHP erst seit zwei Monaten
Bin auch für andere Lösungsansätze dankbar...

Geändert von Doggi (09.11.2005 um 11:50 Uhr)
Doggi ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 09.11.2005, 13:17 Nach oben    #2
Goldman.de
 
Benutzerbild von J33d3X
 
Registriert seit: 09.10.2005
Ort: Frankfurt am Main
Beiträge: 190
Standard

fehlermeldung ?

mal versuchen

if ( TRUE == isset($mail) && FALSE==empty($mail)
&& $mail === $kmail ) {
echo 'ups .... na na na du Sack';
}

ggf. die variablen einfach mal per var_dump($variable) prüfen

mfg


PS:

warum fragst du die Mail nicht direkt ab ?

if ( TRUE == isset($mail) && FALSE==empty($mail)) {
// hier jetzt die sqlabfrage
SELECT * FROM tabelle WHERE Mail = '$mail'

dann
if (mysql_num_rows($sql) > 0) {
echo 'ups .... na na na du Sack';
}
}

Geändert von J33d3X (09.11.2005 um 13:20 Uhr)
J33d3X ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 09.11.2005, 14:28 Nach oben    #3
Erfahrener Benutzer
 
Benutzerbild von Doggi
 
Registriert seit: 26.10.2005
Ort: Basel
Beiträge: 115
Standard

Es sieht so aus als hätte mir letzteres geholfen. musste zwar noch ein wenig probieren, aber dank Dir geht es jetzt. und zwar so:
PHP-Code:
        if ( TRUE == isset($mail) && FALSE==empty($mail)) {
            
// hier jetzt die sqlabfrage
            
$sql =     " SELECT Mail FROM Gewinnspiel WHERE Mail = '$mail' 
                    "
;
            
$result mysql_query($sql) OR die(mysql_error());
    }else{ echo 
"Bitte geben Sie eine email-Adresse an!";
     }
        if (
mysql_num_rows($result) >) {
            echo 
'Eintrag bereits vorhanden';

        }else {echo 
"Code ausführen zum eintragen in die Datenbank.";} 
DANKE FÜR DIE HILFE !!!

Geändert von Doggi (09.11.2005 um 14:46 Uhr)
Doggi ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 09.11.2005, 14:55 Nach oben    #4
Goldman.de
 
Benutzerbild von J33d3X
 
Registriert seit: 09.10.2005
Ort: Frankfurt am Main
Beiträge: 190
Standard

if (mysql_num_rows($result) >0 ) {

diese Bedingung wird auch ausgeführt wenn $mail FALSE ist
da solltest du nochmal schauen das ist nicht korrekt so
auch wäre es sinnvoll ( als ratschlag ) dir eine vernünftige Formatierung zuzulegen ... das vereinfacht vieles

ich hätt es in etwa so gemacht

PHP-Code:
<?php
// {{{ Header
/**
 *
 * filename:     test.php
 *
 * @autor:       JMueller
 * @contact:     info at swbulletin dot de
 * @modified:    11/09/05
 * @version:     1.0.0.1
 */
// }}}

error_reporting(E_ALL);

if ( 
TRUE == isset($mail) && FALSE==empty($mail) )
{
    
$statement "SELECT Mail FROM Gewinnspiel WHERE Mail = '$mail'";
    
$result mysql_query($statement) OR die(mysql_error());
    
    if (
mysql_num_rows($result) >)
    {
        echo 
'Eintrag bereits vorhanden';
    } else
    {
        echo 
"Code ausführen zum eintragen in die Datenbank.";
    }
} else
{
    echo 
"Bitte geben Sie eine email-Adresse an!";
}

/**
 * Local Variables:
 * mode: php
 * tab-width: 4
 * c-basic-offset: 4
 * End:
 */
?>

J33d3X ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 09.11.2005, 15:56 Nach oben    #5
Erfahrener Benutzer
 
Benutzerbild von Doggi
 
Registriert seit: 26.10.2005
Ort: Basel
Beiträge: 115
Standard

Ich danke Dir für die Hilfe, hatte grad wieder ein Problem, das Du mal wieder gelöst hast, ohne das ich gefragt habe. Jetzt werd ich erstmal auswerten wo genau das Problem war. (will ja auch wat lernen )

Ich klau jetzt mal einfach den Code da oben Hoffe das geht klar.

// Edit, hab mal geguckt, Recht hast du, ein wenig mehr Übung und Ordnungmit der Struktur im Code und es würde mir leichter fallen den Kram zu verstehen. Aber ich bin ja lernfähig

//Edit 2

wenn $mail FALSE ist wir doch

PHP-Code:
echo "Bitte geben Sie eine email-Adresse an!"
ausgegeben

Geändert von Doggi (09.11.2005 um 16:06 Uhr)
Doggi ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 09.11.2005, 16:09 Nach oben    #6
Goldman.de
 
Benutzerbild von J33d3X
 
Registriert seit: 09.10.2005
Ort: Frankfurt am Main
Beiträge: 190
Standard

jupp
J33d3X ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

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 sind an
PingBacks sind an
RefBacks sind aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Problem E-Mails zu senden Jann Hendrik Plauderecke 7 25.05.2007 21:37
Logisches Problem beim einsatz von Ereignissen Prophet Allgemeine Java-Programmierung 19 05.06.2006 22:08
Problem mit Cookie und Reloads... Bookworm PHP-Programmierung 10 13.04.2006 12:09
SWT_AWT Bridge redraw() problem csae4773 Desktop-Applikationen und Grafik 4 23.11.2005 20:43
OSX + Eclipse 3.1 Problem bacarni Eclipse 3 29.07.2005 21:19


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:11 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45