[SOLVED] Wie kann man mit SQL kontrollieren, ob ein Datensatz bereits an einen anderen Benutzers vergeben ist?

4 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

2 Mal WHERE geht nicht...

$sql = "SELECT * FROM users WHERE user_id!='$id' AND (user_first='$first' AND user_last='$last')";
//...
$sql = "SELECT * FROM users WHERE user_id!='$id' AND user_name='$name'";

In wie weit das sinnvoll ist, ist eine andere Frage, doppelte Namen kommen öfter vor.

3

Naja, gleicher Vor- und Nachname bei mehreren Personen einer überschaubaren Gruppe sind durchaus nicht so häufig :)

0
14

kann alles vorkommen, hatte bei mir in der Schulklasse 2 mit gleichem Namen, die nicht verwandt waren...

0
3
@iQa1x

Okay, das ist dann natürlich ungünstig. Ich werd noch einmal drüber nachdenken...

0

Lass das NOT doch weg und prüf einfach immer darauf ob was gefunden wurde falls nicht, dann kannst du weiter ansonsten kommt eine Fehlermeldung.

Außerdem kannst du mittel OR oder AND deine sql abfragen verknüpfen.

PS: Ich würde mir an deiner stelle noch SQL-Injections angucken um eine Datenbank-manipulationen vorzubeugen. einfach mal nach php prepared statement suchen.

MfG

3

Wenn ich das NOT aber ausspare wird ja die ganze Datenbank durchsucht, aber es kann ja sein, dass ich denselben Vor- und Nachnamen nochmal in das Update-Feld für den Benutzer eingebe, dann soll es keinen Fehler geben, wenn es derselbe Benutzer mit diesen Werten ist, bei einem anderen muss ein Fehler ausgegeben werden.

Die Absicherung gegen SQL-Injections hab ich bei diesen Feldern weggelassen, da sowieso nur Leute Zugriff auf diese Seite haben, die auch autorisiert sind und sonst direkt was in der Datenbank ändern könnten, aber danke für den Hinweis :)

0
32
@richardgerdes

Wenn Du einen Namen eingibst, der schon vorhanden ist und das aufgrund der definierten Rahmenbedingungen zu einer Meldung kommt, so ist das keine Fehlermeldung, sondern eine Rückmeldung an das Programm, um die notwendigen weiteren Schritte zu regeln. Man kann ja nicht riechen, ob es den Satz schon gibt oder nicht. Auf Wunsch bekommt man das gemeldet. Was soll denn daran falsch sein, wenn ich das wissen will. Wenn ich vorher erst frage und dann schreibe, brauche ich zwei Anweisungen. Wenn ich gleich schreibe und die Meldung auswerte, geht das mit einer.

0

Empfehlung: Erstelle eine Stored Procedure und hampel nicht so viel mit PHP herum.

Die Stored Procedure wird über das Datenbankmanagementsystem implementiert. Über PHP rufst Du die dann nur noch auf.

Woher ich das weiß:
Berufserfahrung

MySQL Befehl und umlaute machen Probleme?

Hallo,

mein Befehl sieht folgendermaßen aus.

UPDATE config SET schriftart = "Indie Flower" AND schriftart_import = "@import url('<a href="https://fonts.googleapis.com/css?family=Indie+Flower">https://fonts.googleapis.com/css?family=Indie+Flower</a>');" WHERE user_id = "1"

Das Problem liegt darin, das SQL den eigentlichen string von "schriftart_import" als Problem ansieht, da dort mehrere umlaute und Zeichen verwendet werden.

Danke für eure Hilfe!

...zur Frage

MYSQL Select mit Variablen und Wildcard?

So geht es, wenn ich die gesammte PLZ eingebe:

$plzwert = $_POST['plzeingabe']

$db = mysqli_connect ('localhost', 'user', 'pw', 'db');
$sql = "SELECT * FROM eintragen WHERE plz LIKE '$plzwert' ORDER BY datum ASC";
$db_erg = mysqli_query ($db,$sql);

Ich habe gegoogelt und habe folgendes gefunden:

---->WHERE plz '%' + $plzwert + '%' usw

geht leider nicht...

auch so nicht:

---->WHERE plz '%' + '$plzwert' + '%' usw

Kann mir da jemand bitte bitte helfen?

...zur Frage

Einfachen Counter in html?

tagchen :)

ich hab letztens aus Spaß für einen Freundeskreis ne kleine Website gemacht, nur mit Baukasten von wix.com weil mir selber schreiben jetzt zu aufwendig war nur haben wir einen Mitglieder Bereich wo jeder einen Account hat und ich würde gerne ein kleines Punktekonto für jeden Account einrichten...

genauer: jeder soll über eine Eingabemaske verschiedene Daten eingeben, die dann über eine Formel zusammengerechnet werden zu einem Ergebnis. Soweit so gut, mit excel sehr einfach lösbar.

Knackpunkt: das Ergebnis soll auch beim Logout gespeichert werden und bei einer nächsten Eingabe soll das entstehende Ergebnis auf das alte (bzw. Alle vorherigen) drauf addiert werden. Punktekonto halt.

Hat da jemand eine Idee? Is eig egal wie Hauptsache man kann es in html einbinden :)

vielen dank schon mal im Voraus :)

...zur Frage

Welcher Webseitenbuilder für Shop wie Ebay?

Hallo allerseits,

ich möchte einen Onlineshops mit einem CMS/Webseitenbuilder wie weebly, wordpress etc. eröffnen.

Hierbei ist es besonders wichtig, dass die Kunden selber Verkaufsanzeigen erstellen können.

Bei Weebly bspw können onlineshops erstellt werden, jedoch nur so, dass ich Anzeigen erstellen kann.

Welchen benutzerfreundlichen Webseitenbuilder könnt ihr mir empfehlen ?

Liebe Grüße;)

...zur Frage

welches kostenlose Programm zur Erstellung einer Webseite?

Hallo

ich will aus Jux und Dollerei, aus Spass, mal versuchen, eine Website zu erstellen.

Ich habe aber keinerlei Programmierkenntnisse und auch keine Ahnung von Webdesign und muss somit auf fertige Vorlagen zurückgreifen und diese dann mit einer Benutzeroberfläche mit bestehenden Elementen ergänzen.

Welches Programm bietet mir da viele Vorlagen und einfache Möglichkeiten, sowas mal zu versuchen?

Das Programm (Für Windows-Plattform) sollte weiter gepflegt werden von den Machern. Also kein Asbach-Uralt Programm von vor 3 oder 5 Jahren ;-).

Danke

...zur Frage

Warum funktioniert diese MySQLi Abfrage nicht?

Hi Leute,

ich baue gerade an meinen PHP Klassen rum, nun funktioniert eine Funktion aber nicht:

    public function getValue($member, $server) {
      $sql = "SELECT `active` FROM `server_" . $server->getServer() . "` WHERE `username` = '" . $member->getMember() . "'";
      $result = $this->mysqli->query($sql);
      $row = $result->fetch_assoc();
      return $row['active'];
    }

Wenn ich mir die $sql anzeigen lasse, sieht alles gut aus... Trotzdem:

Fatal error: Call to a member function fetch_assoc() on boolean

Wieso? LG

...zur Frage

Was möchtest Du wissen?