db überprüfen ob datensatz schon mal vorkommt?

Brauni

Erfahrenes Mitglied
servus

Hier im Forum habe ich leider zu diesem Thema noch nichts gefunden. Ich steh zur Zeit total auf der Leitung. Ich habe einen String in einer Variable gespeichert und diesen Wert will ich in der DB überprüfen, ob er schon mal vorkommt.
Benutzername soll ja eindeutig sein und nicht mehrmals vorkommen.

PHP:
$query = mysql_query("select * from user where benutzername='$benutzername'");
    $result = mysql_db_query("db01", $query);
    $num = mysql_affected_rows();

    if($num>0)
    {
        echo "einmalig";
        }else{
         echo "doppelt";
    }

Das ist mal mein Ansatz abeer irgendwie bin ich zur Zeit voll daneben und komme nicht auf den Fehler drauf.

greets
brauni
 
Naja, ganz verkehrt war es nicht:
PHP:
 $query = mysql_query('select * from user where benutzername="'.$benutzername.'"');
    $result = mysql_fetch_array($query);

    if($result[0] == 0)
    {
        echo 'einfach';
    } else {
         echo 'doppelt';
    }
 
[phpf]mysql_affected_rows[/phpf] ist für UPDATE, INSERT und DELETE vorgesehen. Für ein SELECT verwendet man [phpf]mysql_num_rows[/phpf]:
PHP:
 $query = mysql_query("select * from user where benutzername='$benutzername'");
    $result = mysql_db_query("db01", $query);
    $num = mysql_num_rows();

    if($num>0)
    {
        echo "gibt es schon";
        }else{
         echo "gibt es noch nicht";
    }
Du kannst aber auch mit COUNT arbeiten:
PHP:
$query = mysql_query("select count(*) from user where benutzername='$benutzername'");
    $result = mysql_db_query("db01", $query);
    $row = mysql_fetch_row($result);
    $num=$row[0];

    if($num>0)
    {
        echo "gibt es schon";
        }else{
         echo "gibt es noch nicht";
    }

Gruß hpvw
 
Zuletzt bearbeitet:
servus

super thx für eure vorschläge, aber ich bekomme jedes mal eine Fehlermeldung:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in
oder
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in

kA was ich tun soll
 
Lass dir mal die Abfrage ausgeben:
PHP:
 $query = mysql_query($sql='select * from user where benutzername="'.$benutzername.'"');
    $result = mysql_fetch_array($query);

echo($sql);

    if($result[0] == 0)
    {
        echo 'einfach';
    } else {
         echo 'doppelt';
    }
 
select * from user where benutzername="asdf"einfach

dieser benutzername kommt aber schon mal in der db vor
 
auch die beiden vorschläge von hpvw funktionieren nicht. immer fehlermeldungen.


PHP:
<?php
session_start();

$wahl = $_SESSION["kunde"];


if ($wahl == "reg")
{
    mysql_connect("localhost","a","b");

    $query = mysql_query('select * from user where benutzername="'.$benutzername.'"');
    $result = mysql_fetch_array($query);

    if($result[0] == 0)
    {
        echo 'einfach';
    } else {
         echo 'doppelt';
    } 


echo $num;



    $query2 = "insert into user (rgvorname, rgnachname, rgfirma, rgstrasse, rgplz, rgort, rgland, rgtel, rgfax, mail, benutzername, kennwort) values ('$rgvorname', '$rgnachname', '$rgfirma', '$rgstrasse', '$rgplz', '$rgort', '$rgland', '$rgtel', '$rgfax', '$mail', '$benutzername', '$kennwort')";
    $result2 = mysql_db_query("db01", $query2);

    $num2 = mysql_affected_rows();

    exit;

    if ($num2>0)
    {
        $_SESSION["status"] = "<strong>Sie wurden erfolgreich mit dem Benutzernamen $benutzername regestriert!</strong>";
    }
    else
    {
    	echo "Es ist ein Fehler aufgetreten, ";
        echo "es wurde kein Datensatz hinzugefügt<p>";
    }
}

if ($wahl == "log")
{





}






?>
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück