[SQL]Prüfen, ob Datensatz existiert

Stuhl

Lt. Junior Grade
Dabei seit
Juni 2001
Beiträge
409
Danke!!!

Genau sowas mit Java Script hab ich gebraucht, als Nächstes Problem brauch ich nur noch eine Synthax die folgendes macht:

prüfen ob in Tabelle x in Datenbank y.mdb ein Datensatz enthalten ist (wie man so über odbc Daten einfügt weiss ich mit PHP, ich brauch nur sowas wie:
if datensatz vohanden in tabelle x then disable link z

ok, bin jetzt eine Woche auf Klassenfahrt, kann also die nexte Woche nicht antworten...

THX
CU

Stuhl

Edited by Steffen: Dieser Post war vormals Teil des Threads Wie kann ich die Post Methode von hyperlinks übernehmen lassen?. Da diese Frage jedoch keinen Bezug zum alten Topic hat, habe ich daraus einen neuen Thread erstellt. Das sollte den jetzt unpassenden Beginn von Stuhls Frage erklären!
 
Zuletzt von einem Moderator bearbeitet:

Steffen

Technische Leitung
Teammitglied
Dabei seit
März 2001
Beiträge
13.977
Folgender PHP-Code sollte das bewerkstelligen:
Code:
if ( mysql_num_rows( mysql_query( "SELECT daten FROM tabelle WHERE daten='$daten'" ) ) != 0 ) {
    echo "Datensätze gefunden und wird jetzt gelöscht!";
    mysql_query( "DELETE FROM tabelle WHERE daten='$daten'" );
}
Eigentlich kann man die ganze if-Anweisung auch weg lassen und sich auf die Query "DELETE FROM..." beschränken, wenn man nicht wissen muss, ob es überhaupt Datensätze gibt, die dem Suchmuster entsprechen. Wenn es keine gibt, bewirkt das "DELETE FROM..." nämlich einfach nichts... :)
 

Stuhl

Lt. Junior Grade
Ersteller dieses Themas
Dabei seit
Juni 2001
Beiträge
409
Wieder daa

Hallo, erstmal,
war jetzt eine Woche im Skilager daher konnt ich net antworten.
Also gleich zum SQL:
ich hab grad gesehen, dass das so nicht klappt das muss anders lauten, und der datensatz soll auch nicht gelöscht werden sondern was anderes soll ausgeführt werden!
also ich bräuchte:

if daten im Feld NAME in Tabelle X eingetragen/vorhanden...
dann deaktiviere den Link
<a href="javascript:document.form930.submit()">9.30h</a>

also wenn z.b. in der Tabelle X im ersten Datensatz im Feld NAME irgendwas schond drinnsteht, dann soll er den Link 9.30h deaktivieren!!!!

(was die namen 9.30h sollen kann ich erklären, wenns funzt, is aber ziemlich kompliziert)

Biggest THX!!!

Stuhl
 

Steffen

Technische Leitung
Teammitglied
Dabei seit
März 2001
Beiträge
13.977
Also da PHP ja sowieso auf dem Server ausgeführt wird und man mit PHP wenn die Seite angezeigt wird sowieso nichts mehr ändern kann (Dazu gibt es Javascript), würde ich den Link je nach Ergebnis der Bedingung einfach nicht ausgeben lassen.
ich hab grad gesehen, dass das so nicht klappt das muss anders lauten, und der datensatz soll auch nicht gelöscht werden sondern was anderes soll ausgeführt werden!
Der IF-Abschnitt meines Codes überprüft eigentlich genau das (ob ein bestimmter Datensatz existiert).

Folgendes Beispiel gibt jetzt einen Link aus, wenn die Daten in der Tabelle nicht vorhanden sind (bzw. gibt keinen Link aus, wenn die Daten vorhanden sind):
Code:
if ( mysql_num_rows( mysql_query( "SELECT daten FROM tabelle WHERE daten='$daten'" ) ) == 0 ) {
    // Es wurden 0 Datensätze gefunden
    echo "<a href=\"javascript:document.form930.submit()\">9.30h</a>";
}
 

Stuhl

Lt. Junior Grade
Ersteller dieses Themas
Dabei seit
Juni 2001
Beiträge
409
Stimmt

du hasst Recht so wärs besser! Nur leider treten mit deiner Daten vorhanden Abfrage Fehler auf, da ich ja keinen SQL Server verwende sondern über odbc auf eine Access 2000 Datenbank zugreife daher dann diese Fehler:

Warning: Undefined variable: daten in E:\Jana2\html\php\index.php on line 35

Warning: Can't connect to MySQL server on 'localhost' (10061) in E:\Jana2\html\php\index.php on line 35

Warning: MySQL Connection Failed: Can't connect to MySQL server on 'localhost' (10061) in E:\Jana2\html\php\index.php on line 35

Warning: MySQL: A link to the server could not be established in E:\Jana2\html\php\index.php on line 35

Warning: Supplied argument is not a valid MySQL result resource in E:\Jana2\html\php\index.php on line 35

Ich brauch also dasselbe nur über odbc...(lol, Bestellung)

THX

Stuhl
 

Steffen

Technische Leitung
Teammitglied
Dabei seit
März 2001
Beiträge
13.977
In Bezug auf diesen Thread jetzt noch eine entsprechende Anpassung für ODBC und zusätzlicher Ausgabe des Datensatzes, sofern einer gefunden wurde:
PHP:
<?php 
$dsn = "test"; 
$user = "admin"; 
$pwd = ""; 
$connection = odbc_connect ($dsn, $user, $pwd);
$sql = "SELECT Name FROM Tabelle WHERE Name='$Name'";
$anfrage = odbc_exec($connection, $sql);
if ( odbc_num_rows( $anfrage ) == 1 ) {
    echo "Name: ".odbc_result($anfrage, "Name");
} else {
    echo "Kein entsprechender Datensatz gefunden!";
}
odbc_close($connection);
?>
In dem PHP-Manual (das du dir gelegentlich auch mal anschauen solltest, da sind die ODBC-Funktionen nämlich erklärt) steht bei odbc_num_rows folgender Hinweis:
Note: Using odbc_num_rows() to determine the number of rows available after a SELECT will return -1 with many drivers.
Ich selber benutze MySQL als Datenbank und habe mit ODBC in der Praxis bisher noch nichts gemacht, den Code habe ich nur aus dem Manual zusammengebastelt. Wenn odbc_num_rows() also nicht funktioniert, musst du nach einer anderen Lösung Ausschau halten!
 

Stuhl

Lt. Junior Grade
Ersteller dieses Themas
Dabei seit
Juni 2001
Beiträge
409
Danke

jaja, ich weiss, dass ich mir das Manual durchlesen sollte, aber diese Art von Funktionsübersicht versteh ich irgendwie nicht, wenn ich ein Beispiel hab, dann isses natürlich viel leichter für mich!
Aber ich dank dir für deine Geduld auf jeden Fall, leider hasst du Recht, dass die num_row -1 ist, aber ich hab das Problem schon anders gelöst, und zwar hab ich einfach ein Feld ausgelesen, und wenn der Inhalt des Feldes "" ist, dann soll er den Link ausgeben und wenn nicht, was anderes schreiben. Funktioniert wunderbar.
Aber dann hätt ich noch ne Frage, und zwar, kann ich mit PHP Formularüberprüfungen durchführen, also wenn ich Daten aus Formfeldern Posten lasse, dass dann z.B. bei Texteingaben in Zahlfelder eine Message Box erzeugt wird? (geht aber auch Java Script)???

THX

Stuhl
 

Steffen

Technische Leitung
Teammitglied
Dabei seit
März 2001
Beiträge
13.977
Mit PHP kann man das z.B. wie folgt überprüfen:
PHP:
if( preg_match( "/[0-9]/", $text ) ) {
    echo "Eine oder mehrere Zahlen gefunden!";
}
Ob das mit Javascript geht, weiß ich nicht...
 

JHC

Lt. Junior Grade
Dabei seit
Jan. 2002
Beiträge
277
RTFM

Original erstellt von Stuhl
Aber dann hätt ich noch ne Frage, und zwar, kann ich mit PHP Formularüberprüfungen durchführen, also wenn ich Daten aus Formfeldern Posten lasse, dass dann z.B. bei Texteingaben in Zahlfelder eine Message Box erzeugt wird? (geht aber auch Java Script)???
Hi Stuhl!

Ich würde Dir mal raten die Standardwerke zu lesen, bzw. dort nachzuschlagen... :D

bei einer Webseiten-Entwicklung sollten

http://www.php.net/ und
selfhtml.teamone.de

eigentlich IMMER geöffnet sein...

Grüße
JHC

PS: Deine Frage zu dem Formular findest DU z.b. auch bei SelfHTML: http://selfhtml.teamone.de/javascript/beispiele/formulareingaben.htm
lesen musste das aber schon selber :)
 

Stuhl

Lt. Junior Grade
Ersteller dieses Themas
Dabei seit
Juni 2001
Beiträge
409
Ja

ich hab mir das deutsche Tutorial durchgelesen, und hab dort viele Antworten auf meine Probleme gefunden. Ich weiss, hätt ich schon früher machen können, aber ich arbeite mit php erst seit 2 Wochen, aber jetzt versteh ich erst so langsam überhaupt die Inhalte des Tutorials richtig.
Ich hab aber noch ein Problem, aber nicht dieser Art, mit der Datumsfunktion, da werden keine Variablen akzeptiert, dazu hab ich nichts gefunden, ich habe dazu aber noch einen neuen Thread aufgemacht.

Tut mir leid, wenn ich euch angenerft hab, aber aller Anfang ist schwer!!!

THX

Stuhl
 

Steffen

Technische Leitung
Teammitglied
Dabei seit
März 2001
Beiträge
13.977
Wenn man vorher noch keine Programmiererfahrung hatte ist es bestimmt nicht gerade einfach nur mit der Online-Hilfe PHP zu erlernen (obwohl die Sprache eigentlich nicht sonderlich schwer ist). So ein paar Grundlagen könnten man mit einem Buch zu PHP bestimmt schnell geklärt werden. Ansonsten dauert es halt etwas länger... ;)
 
Top