[PHP & SQL] Ist wert x in Datenbank vorhanden? Ja--> / Nein -->

Hallo wie im Thema schon nen bischen beschriben, benötige ich eine abfrage ob wein wert ( in meinem falle eine E-Mail ) in einer Datenbank vorhanden ist oder nicht
nach dem schema →

  1. ist wert X in Datenbank vorhanden

  2. wenn ja —>

  3. wenn nein →

wichtig ist auch das der zu suchende wert in der abfrage eine variable ist ( {email} ) diese wird vom loginscript übergeben.

ich hoffe ihr könnt mir helfen …

meine Datenbank heist: mdcp2009
die Tabelle heist: stimmen
die emails stehen in der spalte: email

mfg der_robert

Naja ich würd einen simplen SELECT-Query machen und dann schauen, ob mysql_num_rows Ergebnisse liefert.

[PHP]$sql = „SELECT * FROM stimmen WHERE email = ‚$email‘“;
$result = mysql_query($sql) or die(mysql_error());

if (mysql_num_rows($result)) {
// E-Mail ist enthalten
} else {
// E-Mail ist nicht enthalten
}[/PHP]

MfG Icy

hm … leider wir mir immer " nicht vorhanden" ausgegeben … obwohl die email vorhanden ist

so diehts aus —>

http://img505.imageshack.us/img505/3637/hmmmms6.jpg

is nich da <<<< die ausgabe deines qt mit $email

no <<<< hab ich gerade gefunden ausgabe mir {email}

  1. email <<<< ausgabe als {email} (übergaben vom loginscript)

  2. email <<<< ausgabe als $email

Versuch das:
[php]<?php $sql = @mysql_query("SELECT COUNT(`id`) AS `count` FROM `stimmen` WHERE `email`='$email';"); $res = @mysql_fetch_assoc($sql); if($res['count'] > 0) { echo "Vorhanden."; } ?>[/php]

kommt leider aufs selbe raus … es wird immer ausgegeben „nicht vorhanden“ egal ob vorhanden oder nicht

wenn ich bei deinem qt noch else

[PHP]
{
echo „Nicht Vorhanden.“;
}
[/PHP]

anhänge wird mir auch „Nicht Vorhanden.“ ausgegeben

hier mal der komplette qt

[PHP]

<?php require_once('Connections/MDCP2009.php'); ?> <?php include("login/include.php"); ?> <?php if (!function_exists("GetSQLValueString")) { function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") { $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue; $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($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']); } if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) { $insertSQL = sprintf("INSERT INTO vote (id, kuenstler, email, vorname, nachname, strasse, plz, ort) VALUES (%s, %s, %s, %s, %s, %s, %s, %s)", GetSQLValueString($_POST['id'], "int"), GetSQLValueString($_POST['kuenstler'], "text"), GetSQLValueString($_POST['email'], "text"), GetSQLValueString($_POST['vorname'], "text"), GetSQLValueString($_POST['nachname'], "text"), GetSQLValueString($_POST['strasse'], "text"), GetSQLValueString($_POST['plz'], "text"), GetSQLValueString($_POST['ort'], "text")); mysql_select_db($database_MDCP2009, $MDCP2009); $Result1 = mysql_query($insertSQL, $MDCP2009) or die(mysql_error()); $insertGoTo = "danke.php"; if (isset($_SERVER['QUERY_STRING'])) { $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?"; $insertGoTo .= $_SERVER['QUERY_STRING']; } header(sprintf("Location: %s", $insertGoTo)); } mysql_select_db($database_MDCP2009, $MDCP2009); $query_MDCP2009 = "SELECT kuenstler, email, vorname, nachname, strasse, plz, ort FROM vote"; $MDCP2009 = mysql_query($query_MDCP2009, $MDCP2009) or die(mysql_error()); $row_MDCP2009 = mysql_fetch_assoc($MDCP2009); $totalRows_MDCP2009 = mysql_num_rows($MDCP2009); ?> Unbenanntes Dokument {restricted}
Id:
Kuenstler:
Email:
Vorname:
Nachname:
Strasse:
Plz:
Ort:
 
