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, 5639 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 DB Abfrage
Frage von MarabuntaDatenbanken5 Kommentare

Hallo, ich habe folgende Tabelle: Jetzt brauche ich eine Abfrage, um das vorletzte Datum auszugeben. Vorher: Zwischenstand: In den ...

Entwicklung

Abfrage einer Eingabe im Programm und Sicherung in DB

Frage von Dragan123Entwicklung11 Kommentare

Hey Leute, ich brauche Eure Hilfe, weiß aber gar nicht ob und wie das Ganze realisiert werden kann. Bin ...

Microsoft Office

Abfrage durch vba von Oracle-DB, Fehlermeldung

Frage von famsprengeMicrosoft Office

Hallo zusammen, ich versuche mit Excel-vba eine Abfrage von einer Oracle-Datenbank durchzuführen. Der Code läuft durch bis zum Öffnen ...

Neue Wissensbeiträge
Microsoft

Neuigkeiten zu Server und Office 365 was läuft mit was und was nicht

Tipp von AlFalcone vor 1 TagMicrosoft4 Kommentare

Da diese Infos scheinbar unerwünscht sind, habe ich diese wider gelöscht.

Speicherkarten

Neuer Speicherkartentyp - zunächst nur für Huawei-Smartphones (künftig auch für Notebooks u. Tablets?)

Tipp von VGem-e vor 1 TagSpeicherkarten1 Kommentar

Servus, als ob das "Chaos" i.S. Speicherkarten noch nicht groß genug wäre?! Evtl. kommt dieser neue Kartentyp bald auch ...

Sicherheit

Diverse D-Link-Router durch drei Schwachstellen kompromittierbar

Information von kgborn vor 1 TagSicherheit

Hat jemand D-Link-Router in Verwendung? Einige Modelle sind sicherheitstechnisch offen wie ein Scheunentor. Äußerst unschöne Sache, aber nichts neues ...

Hardware

100.000 Mikrotik-Router ungefragt von Hacker abgesichert

Information von 7Gizmo7 vor 2 TagenHardware1 Kommentar

Hallo zusammen, da hier ja öfters mal von Mikrotik gesprochen wird. Trotz Updates klafft eine Sicherheitslücke in Hundertausenden Mikrotik-Routern. ...

Heiß diskutierte Inhalte
Sicherheitsgrundlagen
EuGH-Urteil - Internetanschluss für die ganze Familie - Filesharer haften trotzdem
Frage von StefanKittelSicherheitsgrundlagen40 Kommentare

Hallo, In diesem Artikel geht es darum, dass Jemand aus der Familie ein Hörbuch illegal hochgeladen hat. Der Vater ...

Apple
MacBook Pro 2018 mit 8 GB oder 16 GB
Frage von SysAdm81Apple25 Kommentare

Hallo zusammen, ich steh vor der Überlegung mir ein MacBook Pro 13 (2018) zu kaufen. Bzgl. SSD habe ich ...

Off Topic
SysAdmin im öffentlichen Dienst - jemand Erfahrungen?
Frage von JohnDorianOff Topic19 Kommentare

Hallo zusammen, hat jemand Erfahrung wie es so ist als SysAdmin im öffentlichen Dienst (Landkreis) im Südwesten der Republik ...

Datenbanken
MS SQL DB-Daten archivieren?
gelöst Frage von SchelinhoDatenbanken16 Kommentare

Hallo zusammen! Ich habe eine Anwendung, welche MSSQL (SQL Server 2014 SP2) nutzt. Auf der DB-Instanz laufen diverse Datenbanken. ...