Autor Beitrag
Dude566
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1592
Erhaltene Danke: 78

W8, W7 (Chrome, FF, IE)
Delphi XE2 Pro, Eclipse Juno, VS2012
BeitragVerfasst: Di 12.04.11 19:51 
Hallo Leute,

ich arbeite an einem für meine Verhältnisse etwas größeren Projekt und habe ein Problem das ich nicht lösen kann.

Ich möchte in einer Tabelle alle Nutzer meiner Seite auflisten und dann natürlich auch einen Link zu ihrer Seite in der Tabelle anzeigen.
Gespeichert sind die Nutzerdaten in $user, was ein zweidimensionales Array ist, also z.B. den Namen des 5. Benutzers mit:
$user[4]['name']

Jetzt habe ich aber Probleme bei dem Link in meiner Tabelle, der Name des Links wird richtig angezeigt, jedoch der Teil wo die Variable (Benutzername) als Parameter für "action" greifen sollte bleibt leer. :gruebel:

Hier mal ein Schnipsel:
ausblenden Quelltext
1:
2:
3:
for($i = 0; $i <= count($user) - 1; $i++) {
  echo('<tr><td>'.$user[$i]['id'].'</td><td><a href="gallery.php?action="'.$user[$i]['name'].'">'.$user[$i]['name'].'</a></td></tr>');
}


Ich hoffe es ist klar, was nicht funktioniert und ihr könnt mir helfen.

Schönen Gruß,
Dude566

Edit: Code abgeändert.


Moderiert von user profile iconChristian S.: Topic aus Delphi4PHP-Technologien verschoben am So 15.07.2012 um 13:10

_________________
Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen.


Zuletzt bearbeitet von Dude566 am Di 12.04.11 22:09, insgesamt 1-mal bearbeitet
Luckie
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 11830
Erhaltene Danke: 162

Windows 7 Home
BDS2006
BeitragVerfasst: Di 12.04.11 21:23 
Hast du denn eine Ausgabe bei
echo $user[0]['name'].

_________________
Gruß Michael

Für diesen Beitrag haben gedankt: Dude566
Dude566 Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1592
Erhaltene Danke: 78

W8, W7 (Chrome, FF, IE)
Delphi XE2 Pro, Eclipse Juno, VS2012
BeitragVerfasst: Di 12.04.11 21:46 
Ja, denn hinten beim Linktext, also dem Text zwischen den Link-Tags funktioniert es ja.

_________________
Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen.
ub60
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 694
Erhaltene Danke: 92



BeitragVerfasst: Di 12.04.11 21:53 
Liegt es daran?
ausblenden Quelltext
1:
for($i = 0; $i <= count($user) - 1; $i++)					

ub60

Für diesen Beitrag haben gedankt: Dude566
Dude566 Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1592
Erhaltene Danke: 78

W8, W7 (Chrome, FF, IE)
Delphi XE2 Pro, Eclipse Juno, VS2012
BeitragVerfasst: Di 12.04.11 22:07 
Ändert leider auch nichts an dem Fehler. :nixweiss:

_________________
Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen.
Bergmann89
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1742
Erhaltene Danke: 72

Win7 x64, Ubuntu 11.10
Delphi 7 Personal, Lazarus/FPC 2.2.4, C, C++, C# (Visual Studio 2010), PHP, Java (Netbeans, Eclipse)
BeitragVerfasst: Di 12.04.11 22:55 
Hey,

versuch mal das ganze in einer Variable zwischen zu speichern. Un schreibt man die Hochkommas nicht normalerweiße mit \"?
€: da is auch eins zu viel drin, oder:
ausblenden Quelltext
1:
<a href=\"gallery.php?action="'.$user[$i]['name'].'\">					



MfG Bergmann.

_________________
Ich weiß nicht viel, lern aber dafür umso schneller^^

Für diesen Beitrag haben gedankt: Dude566
Dude566 Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1592
Erhaltene Danke: 78

W8, W7 (Chrome, FF, IE)
Delphi XE2 Pro, Eclipse Juno, VS2012
BeitragVerfasst: Mi 13.04.11 07:31 
Ich glaube das " hinter dem Action ist falsch, bin unterwegs und kann es nicht direkt testen. \ muss ich nicht verwenden da mein String ja mit ' begrenzt wird.

_________________
Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen.
buster
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 66
Erhaltene Danke: 7

WIN 7
Delphi 2010 Prof
BeitragVerfasst: Mi 13.04.11 09:35 
Variablen innerhalb von Hochkommata werden nicht durch ihren Wert ersetzt... kuck mal hier

besser wäre also
ausblenden Quelltext
1:
echo "<tr><td>" . $user[$i]['id'] . "</td><td><a href=\"gallery.php?action=" . $user[$i]['name'] . "\">" . $user[$i]['name'] . "</a></td></tr>";					

oder gleich
ausblenden Quelltext
1:
 ?><tr><td><?php echo $user[$i]['id']; ?></td><td><a href="gallery.php?action=<?php echo $user[$i]['name']; ?>"><?php echo $user[$i]['name']; ?></a></td></tr><?php					

da kommen solche Probleme mit dem Interpreter gar nicht erst auf ;)

noch zwei kleine Tipps: bei $i sollte es doch reichen, wenn es kleiner als count($user) ist (spart das -1);
und das count($user) sollte man bereits vorher bestimmen und dann nur noch auf die Variable prüfen, da es ansonsten bei jedem Schleifendurchlauf neu ermittelt wird, was bei großen Datenmengen durchaus die Performance beeinflusst

Für diesen Beitrag haben gedankt: Dude566
jfheins
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 863
Erhaltene Danke: 142

Win7
VS 2013, VS2015
BeitragVerfasst: Mi 13.04.11 11:44 
user profile iconub60 hat folgendes geschrieben Zum zitierten Posting springen:
Liegt es daran?
ausblenden Quelltext
1:
for($i = 0; $i <= count($user) - 1; $i++)					

ub60

Nein. das erste ist die Zuweisung, dann kommt der Vergleich und am Ende das Inkrement. Das ist schon richtig so. Zuweisung mit =

user profile iconDude566 hat folgendes geschrieben Zum zitierten Posting springen:
Ich glaube das " hinter dem Action ist falsch, bin unterwegs und kann es nicht direkt testen. \ muss ich nicht verwenden da mein String ja mit ' begrenzt wird.

Richtige Lösung ;) Das eine " ist zu viel, heraus kommt vermutlich ungültiger HTML Quelltext. Nächstes mal vielleicht auch da mal rein gucken ;)

user profile iconbuster hat folgendes geschrieben Zum zitierten Posting springen:
Variablen innerhalb von Hochkommata werden nicht durch ihren Wert ersetzt... kuck mal [url=www.php-faq.de/q-sti...chen.html]hier[/url]

Das stimmt zwar, hat aber mit dem Problem nichts zu tun. Die Variablen sind ja nicht in Hochkommata(') eingeschlossen. Das HTML Zeug ist in Hochkommata, damit man im HTML Code noch das " verwenden kann ohne escapen zu müssen.
user profile iconbuster hat folgendes geschrieben Zum zitierten Posting springen:
besser wäre also
ausblenden Quelltext
1:
echo "<tr><td>" . $user[$i]['id'] . "</td><td><a href=\"gallery.php?action=" . $user[$i]['name'] . "\">" . $user[$i]['name'] . "</a></td></tr>";					

oder gleich
ausblenden Quelltext
1:
 ?><tr><td><?php echo $user[$i]['id']; ?></td><td><a href="gallery.php?action=<?php echo $user[$i]['name']; ?>"><?php echo $user[$i]['name']; ?></a></td></tr><?php					

da kommen solche Probleme mit dem Interpreter gar nicht erst auf ;)

Zugegeben, "besser" ist subjektiv. Aber DAS DA fällt ganz bestimmt nicht in die Kategorie. Die erste Version verwendet " statt den ' was zur Folge hat, dass man im HTMl Code die " escapen muss. Der "Vorteil" dass in den " Variablen ersetzt werden, wird nicht genutzt. Stattdessen wird der String wieder zertrennt. Also im Grunde nur ein paar ' weggelassen und dafür gleich viele " und ein paar \ hinzugefügt.
Die zweite Variante ist bei viel HTML Code das Mittel der Wahl, aber hier imho nicht angebracht weil ebenfalls unübersichtlich.

Für diesen Beitrag haben gedankt: Dude566
buster
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 66
Erhaltene Danke: 7

WIN 7
Delphi 2010 Prof
BeitragVerfasst: Mi 13.04.11 14:30 
user profile iconjfheins hat folgendes geschrieben Zum zitierten Posting springen:
Zugegeben, "besser" ist subjektiv.

Stimmt... andersherum musst du ja das Hochkomma escapen ;) Ist sicher auch eine Frage der Gewohnheit, ich persönlich hab mit dem Escapen kein Problem. Da werden wohl beide Varianten Vor- und Nachteile haben, mir fallen bloß gerade keine ein.
Wobei double quoted strings ja noch mehr Escapesequenzen bieten. Hier noch etwas mehr dazu...

Für diesen Beitrag haben gedankt: Dude566
Dude566 Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1592
Erhaltene Danke: 78

W8, W7 (Chrome, FF, IE)
Delphi XE2 Pro, Eclipse Juno, VS2012
BeitragVerfasst: Mi 13.04.11 15:05 
user profile iconDude566 hat folgendes geschrieben Zum zitierten Posting springen:
Ich glaube das " hinter dem Action ist falsch, bin unterwegs und kann es nicht direkt testen. \ muss ich nicht verwenden da mein String ja mit ' begrenzt wird.


Habe es so korrigiert und jetzt funktioniert es, ich habe ja bewusst die Hochkommata verwendet um die Anführungszeichen für den Link verwenden zu können.

Das mit der Schleife werde ich auch noch abändern, danke! ;)

_________________
Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen.