![]() |
Datenbank: MySQL von bplaced.net • Zugriff über: Delphi
MySQL & PHP-Problem
Hallo,
ich habe ein kleines PHP-Problem. Folgender Sachverhalt: Ich hole schicke per
Delphi-Quellcode:
meine Daten an das PHP-Formular. Das funktioniert beim Eintragen wunderbar. Aber wie bekomm ich jetzt am geschicktesten das Ergebnis dann wieder zurück in meine App? Habs mir überlegt mit speichern in einer Datei und die dann per Delphi öffnen. Gibts einen besseren Weg?
SendPostData(Ahttp: TIdHTTP; const AtoURL: string;
const aParams: TStrings): string; Und außerdem soll das 2. SQL-Statement falsch sein. Beim Vergleich ID(aus meiner App) und Schluessel aus der Tabelle gibt es einen Fehler bzw. es funktioniert nicht wie gewollt.
Delphi-Quellcode:
Vielen Dank schonma im Voraus
$ID = strip_tags($_POST['Schluessel']);
$r_ergebnis = mysql_query("SELECT Schluessel,AnzahlReg,Seriennummer FROM Table WHERE [b]Schluessel='$ID'"[/b]); |
Re: MySQL & PHP-Problem
Zitat:
Zitat:
Und bevor du jetzt schreibst Zitat:
|
Re: MySQL & PHP-Problem
Funktioniert jetzt, danke, war wohl gestern bisschen spät :P
|
Re: MySQL & PHP-Problem
SQL-Code:
Was zum Teufel mache ich falsch? Beim 2. Beispiel (siehe Unten) funktioniert alles. Einziger unterschied Schluessel ist varchar und AnzahlReg integer. Es soll einfach das Feld um 1 hochgezählt werden.
$sql = mysql_query("SELECT AnzahlReg FROM Table WHERE Seriennummer='$Seriennummer'");
$val = mysql_fetch_assoc($sql); $val++; mysql_query("UPDATE " . $tablename . " SET AnzahlReg= " . $val[AnzahlReg] . " WHERE Seriennummer='" . $Seriennummer . "'"); oder mysql_query("UPDATE " . $tablename . " SET AnzahlReg= " . $val['AnzahlReg'] . " WHERE Seriennummer='" . $Seriennummer . "'"); oder mysql_query("UPDATE " . $tablename . " SET AnzahlReg= " . $val . " WHERE Seriennummer='" . $Seriennummer . "'"); oder mysql_query("UPDATE " . $tablename . " SET AnzahlReg=$val WHERE Seriennummer='" . $Seriennummer . "'"); ... mysql_query("UPDATE " . $tabname . " SET Schluessel = '" . $Schluessel . "' WHERE Seriennummer = '" . $Seriennummer ."'"); |
Re: MySQL & PHP-Problem
Im ersten UPDATE-Statement fehlen die Anführungszeichen im Array-Index. Leider lässt PHP das trotzdem zu, aber es ist falsch. Im zweiten ist alles richtig. Im dritten fehlt der Index für das Array, d.h. welches Feld du aus dem vorherigen Select denn benutzen willst. Im vierten und letzten Statement ist der gleiche Fehler wie im dritten, nur dass du hier auf den String-Verknüpfungsoperator verzichtet hast.
Dennoch kleiner Tipp am Rande, falls du deine Seite noch etwas optimieren willst: :wink:
SQL-Code:
Liebe Grüße,
UPDATE my_table SET AnzahlReg = AnzahlReg + 1 WHERE Seriennummer = '123'
Valentin |
Re: MySQL & PHP-Problem
Zitat:
|
Re: MySQL & PHP-Problem
SQL-Code:
Das funktioniert.
$sql = mysql_query("SELECT AnzahlReg FROM Table WHERE Seriennummer='$Seriennummer'");
$val = mysql_fetch_assoc($sql); die($val['AnzahlReg']);
SQL-Code:
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in /users/echo/www/ValidateKey.php on line 11
$sql = mysql_query("SELECT Key FROM Table2 WHERE Key='$Seriennummer'");
$val = mysql_fetch_assoc($sql); die($val['Key']); </span> Ich weiß echt nicht wo da der Fehler liegen sollte... Table2-> NR: int, Key: varchar(8) Gibts eig. ne bessere Möglichkeit zuschaun ob ein Wert in einer Tabelle existiert, z.b. IN oder ähnliches? SendPostData(Ahttp: TIdHTTP; const AtoURL: string; const aParams: TStrings): string; Gibt mir per die(); die Antwort aus dem PHP-Skript. Andere Möglichkeit gibts in dem Sachverhalt nicht? Edit: Key sieht mir wie n reserviertes Wort aus. Aber mit ner Alternativefunktionierts auch nicht (ja hab auch an die Struktur der Tabelle gedacht) |
Re: MySQL & PHP-Problem
Ja, es gibt eine Möglichkeit:
![]() Desweiteren ist eigentlich ![]() Also z.B.
Code:
P.S.: Hast du eigentlich register_globals eingeschaltet?
$sql = mysql_query('SELECT Key FROM Table2 WHERE Key="' . $_POST['Seriennummer'] . '"');
if(mysql_num_rows($sql) == 1) { $val = mysql_fetch_assoc($sql); echo $val['Key']; } else { die('Fehler: ' . mysql_error()) } |
Re: MySQL & PHP-Problem
register_globals ist mir unbekannt.
kann man mit echo auch Daten an Delphi zurückgeben? Dachte das funktioniert nur bei direkten Aufruf im Browser? Aufruf aus Delphi: SendPostData(Ahttp: TIdHTTP; const AtoURL: string; const aParams: TStrings): string; |
Re: MySQL & PHP-Problem
Zitat:
Delphi-Quellcode:
Str := IdHTTP.Post(Url);
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:15 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz