| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |
|

31-03-2009, 17:48
|
|
kyloe
Newbie
|
|
Registriert seit: Mar 2009
Beiträge: 20
|
|
[gelöst] MySQL-Abfrage will nicht so wie ich.
Moin allerseits!
Erster Beitrag und schon ein Problem...
Bei einer Abfrage bekomme ich anstatt der abgelegten Buchstaben nur die Spaltenüberschrift, in dem Fall "12".
relevanter code:
PHP-Code:
$abfrage_txt = "SELECT '$position_num' AS inhalt FROM erste WHERE id='$position'";
$ergebnis_txt = mysql_query($abfrage_txt);
while ($row1 = mysql_fetch_array($ergebnis_txt))
{
$inhalt = $row1["inhalt"];
}
Die DB "erste" sieht folgend aus:
id 11 12 13
--------------------
1 os osw osw
2 nos nosw nosw
3 nos nosw nosw
$position wird mit "2" übergeben
$position_num wird mit "12" übergeben
trotzdem wird bei $inhalt immer nur "12" angezeit. grrr
...und ja, viele PHP-Resourcen durchgegangen und Gooogle qualmt von meinen vielen Anfragen. ;-)
Irgendwie hab ich da keine Idee mehr...mir qualmt der Kopp
Geändert von kyloe (31-03-2009 um 19:40 Uhr)
|

31-03-2009, 17:50
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.308
|
|
PHP-Code:
$abfrage_txt = "SELECT $position_num AS inhalt FROM erste WHERE id=$position";
peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
|

31-03-2009, 19:12
|
|
kyloe
Newbie
|
|
Registriert seit: Mar 2009
Beiträge: 20
|
|
Zitat:
Original geschrieben von Kropff
PHP-Code:
$abfrage_txt = "SELECT $position_num AS inhalt FROM erste WHERE id=$position";
peter
|
thx für die schnelle Antwort!
Leider keinerlei Änderung, auch ohne die Quotes ...
|

31-03-2009, 19:34
|
|
asp2php
Banned
|
|
Registriert seit: Feb 2004
Beiträge: 11.746
|
|
nimm Backstick dafür:
PHP-Code:
$abfrage_txt = "select `$position_num` fromAS inhalt FROM erste WHERE id=$position";
|

31-03-2009, 19:39
|
|
kyloe
Newbie
|
|
Registriert seit: Mar 2009
Beiträge: 20
|
|
Jippi!
supi, thx...mit den Delimitern gehts. Da wäre ich wohl erst nach dem Studieren der ganzen MySQL-Referenz drauf gekommen. ;-)
|

22-04-2009, 18:59
|
|
kyloe
Newbie
|
|
Registriert seit: Mar 2009
Beiträge: 20
|
|
Tipp gesucht, Alle Felder editieren
Ich weiss nicht, ob das sinnvoll ist meine Frage hier zu posten, aber irgendwie möchte ich auch nciht dafür einen neuen Thread aufmachen...(bin noch neu und schüchtern) ;-)
Aber vllt. liest es ja auch hier eine/r:
In einem Online-Textadventure hab ich die Räume in die Felder einer Tabelle gelegt. Soweit klappt alles wie ich will. Was ich nun bräuchte, wäre ein Admin-Interface, mit dem ich alle Felder editierbar habe. Editieren mit einem Feld ist kein Problem, aber da immer Abhängigkeiten mit den Nachbarfeldern sind, müsste ich die zeitgleich auch editieren können.
Ich suche auch nicht unbedingt ein fertiges Script, sondern nur einen Lösungsansatz. Irgendwie hab ich da ne Blockade im Hirn. Bin dankbar für jeden Ansatz.
NB: wenn es sich unbedingt einer ansehen will, schicke ich gerne den Link vom Spiel via PN. Ich halt noch nichts zum veröffentlichen...
|

22-04-2009, 19:10
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.188
|
|
Kann mir wenig darunter vorstellen.
Aber was macht es für dich für einen Unterschied, ob du EIN Feld bearbeitest, oder mehrere?
|

22-04-2009, 19:21
|
|
kyloe
Newbie
|
|
Registriert seit: Mar 2009
Beiträge: 20
|
|
Zitat:
Original geschrieben von TobiaZ
Kann mir wenig darunter vorstellen.
Aber was macht es für dich für einen Unterschied, ob du EIN Feld bearbeitest, oder mehrere?
|
...ist vllt. ein bischen unglücklich ausgedrückt: Bearbeiten kann ich natürlich immer nur ein Feld, aber die anderen Felder müsste dabei sichtbar sein. Ausserdem müsste ich quasi in ein Nachbarfeld springen können um dieses dann auch zu editieren.
Mom, ich mach mal ein Bild von meiner Vorstellung...kommt gleich
Geändert von kyloe (22-04-2009 um 19:31 Uhr)
|

22-04-2009, 19:25
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.188
|
|
Zitat:
|
Bearbeiten kann ich natürlich immer nur ein Feld, aber die anderen Felder müsste dabei sichtbar sein. Ausserdem müsste ich quasi in ein Nachbarfeld springen können um dieses dann auch zu editieren.
|
Das ist doch kein Problem. Auslesen und Anzeigen kannst du doch alle Felder.
Die Frage ist, ob du alle Felder auf einmal editierbar machen willst, oder nur jeweils ein einzelnes.
Falls ersteres der Fall ist, brauchst du natürlich auch weiterhin nur eine UPDATE-Query
Falls du alle Felder auf einmal bearbeiten willst, dann brauchst du für jedes Feld eine Query (so schätze ich zumindest dein DB-Layout ein). Aber auch das ist eigentlich kein größeres Hindernis.
Wenn du etwas fortgeschritten bist, kannst du das speichern auch vornehmen, ohne die Seite neu zu laden. Dann wären aber ein paar Grundlagen in Richtung AJAX erforderlich.
|

22-04-2009, 19:35
|
|
kyloe
Newbie
|
|
Registriert seit: Mar 2009
Beiträge: 20
|
|
So, Bild von meiner Vorstellung ist oben....
...und ne, fortgeschritten bin ich nicht, aber da ich seit Wochen im Krankenhaus liege und auch ncoh einige Zeit dort und in der Reha liegen werde, kann ich mir noch viel aneignen.
Zitat:
|
Falls du alle Felder auf einmal bearbeiten willst, dann brauchst du für jedes Feld eine Query (so schätze ich zumindest dein DB-Layout ein). Aber auch das ist eigentlich kein größeres Hindernis.
|
JA, genau das. Ist für mich aber noch irgendwie ein Hindernis.
Geändert von kyloe (22-04-2009 um 19:49 Uhr)
|

22-04-2009, 19:50
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.188
|
|
zwei möglichkeiten, entsprechen im wesentlichen denen von oben:
für jedes textfeld+button ein formular. => eine Update Query
alle felder in ein Formular => Alle Felder werden in der DB geändert. (egal ob du eine änderung vorgenommen hast)
eine REPLACE-Query könnte dich in dem Zusammenhang interessiern.
|

23-04-2009, 15:41
|
|
kyloe
Newbie
|
|
Registriert seit: Mar 2009
Beiträge: 20
|
|
moinsen, hab da mal eine Konstruktion geklöppelt, die mir genau das Seitenlayout bringt, was ich suchte. Tut alles wunderbar, bis auf das updaten der "id" 2-5...hm. Wie könnte ich das "where" passend machen? Oder ist das so garnicht möglich?
Die DB "erste" sieht folgend aus:
id 11 12 13
--------------------
1 txt txt txt
2 txt txt txt
3 txt txt txt
PHP-Code:
if ($button1==" OK ") {
mysql_query("UPDATE erste SET `11` = '$spalte1' where id = '?'");
header ("Location: $PHP_SELF");
if ($button2==" OK ") {
mysql_query("UPDATE erste SET `12` = '$spalte2' where id = '?'");
header ("Location: $PHP_SELF");
if //.....usw. [snip]
else {
$query = "SELECT * FROM erste"; //Debugging or die(mysql_error().'<hr />'. $query .'<hr />')
$result = mysql_query($query);
while ($row = mysql_fetch_array($result, MYSQL_NUM))
{
PHP-Code:
<tr>
<td> <form method="post" action="<? "$PHP_SELF" ?>">
<textarea name="spalte1" cols="30" rows="10"><?PHP echo $row[1]; ?></textarea>
<input type="submit" name="button1" value=" OK "><?PHP echo $row[0],", 11"; ?>
</form></td>
<td> <form method="post" action="<? "$PHP_SELF" ?>">
<textarea name="spalte2" cols="30" rows="10"><?PHP echo $row[2]; ?></textarea>
<input type="submit" name="button2" value=" OK "><?PHP echo $row[0],", 12"; ?>
</form></td>
<td>//......usw. [snip]
|

23-04-2009, 15:47
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.188
|
|
Zitat:
|
bis auf das updaten der "id" 2-5...hm. Wie könnte ich das "where" passend machen? Oder ist das so garnicht möglich?
|
Häh???
Du hast deine Spalten nicht wirklich 1-x genannt???
register_globals hast du beachtet?
Sql-Injections auch?
Du musst doch wissen, welchen Eintrag du bearbeiten willst, also kannst du doch auch eine ID vergeben. Die kennst du doch schon, schließlich hast du den Eintrag ja auch vorher ausgelesen.
|

23-04-2009, 16:04
|
|
kyloe
Newbie
|
|
Registriert seit: Mar 2009
Beiträge: 20
|
|
Zitat:
Original geschrieben von TobiaZ
Häh???
Du hast deine Spalten nicht wirklich 1-x genannt???
register_globals hast du beachtet?
Sql-Injections auch?
Du musst doch wissen, welchen Eintrag du bearbeiten willst, also kannst du doch auch eine ID vergeben. Die kennst du doch schon, schließlich hast du den Eintrag ja auch vorher ausgelesen.
|
Doch, ich hab die Spaltennamen numerisch. Wieso? Geht einwandfrei und da ich Zähler in der Navigation habe, erleichtert mir das die Zuordnung.
Mit der ID habe ich ja gerade meine Schwierigkeiten: Im Script hab ich z.Z. 5 buttons, aber in der Ausgabe sind das insgesamt 25 Felder. Wie ordne ich denn einen OK-Button, den ich z.B. auf Feld "A 3" klicke, die ID 3 zu?
Und sorry, das ist wahrscheinlich html,php,mysql-technisch unterste Schiene, aber fragen kostet ja nichts. Sollte ich hier falsch sein, bitte ich höflichst um einen Link, wo ich solche Fragen stellen könnte.
|

23-04-2009, 16:20
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.188
|
|
Zitat:
|
Doch, ich hab die Spaltennamen numerisch. Wieso? Geht einwandfrei und da ich Zähler in der Navigation habe, erleichtert mir das die Zuordnung.
|
Naja, ist generell von abzuraten. Erkennt man schon allein daran, dass es nötig ist Backticks zu verwenden.
Zitat:
|
Mit der ID habe ich ja gerade meine Schwierigkeiten: Im Script hab ich z.Z. 5 buttons, aber in der Ausgabe sind das insgesamt 25 Felder. Wie ordne ich denn einen OK-Button, den ich z.B. auf Feld "A 3" klicke, die ID 3 zu?
|
Das machst du schon bei der Ausgabe. Gib einfach im Formular eine Hidden-Field mit der ID ein. Oder benenn den Button entsprechend der ID, oder oder oder...
Zitat:
|
Und sorry, das ist wahrscheinlich html,php,mysql-technisch unterste Schiene, aber fragen kostet ja nichts.
|
Nö, unterste Schiene ist es nicht. Die grundlagen scheinst du ja zu beherrschen (abgesehen von den eben erwähnten hinweisen), aber konzeptionell und logisch fehlt dir halt ne ganze Menge. Aber dafür bekommst du ja die Hinweise.
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|