Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Abfrage ob Name in DB vorhanden ist, wenn ja dann UPDATE, wenn nein dann INSERT

Mitglied: burmy

burmy (Level 1) - Jetzt verbinden

16.11.2006, aktualisiert 26.11.2006, 5673 Aufrufe, 5 Kommentare

Abfrage ob Name in DB vorhanden ist, wenn ja dann UPDATE, wenn nein dann INSERT

Hallo

ich stehe da mal wieder vor einem kleinen Problem:

ich möchte eine INSERT oder UPDATE Abfrage ausführen lassen, in Abhängigkeit ob es einen Namen in der DB schon gibt, oder nicht. Ich dachte mir ich mache das mit einer count Abfrage ?
Geht das überhaupt ?

Also der Code lautet wie folgt:

01.

02.
<?php include('../Connections/T_index.php');
03.

04.
$NAME_db = $_POST['NAME'];  
05.

06.
$result = mysql_query ("SELECT count (NAME) FROM tabelle WHERE NAME = '$NAME_db'");
07.
	
08.
	$res = mysql_query($result) or die ("keine gültige DB Abfrage !!!");
09.
	#$row = mysql_fetch_array($res);
10.

11.
if ($count == 0) {              //echo"Daten eingetragen<br/>"; 
12.
	
13.
  $mysql_query = "INSERT INTO tabelle (ID, NAME) VALUES ('','$NAME_db');
14.
  
15.
  $rs = mysql_query($mysql_query) or die ("keine gültige DB Abfrage (INSERT)");
16.

17.
                         }
18.
	
19.
else
20.
	
21.
	         {              //echo "Daten updaten<br/>";
22.
	
23.
  $mysql_query = "UPDATE Tabelle set NAME='$NAME_db' WHERE NAME = $NAME_db";
24.

25.
  $rs = mysql_query($mysql_query) or die  ("keine gültige DB Abfrage (UPDATE)");
26.
 
27.
                         }
28.

29.
?>
Der Inhalt der Variable "$NAME_db" kommt natürlich aus einem Formular. ich habe das mit einem echo probiert, der Wert für Name wird auch übertragen bis zur Abfrage $result.

Die Abfrage gibt mir immer die Fehlermeldung "keine gültige DB Abfrage !!!" zurück, also kommt das Programm noch nichtmals zum INSERT oder zum UPDATE.

Könnte die Abfrage mit dem SELECT count schon falsch sein, kann man den Inhalt des Feldes NAME als anzahl in einem count schreiben, oder geht das nur mit den Datentyp INT ?



Der NAME wäre ja dann ein VARCHAR DATENTYP.

Vielen DANK für Hilfe

