Also ich nehm folgenden Code: <?php $user[46]["id"]="46"; $user[46["name"]="Irgendwas"; $user[46]["email"]="irgendwas@wer.com"; echo "Der User mit der ID $user[46]["id"] heißt $user[46]["name"]. Seine Emailadresse ist $user[46]["email"]<br>\n"; ?> Dreamweaver sagt: Keine Fehler oder Warnungen gefunden.[HTML 4.0] Firefox bzw IE sagt : Parse error: syntax error, unexpected '[', expecting ']' in /usr/export/www/index.php on line 4 Daher die Frage was is denn nu falsch un wie kann ich es "gangbar" machen. Das steht so aber in meinem Buch von Gallileo Computing zumindest das Grundgerüst mit den doppelten Arrays.
Gast
#1110503
Array lassen sich nicht so ausgeben echo "Der User mit der ID ".$user[46]["id"]." heißt ".$user[46]["name"]. Seine Emailadresse ist ".$user[46]["email"]."<br>\n"; sollte gehen
und wieso der . ?
Peter wrote:
> Array lassen sich nicht so ausgeben
Soweit ich weiß geht das so in PHP.
Das Problem ist einfach nur, dass du in einer Zeile eine geschlossene
eckige Klammer vergessen hast.
und wo? jede offene wird auch wieder geschlossen
Gast
#1110511
nein es kann nicht gehen weil der string in " angeschlossen wird, aber das array auch wieder ein " braucht.
> und wo? jede offene wird auch wieder geschlossen
Hier
$user[46["name"]="Irgendwas";
^
|
Das sagt im übrigen auch die Fehlermeldung. Brauchst nur durchzählen
welches die Zeile Nr 4 ist. Laut Fehlermeldung fehlt dort ein ']'
habsch au eben gesehen nur jetzt kommt: Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in index.php on line 7 das wieder liegt 100% mit dem " zusammen am ende Aktueller Code: <?php $user[46]["id"]="46"; $user[46]["name"]="Irgendwas"; $user[46]["email"]="irgendwas@wer.com"; echo "Der User mit der ID $user[46]["id"] heißt $user[46]["name"]. Seine Emailadresse ist $user[46]["email"]"; ?>
Wo beginnt und wo endet in
1 | |
2 | |
der String. (Hinweis: Das Syntaxcoloring hier im Forum zeigt dir das sogar recht deutlich) Ein String geht vom öffnenden " bis zum nächsten ", welches den String wieder schliesst. Du hast hier also
1 | |
Der String geht bis ...46][, dann ist er zuende, als nächstes kommt id, was nicht mehr Teil des Strings ist. Wie Peter oben schon sagte
1 | |
oder auch
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
Gast
#1110533
glaut mir doch mal es geht so nicht http://de.php.net/manual/en/function.echo.php so geht es auch "echo "this is {$baz['value']} !"; ich würde aber "echo "this is ".$baz['value']." !"; schreiben
Also habs mal kastriert: echo "Der User mit der ID ".$user[46][id]."<br>\n"; Die Variablen und der rest ist gleich so funzt es nur warum ausgerechnet ". ." hab ich noch nit gerallt
Gast
#1110544
der . verbindet einfach 2 Stings miteinander.
und wieso muss ich dann noch mal neu nen string auf machen?
Nette Mann wrote: > Die Variablen und der rest ist gleich so funzt es nur warum ausgerechnet > ". ." hab ich noch nit gerallt Weil der Punkt aus 2 Strings einen einzigen macht Deine Ausgabe besteht aus 3 Teilen 1) aus "Der User mit der ID " 2) dem Inhalt von $user[46][id] 3) und dem String "<br>\n" Mit dem . werden diese 3 einzelnen Strings aneinandergehängt und ergeben den kompletten String, den echo dann ausgibt. Alternativ hättest du dem echo auch die 3 Strings einzeln als 3 gesonderte Ausgaben übergeben können
1 | |
2 | |
3 | |
4 | |
5 | |
Die Lösung sieht übrigens so aus: <?php $user[46]["id"]="47"; $user[46]["name"]="Irgendwas"; $user[46]["email"]="irgendwas@wer.com"; echo "Der User mit der ID ".$user[46][id]." heißt ".$user[46][name].". Seine Emailadresse ist ".$user[46][email]."<br>\n"; ?> ODER <?php $user[46]["id"]="47"; $user[46]["name"]="Irgendwas"; $user[46]["email"]="irgendwas@wer.com"; echo "Der User mit der ID ".$user[46]["id"]." heißt ".$user[46]["name"].". Seine Emailadresse ist ".$user[46]["email"]."<br>\n"; ?> nebenbei was bringt eigentlich das br? lass ich es weg sieht es aus wie vorher
Gast
#1110552
HÄ? also mal ohne das echo $s = "asdfasdf"; bei 2 Strings macht man $s = "String1" . "String2"; mit variable $s = "Sting1 $variable "String2"; und jetzt mit array $s = "String1" . $array["1"] . "String2"; und echo will nunmal ein String haben. echo $s damit kann $s gleich eingsetzt werden und man hat das konstrukt von oben
$sprache = array("0" => "dutsch", "1" => "polnisch", "2" => "wayne")
? eher so denke
wegen
bei 2 Strings macht man
$s = "String1" . "String2";
und das br is wofür?
Gast
#1110555
Das sollte man nicht machen $user[46][email] String immer in " setzen. also: $user[46]["email"] http://de.php.net/manual/en/language.types.array.php
und das br is wofür?
http://www.mediaevent.de/xhtml/br.html Du kennst aber schon google und weisst wie man ihn benutzt?
Gast
#1110561
> und das br is wofür?
"<br>\n"
das <br> ist ein Zeilenumbruch für den Browser/Benutzer
das \n für den quellcode der HTML, könnte man weglassen
klar kenn ich google und wie man googelt weis ich auch nur wenn de geschrieben hättest br = Zeilenumbruch hätte das Board ein paar Byte gespart. Und eventuell hat jemand das selbe prob und liest sich das hier auch mal durch. SOwas soll es ja auch geben.
Nette Mann wrote:
> geschrieben hättest br = Zeilenumbruch hätte das Board ein paar Byte
Sorry.
Aber als angehender PHP Programmierer sollte man schon ein paar einfache
HTML Experimente (= HTML Code im Klartext mit Notepad schreiben) gemacht
haben. Und dabei stolpert man zwangsweise über <br>
PHP erzeugt einen HTML-Text, der dann vom Browser ausgeführt wird.
Um also PHP zu programmieren, muss man wissen, welchen HTML-Code der
Browser sehen will. Und dazu muss man nun mal ein paar HTML Tags (aka
HTML-'Befehle') kennen.
Gast
#1110577
@Nette Mann Ich muss aber auch sagen, wenn man gleich mit Dreamweaver anfängt und mit array loslegt sollte man zu erste verstehen was man macht, dazu gehört es auch das man die Grundlagen von HTML versteht. Also mal eine kleine webseite mit dem notepad erzeugen kann. Als nächstes sollte man ein kleines "Hallo World" in php schreiben und nicht alle irgendwo her kopieren. Wo hattest du die Zeile echo "Der User mit der ID $user[46]["id"] heißt $user[46]["name"]. Seine Emailadresse ist $user[46]["email"]<br>\n"; überhaupt her, wenn du nicht weiss was sie macht? Ist das die neue Copy/Past gesellschaft!
Vielleicht solltest du erst mal ein einführendes HTML Tutorial durchmachen. So wie das hier http://de.html.net/tutorials/html/ damit du überhaupt verstehst, was dein PHP-Code als Ausgabe überhaupt erzeugen muss, damit der Browser etwas Bestimmtes macht.
html hab ich hinner mir und php verbindung aufbauen zu mysql sowie login und cookie setzen. nur das br hatte ich meistens mit <p> </p> umgangen. ENtschuldigung das ich gefragt hatte.
Gast
#1110591
Die Zeile hier
1 | |
2 | |
ist FALSCH und nicht mehr modern, weil:
- Konstanten (die Array-Indizes, id, name, email) setzt man in einfache
Anführungszeichen, das spart Ausführungszeit.
- Eingeschlossene Variablen sollte man in {} setzen, damits keine
Verwirrung gibt.
- Rohdaten dürfen nicht ungefiltert an den Browser gelangen.
Richtig für die ersten beiden Punkte wäre:1 | |
Und ganz korrekt wäre:
1 | |
2 | |
3 | |
4 | |
Den Kram mit ß kann man sich übrigens getrost schenken. Sinnvoller
ists da, den richtigen Zeichensatz anzugeben. Dann müssen nur noch < und
> und & und " maskiert werden.
Peter wrote: > nein es kann nicht gehen weil der string in " angeschlossen wird, aber > das array auch wieder ein " braucht. Achso, ja stimmt. Gar nicht gesehen :-)
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.