{logout} <?php $email = "{email}"; $sql = "SELECT * FROM stimmen WHERE email = '{email}'"; $result = mysql_query($sql) or die(mysql_error()); if (mysql_num_rows($result)) { echo ("is da");// E-Mail ist enthalten } else { echo ("is nicht da");// E-Mail ist nicht enthalten } ?>



<?php $sql="SELECT email FROM stimmen WHERE email='$email'"; $query=mysql_query($sql); $num_rows = mysql_num_rows($query); if ($num_rows==1) { echo "yes"; } else { echo "no"; } ?>



<?php echo "$email"; ?>



<?php echo "{email}"; ?> <?php $sql = @mysql_query("SELECT COUNT(`id`) AS `count` FROM `stimmen` WHERE `email`='$email';"); $res = @mysql_fetch_assoc($sql); if($res['count'] > 0) { echo "Vorhanden."; } ?>

{/restricted}

{unrestricted}

Bitte einloggen:

{loginbox}

Wenn Sie noch kein Benutzer haben dann bitte hier Anmelden:

{register} {/unrestricted}

<?php mysql_free_result($MDCP2009); ?>

[/PHP]

und das die email richtig übergeben wird sieht man an den beiden emails ganz unten auf dem bild

Hallo,

versuch es einfach so.

[php]$sql=„SELECT email FROM stimmen WHERE email='“ . $email .„';“; [/php]Gruß thuemmy

nein leider auch nicht …

ich hab schon alle möglichen varianten getestet von denen weiter oben …

Werden diese „Variablen“ in dem PHP-Code denn auch geparsed?

Versuch’s doch erstmal, indem du die zu testende Email-Adresse manuell in die Abfrage schreibst, anstatt {email}.

Wenn eine SQL-Abfrage bei mir nicht den gewünschten Erfolg erzielt, dann lass ich immer die SQL-Abfrage ausgeben. Wenn die dann richtig erscheint, dann teste ich die Abfrage in phpMyAdmin.

Gruß thuemmy

hm … wenn ich wie du sagt die email direkt eintrage funzt es …

Und Du bist Dir absolut sicher, dass in der Variablen $email auch der richtige Wert drin steht?

Zum Testen einfach mal nach dem Füllen der Variablen $sql die Variable ausgeben.

Gruß thuemmy

ja die variable wird richtig asusgegeben

[PHP]

<?php $email = "{email}"; echo "$email"; //<< funzt echo "{email}"; //<

[/PHP]

das es funzt zeigen ja die beiden email adressen die unterhalb des formulars. (auf dem bild zu sehen)

Und wie sieht dann die Variable $sql aus?

Sorry, aber in der Variablen $email steht nach der Zuweisung die Zeichenkette {email} und diese Zeichenkette wirst Du ja sicherlich in der DB nicht suchen.

Gruß thuemmy

Dann ist nichts an den oben genannten Scipten falsch, sondern die Variable Email wird vorher falsch übergeben. Suche da nochmal nach Fehlern :wink:

MfG Icy

^^ richtig, aber {email} wird ja sobald sich der user angemeldet hat mit der email des users ersetzt !!

auf dem bild sieht man ja das beides funzt

Ich gebe Dir nochmal den Tipp: Wenn Du Deine SQL-Abfrage zusammengebastelt hast, dann gib sie einfach mal mit echo() aus. Dann siehst Du genau, was Du in der Datenbank abfragst…

Gruß thuemmy

alles klar … habs gefunden —> $_SESSION[email] ist die lösung

Du meinst wahrscheinlich $_SESSION[‚email‘]

so siehts aus … und es funzt

[PHP]

<?php $sql="SELECT email FROM stimmen WHERE email='$_SESSION[email]';"; $result = mysql_query($sql) or die(mysql_error()); if (mysql_num_rows($result)) { echo ("Sie haben leider schon Ihre Stimme abgegeben.");// E-Mail ist enthalten } else { echo ("Hier können Sie ihre Stimme abgeben.");// E-Mail ist nicht enthalten } ?>

[/PHP]