Martin
Mitglied: badrulecracker
16.11.2006 um 10:53 Uhr
$result = mysql_query ("SELECT count
(NAME) FROM tabelle WHERE NAME =
'$NAME_db'");

$res = mysql_query($result) or die
("keine gültige DB Abfrage
!!!");


Ersetzen durch:

$sql = "SELECT count
(NAME) FROM tabelle WHERE NAME =
'$NAME_db'";

$res = mysql_query($sql) or die
("keine gültige DB Abfrage
!!!");

Wozu benutzt du 2x mysql_query?
In der ersten Variable wird normalerweise das SQL Statement eingetragen in der zweiten dann der query ausgeführt!

mfg, brc
Bitte warten ..
Mitglied: burmy
16.11.2006 um 11:39 Uhr
Hallo

Danke das war mein Fehler,

es klappt


Gruß Martin
Bitte warten ..
Mitglied: SlainteMhath
16.11.2006 um 12:44 Uhr
kleiner hinweis:

01.
$NAME_db = $_POST['NAME'];  
02.

03.
$result = mysql_query ("SELECT count (NAME) FROM tabelle WHERE NAME = '$NAME_db'");


Es ist keine gute Idee benutzereingaben ungeprüft direkt in einem SQL Statement zu verwenden - Stichwort SQL Injection

Überleg Dir mal, was passiert wenn ein User

01.
'; DELETE FROM TABELLE; SELECT * FROM TABELLE WHERE NAME='
in dein HTML Formular eingibt.
Bitte warten ..
Mitglied: Xaero1982
23.11.2006 um 07:13 Uhr
$result = mysql_query ("SELECT count (NAME) FROM tabelle WHERE NAME = '$NAME_db'");

Wie das funktionieren soll frag ich mich allerdings!

Du fragst nach wo NAME = $NAME_db ist

Sprich nur wenn in Name $NAME_db drin steht ....

eigentlich müsste es so lauten:
$result = mysql_query ("SELECT count (NAME) FROM tabelle WHERE NAME = ' ".$NAME_db." ' ");
Bitte warten ..
Mitglied: badrulecracker
26.11.2006 um 19:56 Uhr
$result = mysql_query ("SELECT count
(NAME) FROM tabelle WHERE NAME =
'$NAME_db'");

Wie das funktionieren soll frag ich mich
allerdings!

Du fragst nach wo NAME = $NAME_db ist

Sprich nur wenn in Name $NAME_db drin steht
....

eigentlich müsste es so lauten:
$result = mysql_query ("SELECT count
(NAME) FROM tabelle WHERE NAME = '
".$NAME_db." ' ");


Nein, dem ist nicht so, denn das doppelten Anführungszeichen erlauben die Ausgabe von Varaiblen mitten im String:

http://tut.php-q.net/strings.html

mfg, brc
Bitte warten ..
Ähnliche Inhalte
Datenbanken
XML insert-update in einer MS SQL DB
gelöst Frage von teslajrDatenbanken8 Kommentare

Hallo Leute Mein Code zum importieren einer xml in die MS SQL 2008 DB funktioniert, jedoch möchte ich dass ...

Datenbanken
Oracle Insert Befehl
gelöst Frage von MarabuntaDatenbanken4 Kommentare

Hallo, ich habe eine Datenbank, die etwa so aussieht: Jetzt soll mit einem Insert Befehl folgendes passieren: Also habe ...

Batch & Shell
INSERT INTO funktioniert nicht
gelöst Frage von DaniBatch & Shell9 Kommentare

Guten Abend liebe Kolleginnen und Kollegen, ich gehe - wieder einmal - einer meiner Entwicklungen nach, welche ich mal ...

Batch & Shell
Bei INSERT Fehler abbrechen
Frage von newit1Batch & Shell8 Kommentare

Hallo zusammen, ich habe ein kleines Problem. Das unterstehende Skript importiert eine CSV Datei in eine Datenbank. Den Aufbau ...

Neue Wissensbeiträge
Humor (lol)
Und wie seid Ihr gegen Cyberattacken gewappnet?
Information von DerWoWusste vor 1 TagHumor (lol)5 Kommentare

aber wo ist der Hammer? :-)

Sicherheit
Ein weiterer Microsoft-Stirnklatscher
Information von DerWoWusste vor 2 TagenSicherheit7 Kommentare

Habe gerade einen Artikel zu einem Sicherheitsproblem gefunden, welches mir zu seiner Zeit (gepatcht 2015) wohl durchgerutscht ist. Es ...

Windows 10
Upgradepfade Windows 10 LTSC
Erfahrungsbericht von Datenreise vor 2 TagenWindows 10

Nur eine kurze Info, für diejenigen, die es interessiert, da es hierzu im Netz aus nachvollziehbaren Gründen nicht allzu ...

Administrator.de Feedback
Wartungsarbeiten heute Nacht (Update)
Information von Frank vor 2 TagenAdministrator.de Feedback10 Kommentare

Hallo User, durch Umbauarbeiten in unserem Rechenzentrum (am Backbone) kann es heute Nacht (14-15.01.2019) zu kurzen Ausfällen unserer Seite ...

Heiß diskutierte Inhalte
Microsoft
SFirm 4.0 auf Terminalserver startet für jeden angemeldeten Benutzer diverse Dienste
Frage von Frank84Microsoft25 Kommentare

Hallo zusammen, wir verwenden Sfirm 4.0 auf einem Terminalserver (der SQL Server ist auf einem separaten Server), das Problem ...

Windows 10
Windows 10 - kein Boot mehr nach Domänenaustritt
gelöst Frage von Ghost108Windows 1025 Kommentare

Hallo zusammen, habe hier eine Windows 10 Maschine, die ich gerne aus der Domäne austreten lassen möchte. Nach Austritt ...

Windows 10
VM wächst schnell von 14 auf 35 GB an - warum?
Frage von degudejungWindows 1018 Kommentare

Hallo, ich bin ein Freund schlanker VMs und setze daher gerne mit dem Erscheinen einer neuen Win10 Version - ...

Internet
Google-Suchergebnisse, Schnelleinblendung, woher kommt der Inhalt?
gelöst Frage von departure69Internet17 Kommentare

Hallo. Ich bin der Systembetreuer einer kleinen Gemeinde in Süddeutschland. Wir betreiben auch eine Leihbücherei. Eine Kundin hat letzten ...