Datenbankabfrage mit JOIN zwei gleichnamige Spalten in den jeweiligen Tabellen.
#16
geschrieben 29. September 2011 - 16:58
Anzeige
#17
geschrieben 29. September 2011 - 17:47
Zitat (CryztaN: 29. September 2011 - 16:58)
Ja mit dieses real_escape_string Ding hab ich im Zweifel auch noch ab und zu eingebaut, werd mich aber bei allen künftigen Sachen ab jetzt immer an die prepared Statements halten. Das macht einen sehr schönen Eindruck. Muß mir das nur alles mal in Gänze genau angucken. Wie gesagt mach ich ja eigentlich nichts Öffentliches also nichts im Web. Mein derzeitiges Projekt läuft nur im LAN mit 4 vertrauenswürdigen Benutzern. Ich will zwar deswegen nicht auf die Sicherheit verzichten aber kann das ganz in Ruhe machen und ausprobieren, dass ich für den Fall der Fälle, doch mal Öffentliches machen zu müssen/dürfen/sollen/können gerüstet bin.
#18
geschrieben 29. September 2011 - 18:01
Was du dir noch anschauen könntest wären Klassen und Functionen - OOP eben. (Objektorientiertes Programmieren).
Suche noch fleissige Helfer für mein Projekt - falls du Lust und Zeit hast schreib mir ne pn
#19
geschrieben 29. September 2011 - 18:15
Zitat (CryztaN: 29. September 2011 - 18:01)
Was du dir noch anschauen könntest wären Klassen und Functionen - OOP eben. (Objektorientiertes Programmieren).
Suche noch fleissige Helfer für mein Projekt - falls du Lust und Zeit hast schreib mir ne pn
Ja Funktionen sind kein Problem aber Klassen sind mir zu hoch. Die sind in meinem Denkspektrum nicht logisch. Genau wie dieses ->bindValue, das macht auch irgendwie nix weiter, als das gar keine Ausgabe mehr kommt bei mir. Nicht angezeigte Daten sind ja bestimmt super sicher aber zwei, drei Datensätze hätte ich schon gern gesehen.
Ansonsten hab ich aber im Moment sehr wenig Zeit für außerplanmäßige Projekte. Ich mach noch sehr, sehr viele andere Sachen nebenbei.
Dieser Beitrag wurde von Holger_N bearbeitet: 29. September 2011 - 18:17
#20
geschrieben 29. September 2011 - 18:35
$kl = new klasse();
#21
geschrieben 29. September 2011 - 20:12
Zitat (CryztaN: 29. September 2011 - 18:35)
$kl = new klasse();
Ich hab nur keine Vorstellung davon, was so eine Klasse macht bzw. was man damit überhaupt machen kann. Ich hab ja mit C++ aufgehört, weil mir das zu komplex war. In sich ist ja alles vielleicht logisch aber man konnte die Logik von außen nicht erkennen und ich hab nie verstanden, was "objektorientiert" in dem Zusammenhang heißt. Ich orientiere mich doch immer an dem Objekt, an dem ich arbeite.
Also bindValue hab ich immer noch nicht sinnvoll eingebaut bekommen. Wenn man irgendwas reinschreiben kann, dann hat es doch gar keine Bedeutung.
Dieser Beitrag wurde von Holger_N bearbeitet: 29. September 2011 - 20:41
#22
geschrieben 30. September 2011 - 05:42
Diese wuerde nach ' ' selectieren und anschliesend deine db löschen.
Wenn du select ... Where wort=:wort"; als platzhalter waehlst, verhinderst du es.
Klassen:
Class klasse { Public function GetNameById($id) { $db = $sql->prepare("SELECT * FROM user WHERE uid=:id;"); $db->bindValue(':id',$id); $db->execute(); $fetch = $dv->fetch; return $fetch['username']; } }
In einer anderen php datei steht dann:
Include("name der klassen php datei"); $kl = new klasse(); echo $kl->GetNameById(12);
$kl wird ein Objekt der Klasse "klasse" und mit $kl->GetNameById(--id die du willst--); fuehrst du die funktion in der Klasse aus.
Hier selectierst du nach namen etc in der die uid=12(siehe eingaben oben).
Ausgegeben wird somit der Name der eindeutig zu dieser Id passt.
Man sollte php code vom html Code bestmöglichst trennen.
Das selbe wie design vom inhalt
Ich hoffe ich konnts etwas erklaeren.
Lg
Naja mit bindValue setzt du platzhalter in deinem sql statement. Also wenn du irgendwo einen benutzer eingeben laesst nach was selectiert werden soll (einfaches suchscript zb) dann kannst du mit den platzhaltern verhindern, das er sowas hier eingibt: '; drop database db; --
Diese wuerde nach ' ' selectieren und anschliesend deine db löschen.
Wenn du select ... Where wort=:wort"; als platzhalter waehlst, verhinderst du es.
Klassen:
Class klasse { Public function GetNameById($id) { $db = $sql->prepare("SELECT * FROM user WHERE uid=:id;"); $db->bindValue(':id',$id); $db->execute(); $fetch = $dv->fetch; return $fetch['username']; } }
In einer anderen php datei steht dann:
Include("name der klassen php datei"); $kl = new klasse(); echo $kl->GetNameById(12);
$kl wird ein Objekt der Klasse "klasse" und mit $kl->GetNameById(--id die du willst--); fuehrst du die funktion in der Klasse aus.
Hier selectierst du nach namen etc in der die uid=12(siehe eingaben oben).
Ausgegeben wird somit der Name der eindeutig zu dieser Id passt.
Man sollte php code vom html Code bestmöglichst trennen.
Das selbe wie design vom inhalt
Ich hoffe ich konnts etwas erklaeren.
Lg
#23
geschrieben 30. September 2011 - 08:29
SELECT * FROM `tabelle` WHERE `xxx` = 'yyy' ;
weil ich ich früher nie die Syntax hinbekommen hab, dann in phpmyAdmin einfach eine Beispielabfrage gemacht habe und mir den dort angezeigten Code rauskopiert hab und mit diesen Dingern funktioniert das mit den Platzhaltern nicht.
#24
geschrieben 30. September 2011 - 08:40
ein so zerstört er dein system Platzhalter verwerden, wird das nicht mehr funktionieren .
#25
geschrieben 30. September 2011 - 08:45
Zitat (Holger_N: 28. September 2011 - 20:02)
$var1[] = $abfrage['id'];
eindeutig festzulegen, dass es die id aus der ersten Tabelle sein soll?
SELECT *, t1.id AS id1, t2.id AS id2 FROM tabelle_1 AS t1 LEFT JOIN tabelle_2 AS t2 ON t1.spalte2 = t2.id;
Dann id1 und id2 verwenden.
MfG TO_Webmaster
called a hen the most elegant creature.
The hen pleased for that,
laid an egg in his hat.
And so did the hen reward Beecher.
#26
geschrieben 30. September 2011 - 08:47
t1 und t2 dürfte nicht identifizierbar sein.
#27
geschrieben 30. September 2011 - 08:49
Zitat (CryztaN: 30. September 2011 - 08:47)
t1 und t2 dürfte nicht identifizierbar sein.
Doch, das geht.
MfG TO_Webmaster
called a hen the most elegant creature.
The hen pleased for that,
laid an egg in his hat.
And so did the hen reward Beecher.
#28
geschrieben 30. September 2011 - 08:50
Hatte ich garnicht bedacht, dies so zu lösen .
#29
geschrieben 30. September 2011 - 09:11
Zitat (TO_Webmaster: 30. September 2011 - 08:45)
SELECT *, t1.id AS id1, t2.id AS id2 FROM tabelle_1 AS t1 LEFT JOIN tabelle_2 AS t2 ON t1.spalte2 = t2.id;
Dann id1 und id2 verwenden.
MfG TO_Webmaster
Danke, da ham wirs ja. Sooo ist das eindeutig.
#30
geschrieben 30. September 2011 - 10:01
MfG TO_Webmaster
called a hen the most elegant creature.
The hen pleased for that,
laid an egg in his hat.
And so did the hen reward Beecher.