Linux-Hilfe

GraKa

Semiprofi
Thread Starter
Mitglied seit
28.09.2008
Beiträge
2.712
Hi!

Ich hab vor kurzem mit PHP angefangen und bin gerade dabei mir diese Grundlagen hier durchzulesen:

http://tut.php-quake.net/de/index.html

Bin also kompletter Noob.

Bei Kapitel 6 "Variablen" versteh ich folgendes nicht, hier steht zwar was Variablen sind doch nicht für was man die braucht.

Dort stehen Beispiele wie

<?php
$var = 'Inhalt';
$_auch_gültig = "anderer Inhalt";
$123 = "nicht gültig :(";
$eine_variable = $andere_variable;
?>

Doch es steht nicht dabei was zum Beispiel $var ist und was man mit diesen Variablen alles machen kann also den Sinn dahinter versteh ich nicht.

Vielen Dank für eure Hilfe!

Lg GraKa!
 
Zuletzt bearbeitet:
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
okay ich versuche es mal zu erklären.
angenommen du willst eine simple rechenoperation durchführen.
z.B.:

2 + 3 = 5

so schreibst du in php:

$ergebnis = 2 + 3;

wenn du dir dann die Variable $ergebnis ausgeben lässt z.B. so

echo $ergebnis;

so steht da:
5

Eine Variable kann also schonmal die Ergebnisse von Rechenoperationen enthalten.
Gleiches gilt für Wörter, Sätze, andere Variablen......

Stell es dir einfach als eine Art Container vor, der immer den gleichen Namen hat aber unterschiedliche Werte enthalten kann.

So hast du z.B. unsere Variable $ergebnis und machst folgendes.

$ergebnis = $variable1 + $variable2;

jetzt stell dir vor du programmierst einen Tachenrechner der nur Addition beherscht.
Das Programm sähe so aus:

Eingabe durch Benutzer -> Schreibe Eingabe in $variable1
Zweite Eingabe durch Benutzer -> Schreibe Eingabe in $variable2
Programm setzt Variable $ergebnis auf die Addition von $variable1 und $variable2
($ergebnis = $variable1 + $variable2; )
Programm gibt Ergebnis aus
(echo $ergebnis; )

Wie du siehst können die beiden Variablen unterschiedliche Werte enthalten (z.B. eine natürliche Zahl).

Ich hoffe das hilft dir etwas...
 
wie schon im icq - fang doch einfach an ;) leraning by doing! such dir n kleiens projekt und du wirst recht schnell rausfinden für was du das "zeugs" brauchst :P

mfg
 
@aproject

Vielen Dank für deine Hilfe, das hilft mir wirklich, jetzt weiß ich auch wozu das gut ist, danke !

@Huaba .. ja :p!
 
gern geschehen,
ich muss Huaba recht geben. In der IT gilt:
lesen, machen, lernen

Wenn du autodidaktisch veranlagt bist hast du schonmal gute Karten ne Programmier/Skriptsprache zu lernen. Bei dem Quake-net Tutorial bist du schonmal garnicht so falsch.
 
wobei ich hier nciht schon bei sonem dicken projekt wie nem fotoalbum mti popup effekten und weiß der geier was anfangen würde... bastel ein funktionierendes, gut gescriptetes login-system. war jedenfalls mein 1. projekt, hab da so ziemlich alle grundlagen verbraten. dann kannst ja umsteigen...

und umsonst isses ja nicht, vll kannstes ja in ein andres projekt mal verbaun :P

mfg
 
Hi!

Also ich verstehs nicht ganz warum das hier nicht funktioniert:

<?php

$var1 = 10
$var2 = 50
$var3 = 99
$var4 = 20

if ($var1 == 10) {$var2;} else {$var3;}

?>

Danke schonmal,

lg GraKa!
 
Was willst du denn mit den Variablen machen? Sie einfach nur hinzuschreiben hat keinen Effekt, wenn gar kein Zugriff auf sie statt findet.

Ich nehme mal an du wolltest $var2 ausgeben, wenn $var1 == 10 und $var3 ansonsten.
Das sieht dann so aus.
Code:
if ($var1 == 10) {
  echo $var2;
} else {
  echo $var3;
}

Ifs in einer Zeile ist übrigens schlechter Code-Stil, machs entweder so wie ich und schreibe die Anweisungen innerhalb der Klammern immer eingerückt und in separate Zeilen oder in der Form:

Code:
if ($var1 == 10)
{
  echo $var2;
}
else
{
  echo $var3;
}

Da du hier in jedem Klammerblock aber nur eine Anweisung hast, kannst du Klammern auch ganz weglassen, einrücken solltest du aber der Übersichtlichkeit wegen trotzdem:
Code:
if ($var1 == 10)
  echo $var2;
else
  echo $var3;
 
Okay danke, deshalb funktionierts nicht weil ich kein Echo geschrieben habe.

Kann ich jetzt auch schreiben:

if ($var1 == 10) {echo "Wahre Aussage";} else {echo "Falsche Aussage";} //hier ans Ende muss ich kein ; machen oder ?

Wie kann ich einrücken :fresse:

Danke, lg GraKa!
 
Einrücken kannst du mit Tabstop oder Leerzeichen. Sieht dann so aus.

PHP:
IF (1=1)
{
    4 Leerzeichen am Zeilenanfang
}

(php)(/php)Alles dazwischen wird hier im Forum als PHP Quelltext angezeigt. Natürlich mit Eckigen Klammern. Wenn du das nicht machst, hält er deine Eingaben hier für HTML und verschluckt mehrfache Leerzeichen. Dann würde das ganze so aussehen:

IF (1=1)
{
4 Leerzeichen am Zeilenanfang
}
 
Ah okay danke :)

PHP:
    echo "eingerückt";
echo "Tabulator geht hier nicht";
echo "macht aber nichts";

Dann noch was, ich möcht mir jetzt so eine Upload-Funktion basteln.

Wenn ich Hilfe brauch dann meld ich mich hier, hier bekommt man ja noch Hilfe :d

Lg GraKa!
 
Zuletzt bearbeitet:
Doch Tabstops gehen auch. Du kannst Tabstops hier zwar nicht reinschreiben aber du kannst sie reinkopieren. Probier es mal. Öffne ein Texteditor deiner Wahl, der natürlich Tabstops können muss, und schreibe dort was mit Tabstops. Dann kopierst du es und fügst es hier ein. Sieht dann so aus.
Code:
Muh	Die	Kuh

Die Tabstops werden dabei nicht in Leerzeichen umgewandelt.
 
PHP:
	Mit Tabstopp

    Mit 4 Leerzeichen :D

Ok Tabstopps gehen auch wenn man sie kopiert :)

Lg!

---------- Beitrag hinzugefügt um 20:20 ---------- Vorheriger Beitrag war um 19:17 ----------

Warum funktioniert denn das nicht:

PHP:
<?php

$var5 = abcdefg

switch ($var5) {

case "a": echo "Ich werde ausgeführt da ich ein a bin";

case 3: echo "Ich werde nicht ausgefüht da ich eine 3 bin";

case "d": echo "Ich glaub ich werde ausgeführt"; }

?>
 
Zuletzt bearbeitet:
PHP:
<?php

$var5 = 'abcdefg';
// ; hat gefehlt, Zeichenketten immer in einfachen oder doppleten Anführungszeichen schreiben
// kann sonst zu Problemen führen 

// auch hier auf den Code-Stil achten, es ist zu deinem eigenen Wohl ;)
switch ($var5) {
	case "a": echo "Ich werde ausgeführt da ich ein a bin";
	case 3: echo "Ich werde nicht ausgefüht da ich eine 3 bin";
	case "d": echo "Ich glaub ich werde ausgeführt";
}
?>

Der Code wir aber logischerweise nichts ausgeben.
 
Der Code wir aber logischerweise nichts ausgeben.

