mysqli Ausgabe false/true

Pho3nix

Mitglied
moin Leute
Also ich hab mal wieder nen kleines Problem wo ich nicht wieter komme...
Also ich will eine kleine Mysqli abfrage starten welche überprüft ob der Eintrag schon besteht. Wenn ja, dann true und wenn nicht, dann halt false und das in einer Variable gespeichert ^^ damit ich das später wieder mit ner if abfrage weiter verarbeiten kann ;)
Also
momentan hab ich
PHP:
 $sql = "SELECT * FROM email ";
  $abfrage = mysqli_query($db, $sql);
  while($Mail = mysqli_fetch_assoc($abfrage)){
 if ($abfrage == false)
 {echo "False";}
 else
 {echo "true";}
 }

nur leider hab ich keine Ahnung wie ich das richtig machen kann da nur truetruetrue ausgegeben wird aber ich will ja nur einen (hab 3 Daten in der dem Feld drinne ;))

Ich bedanke mich schonmal im vorraus :)
 
Ich glaube du hast da was falsch gemacht. Du bekommst deswegen "truetruetrue" raus weil deine Variable $abfrage true ist, diewhile-Schleife durchläuft 3mal wegen den 3 Inhalten in der Tabelle und deswegen wir innerhalb der Schleife 3mal true ausgegeben!

$abfrage ist deswegen true, weil dein Query korrekt war und er true zurückliefert! Dieser Wert ändert sich auch nicht, du hast ja auch nur ein Query!
 
item: mysqli_fetch_assoc hab ich grad nicht gefunden.
item: am besten ein COUNT(*) machen um herauszufinden ob etwas da ist. Das gibt immer eine Zeile. Mit einem IF() kanns man bereits im SQL das Resultat definieren

PHP:
<?
    $db = new mysqli("localhost", "root", "", "test");  
    $sql = "SELECT IF(COUNT(*) > 0, 'true', 'false') AS flag FROM email";
    $stmt = mysqli_prepare($db, $sql);
    $stmt->execute();
    $stmt->bind_result($flag);
    $stmt->fetch();
    echo $flag;
?>

Nachtrag: mysqli_fetch_assic gefunden...
PHP:
<?
    $db = new mysqli("localhost", "root", "", "test");  
    $sql = "SELECT IF(COUNT(*) > 0, 'true', 'false') AS flag FROM date";

    $result = mysqli_query($db, $sql);

    $row = mysqli_fetch_assoc($result); 
    echo $row["flag"];
?>
 
Zuletzt bearbeitet:
hey so bin nu etwas weiter gekommen.
es wird jetzt nurnoch 1x true ausgegeben wenn da was is ^^
PHP:
 {
  $sql = "SELECT * FROM email Where email='{$_POST['name']}'";
  $abfrage = mysqli_query($db, $sql);
  while($Mail = mysqli_fetch_assoc($abfrage)){
 if ($Mail==false)
 {echo "False";}
 elseif($Mail==true)
 {echo "true";}
 }

 }

doch wie bekomme ich es hin das er dann wenn der eintrag nicht vorhanden ist false schickt?

mfg
 
hey ja hab ich angepasst. Nur leider kommt noch ein Fehler.
Hier ist das Komplette Script:
PHP:
<form name="form" method="post" action="<?php echo $_SERVER['index.php?admin=news']?>">
  <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%">
<div align="left">
    <tr>
      <td width="50%">Dein Name: </td>
      <td width="50%">
      <input type="text" name="name" value="" SIZE="50" maxlength="30"></td>
    </tr>
  </table>
  <input type="submit" value="Hinzufügen" name="aendern">
</form>
</div>
<?
include('own cms/include/config/phpmyadmin.php');
$email = $_POST['name'];
function check_emailsyntax($email) {
    if (eregi("^([a-z0-9_]|\-|\.)+@(([a-z0-9_]|\-)+\.)+[a-z]{2,4}\$",$email)==1) {
        return true;
    } else {
        return false;
    }
} 
 if (isset($_POST['name']) && check_emailsyntax($email)==true)
 {
    $sql = "SELECT IF(COUNT(*) > 0, 'true', 'false') AS flag FROM email";
    $result = mysqli_query($db, $sql);
    $row = mysqli_fetch_assoc($result);
    echo $row["flag"];
}}
 elseif(!isset($_POST['name']) && check_emailsyntax($email)==false)
 {
 }
  else
 {
 echo "Angabe nicht korrekt";
 }
?>
 
PHP:
 if (isset($_POST['name']) && check_emailsyntax($email)==true)
 {
    $sql = "SELECT IF(COUNT(*) > 0, 'true', 'false') AS flag FROM email";
    $result = mysqli_query($db, $sql);
    $row = mysqli_fetch_assoc($result);
    echo $row["flag"];
}} //  <<  zwei sind eins zu viel

Siehe Kommentar im PHP-Code ;-)
 
Hey danke.
Wieder einen Schritt weiter.
Nur wenn ich eine Unbekannte E-Mail in diesem Falle EIntrage wird bei mir trotzdem false ausgegeben... naja mal nen bissle suchen ^^
 
Zurück