Prüfung des Vorhandenseins in MySql

Rai

Mitglied
Ich bastle mir gerade ein System um die Inhalte komplett in MySql zu verwalten,
allerdings sollte man immer unterschiedliche Namen für die Datensätze eingeben müssen.
( Da sie dann später über die Namen wieder aufgerufen werden .)

Also meine Frage, wie kann ich Nachprüfen,
ob der Name irgendwo in der Tabelle schon verwendet wurde ( in den zellen name ) ?
 
Entweder per mysql-Statement mit SELECT count(`Feldname`) FROM tabelle WHERE spalte='wert';

oder du machst das gleiche ohne count und nimmst danach die php Funktion mysql_num_rows, wobei ich persönlich ersteres eleganter und schneller finde.

Des weiteren kannst du auch die betreffende Spalte als UNIQUE bzw. als Schlüssel definieren, dann meldet sich spätesten mySQL beim Eintragen eines Datensatzes bei dem das ganze doppelt wäre ;)
 
also grob so ?
if ( mysql_query("Select count (name) from inhalt where name = '$newname'") >0 )
{ gibt es schon .... }
 
Nicht ganz...mit den SQL-Abfragen in PHP hast du dich noch nicht viel befasst?
Dann hole ich mal anders aus ;)

Ein SQL-Statement fürst du so aus:
PHP:
$sth = mysql_query('Dein Statement');
$sth enthält bei einem Select Statement eine ressource, ansonsten TRUE wenn es geglück ist, FALSE bei Fehler.
Um diesen eventuellen fehler erstmal abzufangen kannst du so vorgehen
PHP:
//Möglichkeit a (etwas unelegant, wegen gegebenem Falls Zerlegen des Layouts)
$sth = mysql_query('Select..') or die("Fehler: ".mysql_error());
//Möglichkeit 2
$sth = mysql_query('SELECT...');
if( !$sth )
    //Hier Fehler ausgeben oder Fehlermehandelnde Routine aufrufen

Auslesen der Daten eines Statements kannst du mit einer der vielen mysql_fetch_ Funktionen, beispielsweise mysql_fetch_assoc() welches dir dann ein assoziatives Array zurückliefert. Der Schlüsselname entspricht dann dem Spaltennamen aus der SQL-tabelle.

In deinem Fall wäre es dann so zu lösen
PHP:
$sth = mysql_query('SELECT count(*) as anzahl FROM 'tabelle' WHERE `spalte`='wert');
if( !$sth )
     //Fehler behandeln

$anzahl = mysql_fetch_assoc($sth); 
if( $anzahl['anzahl'] )
       echo "gibts schon";

Zu weiteren Fragen bezüglich mysql_fetch_, dem Verbindugnsaufbau zur DB und co einfach hier im Board suchen oder auf http://www.php.net in der Funktionsreferenz schauen.
 
Zurück