[MySQL] PHP gibt nur "Array" aus
|
Verfasser |
Nachricht |
|
Beiträge: 124
Bewertung: 1
Registriert seit: Dec 2011
Status:
offline
|
RE: [MySQL] PHP gibt nur "Array" aus
@Storage-Base: Jetzt kommt der Fehler:
Unknown column 'id' in 'field list'
L.G.
MMS3 Admin
Steam & Skype: TerraBAS ッ
___________________________________________________
[Link: Registrierung erforderlich]
|
|
29.07.2013 10:01 |
|
|
Beiträge: 2.492
Bewertung: 29
Registriert seit: Jul 2010
Status:
offline
|
RE: [MySQL] PHP gibt nur "Array" aus
Der Fehler kommt daher, da ich nicht weiß ob du ein ID mit AI und PK nutzt.
Ich mache als erstes immer ein ID Feld welches AI und PK hat - auch wenn ich es nicht brauche, so bin ich auf der sicheren Seite.
`id` kannst du aber auch durch ein vorhandenes Feld in der MySQL Datenbank ersetzen - ich kenne deine Struktur nicht.
Hab meinen Post eben noch mal korrigiert und deinen Code neu verfasst:
<?php //Datenbank Verbindung herstelle @mysql_connect(Server, Benutzer, PW); @mysql_select_db(keys);
//POST filtern $serial = mysql_real_escape_string($_POST["key"]);
//Abfrage aufbauen $sql = mysql_query("SELECT `id` FROM `testprodukt` WHERE BINARY `serial` = '$serial'") OR die(mysql_error());
//Abfragen ob Key vorhanden if(!mysql_num_rows($sql)) {
echo 'Key ungültig';
//Wenn vorhanden } else {
//Abfragen ob bereits genutzt $used = mysql_query("SELECT `id` FROM `testprodukt` WHERE BINARY `serial` = '$serial' AND `used` = '1'"); if(mysql_num_rows($used)) {
echo 'Wurde bereits benutzt';
//Wenn nicht } else {
//Daten Updaten und Meldung aufgeben if(mysql_query("UPDATE `testprodukt` SET `used` = '1', `date_activated` = NOW() WHERE BINARY `serial` = '$serial'")) {
echo 'vielen Dank!';
//Wenn Fehler bei Update } else {
echo 'Der Code konnte leider nicht aktiviert werden';
}
}
}
Mit freundlichen Grüßen / Best Regards
Julian Weiler | Geschäftsführender Gesellschafter
[Link: Registrierung erforderlich] ist außerdem bei [Link: Registrierung erforderlich], [Link: Registrierung erforderlich] und [Link: Registrierung erforderlich]
Telefon: +49 (0) 67 74 / 20 49 520
Fax: +49 (0) 67 74 / 20 49 520 9
E-Mail: [Mail: Registrierung erforderlich]
|
|
29.07.2013 10:03 |
|
|
Beiträge: 124
Bewertung: 1
Registriert seit: Dec 2011
Status:
offline
|
RE: [MySQL] PHP gibt nur "Array" aus
@Storage-Base: ID, AI und PK sagt mir gar nichts... Bin neu im Gebiet PHP und SQL.
Um es vielleicht zu vereinfachen habe ich hier mal die Datenbank "keys":
CREATE TABLE IF NOT EXISTS `testprodukt` ( `serial` varchar(40) DEFAULT NULL, `product` varchar(20) DEFAULT NULL, `datum` date DEFAULT NULL, `used` tinyint(4) DEFAULT NULL, `date_activated` date DEFAULT NULL, UNIQUE KEY `serial_2` (`serial`), KEY `serial` (`serial`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
L.G.
MMS3 Admin
Steam & Skype: TerraBAS ッ
___________________________________________________
[Link: Registrierung erforderlich]
|
|
29.07.2013 10:09 |
|
|
Beiträge: 2.492
Bewertung: 29
Registriert seit: Jul 2010
Status:
offline
|
RE: [MySQL] PHP gibt nur "Array" aus
Ach, notfalls - einfach anstelel von `id` ein * setzen.
Also:
<?php //Datenbank Verbindung herstelle @mysql_connect(Server, Benutzer, PW); @mysql_select_db(keys);
//POST filtern $serial = mysql_real_escape_string($_POST["key"]);
//Abfrage aufbauen $sql = mysql_query("SELECT * FROM `testprodukt` WHERE BINARY `serial` = '$serial'") OR die(mysql_error());
//Abfragen ob Key vorhanden if(!mysql_num_rows($sql)) {
echo 'Key ungültig';
//Wenn vorhanden } else {
//Abfragen ob bereits genutzt $used = mysql_query("SELECT * FROM `testprodukt` WHERE BINARY `serial` = '$serial' AND `used` = '1'"); if(mysql_num_rows($used)) {
echo 'Wurde bereits benutzt';
//Wenn nicht } else {
//Daten Updaten und Meldung aufgeben if(mysql_query("UPDATE `testprodukt` SET `used` = '1', `date_activated` = NOW() WHERE BINARY `serial` = '$serial'")) {
echo 'vielen Dank!';
//Wenn Fehler bei Update } else {
echo 'Der Code konnte leider nicht aktiviert werden';
}
}
}
AI steht für Auto Increment - automatisches hoch zählen.
PK steht für Primary Key.
Durch die Kombination von AI und PK hast du ein Feld welches einmalig ist (PK) und sich von alleine, bei jeder neuen Zeile hoch zählt (AI) ohne dein zu tun. Bei einem Insert wird dann einfach auf das ID Feld Value "NULL" angewandt.
So hast du immer ein Feld auf welches du dich beziehen kannst, dessen Format du kennst und du sonst nichts weiter brauchst. Wenn du dein Script dann immer nach ID baust, was dann Update und Delete angeht - bist du eigentlich immer auf der sicheren Seite das die Aktion auch ausgeführt wird.
Mit freundlichen Grüßen / Best Regards
Julian Weiler | Geschäftsführender Gesellschafter
[Link: Registrierung erforderlich] ist außerdem bei [Link: Registrierung erforderlich], [Link: Registrierung erforderlich] und [Link: Registrierung erforderlich]
Telefon: +49 (0) 67 74 / 20 49 520
Fax: +49 (0) 67 74 / 20 49 520 9
E-Mail: [Mail: Registrierung erforderlich]
|
|
29.07.2013 10:13 |
|
|
Beiträge: 124
Bewertung: 1
Registriert seit: Dec 2011
Status:
offline
|
RE: [MySQL] PHP gibt nur "Array" aus
Danke @Storage-Base.de!
Du hast mir soeben den Tag gerettet
L.G.
MMS3 Admin
Steam & Skype: TerraBAS ッ
___________________________________________________
[Link: Registrierung erforderlich]
|
|
29.07.2013 10:15 |
|
|