Hab jetzt hier leider kein PHP zum Testen aber ich glaube damit hat er 100% Recht. Du kannst nicht abc=a überprüfen. Was anderes macht dein Switch nicht. Du vergleichst einen Zeichenkette mit einem einzelnen Buchstaben. Du müsstest mit ifs und elseifs arbeiten und dort dann mit der PHP Version von instring arbeiten. Soweit ich weiß kannst du das Problem mit einem Switch nicht lösen.
 
Zuletzt bearbeitet:
Korrekt, mit switch kann man nur auf Gleichheit prüfen. Üblicherweise prüft man auch immer nur einen bestimmten Datentyp, also nicht Strings, Zahlen und Gleitkommazahlen gemixt, auch wenn das auf Grund der automatischen Typisierung (=Bestimmung ob Variable eine Ganzzahl, String, Zeichen, etc. ist) von PHP möglich ist.
 
Okay danke euch, soweit hab ichs mal verstanden.

Jetz bin ich grad bei Schleifen :d

Lg GraKa!

---------- Beitrag hinzugefügt um 16:17 ---------- Vorheriger Beitrag war um 16:04 ----------

Und warum wird da 90 ausgegeben:

PHP:
$var = 4;
switch ($var) {
case 0:
    echo "Ich werde nicht ausgeführt";
case 4:
    echo "Ich schon";
case 90:
    echo "Ich jedoch auch";
}
 
It is important to understand how the switch statement is executed in order to avoid mistakes. The switch statement executes line by line (actually, statement by statement). In the beginning, no code is executed. Only when a case statement is found with a value that matches the value of the switch expression does PHP begin to execute the statements. PHP continues to execute the statements until the end of the switch block, or the first time it sees a break statement. If you don't write a break statement at the end of a case's statement list, PHP will go on executing the statements of the following case.

Quelle: http://de.php.net/manual/de/control-structures.switch.php
 
Zuletzt bearbeitet:
Danke dir :) ... jetzt hab ichs verstanden.

Hab grad mit MySQL angefangen, hab da dann auch noch eine Frage :fresse:
aber zuerst muss ich mal rausfinden wie man da überhaupt richtig Datenbanken programmiert.

Mit den SQL-Codes haut das nicht so ganz hin.

Danke, lg!

/edit

Das hier ist schon der Code mit dem man eine Verbindung zu MySQL herstellt oder:

PHP:
$db = @new mysqli('localhost', 'graka', 'passwort', 'graka');

Danke !
 
Zuletzt bearbeitet:
Du meinst mysql_connect().
Als Neuling würde ich dir aber empfehlen, dich gleich mit PDO zu beschäftigen. Das ist DB-Software-unabhängig und verhindert Sicherheitslöcher durch falsch aufgebaute SQL Anweisungen.
 
Ja ich möchte über php die Datenbank welche ich in MySQL generiert habe abrufen.

Was genau ist dieses PDO? Was ist da der Unterschied zu dem PHP welches ich jetzt lerne?

Lg GraKa!
 
PDO

bei deinem code oben, mach bitte das @ vor dem new weg. Dadurch werden fehlermeldungen unterdrueckt und du siehst nicht was genau falsch laeuft. Schau dir trotzdem PDO an. Damit wirst du viel mehr Spass haben als auf Haenden und Knien mit mysqli.
Demnaechst erscheint die PHP5.3 und damit ist der mysqli-treiber dann als veraltet markiert und wird durch den besseren neuen mysqlng-treiber ersetzt. und mit PDO kannst das einfach umschalten.
 
Okay danke, ja ich schaus mir mal an :)
 
nix fehlermeldung :) aber laaaaaaaaaaaaaaaaaaangsam
 
Hm..... ist es bei dir bei beiden Domainen also der -.at.tf - Domain und der normalen Server-Domain so langsam oder nur bei einer?

Danke!
 
ich finds bei beiden ok von der geschwindigkeit her
 
Naja es ist irgendwie unterschiedlich. Manchmal gehts schneller und manchmal dauerts länger.

Aber danke mal für die Info!
 
liegt nicht an der domain, sondern ehr an funpic selbst;) ist halt free hosting...
 
Jo!

An free hosting kann man keine hohen Ansprüche stellen. Ist aber trotzdem toll, alleine schon dass es sowas gratis gibt :)
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh