Suche im Forum:
Suchen


« Vorheriges Thema anzeigen :: Nächstes Thema anzeigen »  
Autor Nachricht
Beitrag09.06.2009 um 15:54 (UTC)    
Titel: ihr dürft meinen php-code verbessern ;-)

so
bin jetzt endlich mal mit meinem ersten kleinen sinnlosen php projekt fertig
aber einiges klappt noch nicht
ich habe aber schon einige sachen vom code gelöscht der am anfang da war damit etwas klappt
also ich erklär mal kurz was das script kann/können sollte
man kann oben zahlen eingeben, dann drückt man auf generieren und dann erzeugt das script eine einmaleins-tabelle
das klappt ja noch
aber wenn keine angaben vorhanden sind sollte eine fehlmeldung ausgegeben werden
hier mein bisheriger code:

Zitat:
<html>
<head>
<title>Einmaleins-Tabelle generieren lassen</title>
<style type="text/css">
tr {
background-color: #0000FF;
}
table {
background-color: grey;
color: #FFFFFF;
}
p {
margin-top: 10px;
}
body {
color: #FFFFFF;
background-color: #000000;
margin-left: 30%;
}
</style>
</head>
<body>
<form method="post">
Geben sie hier die Zeilenanzahl ein:<input name="zeile" style= "background-color: grey";><br />
<p>Geben sie hier die Spaltenanzahl ein:<input name="spalte" style= "background-color: grey";><br /></p>
<input type="submit" value="Generieren">
</form>
<?
$zeile = $_POST['zeile'];
$spalte = $_POST['spalte'];
if (!isset($zeile)) echo "Geben sie bitte die Zeilenanzahl an!<br />";
elseif (!isset($spalte)) echo "Geben sie bitte die Spaltenanzahl an!<br />";
else ?> <table cellpadding="5" border="1">
<?
for ($r = 1;$r <= $zeile;$r++) {
echo "<tr>";
for ($s = 1;$s <= $spalte;$s++) {
echo "<td>";
echo ($r*$s);
echo "</td>";
}
echo "</tr>";
}
?>
</table>
</body>
</html>


aber bitte verständlich erklären da ich noch ein wirklicher noob in php bin

mfg
______________
Forenregeln, FAQ, Suchfunktion
Beitrag09.06.2009 um 16:12 (UTC)    
Titel:

Du definierst die Variablen davor ja.
Daher sind sie auf jeden Fall gesetzt.

Prüfe doch nach, ob sie einen leeren String enthalten.
Denn $_POST["spalte"]; hat ja nen Wert - nur eben leer.

Code:
if ($zeile == "") echo "Geben sie bitte die Zeilenanzahl an!<br />";
if ($spalte == "") echo "Geben sie bitte die Spaltenanzahl an!<br />";

______________
Beitrag09.06.2009 um 16:14 (UTC)    
Titel:

ja danke werd ich mal ändern

passt dann der code so:
Code:
<html>
<head>
<title>Einmaleins-Tabelle generieren lassen</title>
<style type="text/css">
tr {
background-color: #0000FF;
}
table {
background-color: grey;
color: #FFFFFF;
}
p {
margin-top: 10px;
}
body {
color: #FFFFFF;
background-color: #000000;
margin-left: 30%;
}
</style>
</head>
<body>
<form method="post">
Geben sie hier die Zeilenanzahl ein:<input name="zeile" style= "background-color: grey";><br />
<p>Geben sie hier die Spaltenanzahl ein:<input name="spalte" style= "background-color: grey";><br /></p>
<input type="submit" value="Generieren">
</form>
<?
$zeile = $_POST['zeile'];
$spalte = $_POST['spalte'];
if ($zeile == "") echo "Geben sie bitte die Zeilenanzahl an!<br />";
if ($spalte == "") echo "Geben sie bitte die Spaltenanzahl an!<br />";
?>
<table cellpadding="5" border="1">
<?
for ($r = 1;$r <= $zeile;$r++) {
echo "<tr>";
for ($s = 1;$s <= $spalte;$s++) {
echo "<td>";
echo ($r*$s);
echo "</td>";
}
echo "</tr>";
}
?>
</table>
</body>
</html>


mfg
______________
Forenregeln, FAQ, Suchfunktion


Zuletzt bearbeitet von philipp7 am 09.06.2009, 17:17, insgesamt einmal bearbeitet
Beitrag09.06.2009 um 18:09 (UTC)    
Titel:

mach aus dem
Code:
if ($zeile == "") echo "Geben sie bitte die Zeilenanzahl an!<br />";
if ($spalte == "") echo "Geben sie bitte die Spaltenanzahl an!<br />";

mal ein:
Code:
if ($zeile == "") echo "Geben sie bitte die Zeilenanzahl an!<br />";
else if ($spalte == "") echo "Geben sie bitte die Spaltenanzahl an!<br />";


und eigentlich müsste da irgendwo am ende ein "else" stehen, weil er sonst nicht weiß wass er mit dem rest machen soll

wenn dus brauchst erklär ich dir das noch, und markier dir was geändert wurde (vielleicht hab ich auch nen fehler gemacht, sollte aber eig. laufen)
versuchs mal so:

Code:

<html>
<head>
<title>Einmaleins-Tabelle generieren lassen</title>
<style type="text/css">
tr {
background-color: #0000FF;
}
table {
background-color: grey;
color: #FFFFFF;
}
p {
margin-top: 10px;
}
body {
color: #FFFFFF;
background-color: #000000;
margin-left: 30%;
}
</style>
</head>
<body>
<form method="post">
Geben sie hier die Zeilenanzahl ein:<input name="zeile" style= "background-color: grey";><br />
<p>Geben sie hier die Spaltenanzahl ein:<input name="spalte" style= "background-color: grey";><br /></p>
<input type="submit" value="Generieren">
</form>
<?
$zeile = $_POST['zeile'];
$spalte = $_POST['spalte'];
if ($zeile == "")
{
echo  "Geben sie bitte die Zeilenanzahl an!<br />";
}
else if ($spalte == "")
{
 echo  "Geben sie bitte die Spaltenanzahl an!<br />";
}
else
{
<table cellpadding=\"5\" border=\"1\">
for ($r = 1;$r <= $zeile;$r++) {
echo "<tr>";
for ($s = 1;$s <= $spalte;$s++) {
echo "<td>";
echo ($r*$s);
echo "</td>";
}
echo "</tr>";
}
}
?>
</table>
</body>
</html>

______________
*** Signatur editiert vom Support Team - Signatur zu groß - max. 650 x 150 px ***


Zuletzt bearbeitet von doomphoenixx am 09.06.2009, 19:14, insgesamt einmal bearbeitet
Beitrag09.06.2009 um 18:16 (UTC)    
Titel:

http://de2.php.net/manual/de/function.empty.php

das sollte helfen nicht mit "" vergleichen kann probleme geben

außerdme würde ich isset durch empty ersetzen denn du setzt ja vorher die variablen wie bereits erwähnt
______________
Video Portal Unplugged
Neues Gewinnspiel #1
Neues Gewinnspiel #2
Beitrag09.06.2009 um 18:29 (UTC)    
Titel:

gut dann halt so :
Code:

<html>
<head>
<title>Einmaleins-Tabelle generieren lassen</title>
<style type="text/css">
tr {
background-color: #0000FF;
}
table {
background-color: grey;
color: #FFFFFF;
}
p {
margin-top: 10px;
}
body {
color: #FFFFFF;
background-color: #000000;
margin-left: 30%;
}
</style>
</head>
<body>
<form method="post">
Geben sie hier die Zeilenanzahl ein:<input name="zeile" style= "background-color: grey";><br />
<p>Geben sie hier die Spaltenanzahl ein:<input name="spalte" style= "background-color: grey";><br /></p>
<input type="submit" value="Generieren">
</form>
<?
$zeile = $_POST['zeile'];
$spalte = $_POST['spalte'];
if (empty($zeile))
{
echo  "Geben sie bitte die Zeilenanzahl an!<br />";
}
else if (empty($spalte))
{
 echo  "Geben sie bitte die Spaltenanzahl an!<br />";
}
else
{
<table cellpadding=\"5\" border=\"1\">
for ($r = 1;$r <= $zeile;$r++) {
echo "<tr>";
for ($s = 1;$s <= $spalte;$s++) {
echo "<td>";
echo ($r*$s);
echo "</td>";
}
echo "</tr>";
}
}
?>
</table>
</body>
</html>


das mit isset versteh ich jetzt nicht
wo is hier isset?
oder hat sich das auf den ersten code von ihm bezogen?
______________
*** Signatur editiert vom Support Team - Signatur zu groß - max. 650 x 150 px ***
Beitrag10.06.2009 um 09:55 (UTC)    
Titel:

Ich würde folgendes machen:

1. Eine IF Abfrage einbauen

if($_POST['submit']) {

PHP Anweisungen

} else {

Formular

}

So habe ich das bisher immer gemacht und funktioniert wunderbar. Da wird also überprüft, ob das Formular abgeschickt wurde oder nicht. Wenn nicht, siehst du das Formular, wenn doch, dann wird dein PHP Script ausgeführt. Wenn du aber möchtest, dass das Formular immer angezeigt wird, dann einfach bei Formular leer lassen, else komplett weglassen oder echo ""; schreiben.

2. Soweit ich weiß, ist das Attribut action notwendig für ein Formular. Habe es bisher noch nie ohne getestet. Aber normalerweise braucht ein Formular das Attribut action.

3. Würde ich hier kein elseif einbauen (ja, elseif und nicht else if Wink ). Ganz einfach aus folgendem Grund. Wenn du mehrere Abfragen hast, ist es nervig, immer wieder eine Fehlermeldung einzutippen, nur weil einer meint, so wenige Angaben wie möglich zu machen. Das heißt, wenn er nix eingibt, bekommt er zu erst gesagt, dass die Zeile fehlt. Dann gibt man die Zeile an und dann sagt er wieder, dass etwas fehlt. Deshalb würde ich sagen, nimm einfache if Abfragen und lass dann etwas ausgeben, wenn es nicht gefüllt ist.

4. Du lässt table gar nicht ausgeben, so wie es aussieht. Da fehlt eine echo Angabe.

5. Je nachdem, was du ausgibst (Meistens ist es ja HTML, gibt aber auch Fälle, da wird nur Text ausgegeben), solltest du zwischen ' und " entscheiden. Bei HTML empfiehlt sich ', weil du dann bei HTML mit den " arbeiten kannst. Ansonsten musst du ' verwenden, wenn du mit " bei echo arbeitest.

6. Würde ich so ein Käse lassen, von wegen <? ?> HTML <? ?> HTML etc. Hau den HTML Code einfach in ein echo und fertig ist es. Wenn du dann PHP dazwischen haben willst, baust es einfach wie folgt ein:

$variabel = "und";

echo "Dies ist ein Test ".$variabel." dies ist auch ein Test";

oder

echo 'Dies ist ein Test '.$variabel.' dies ist auch ein Test';

7. Ich glaube, er meinte, dass du anstatt empty isset verwenden sollst. Was eigentlich egal ist. Ich verwende bei Formularen zum Beispiel viel lieber isset Wink


Ich hoffe, ich konnte ein bisschen helfen Very Happy
______________
LG André

GMMTS.de
Beitrag10.06.2009 um 10:48 (UTC)    
Titel:

Zitat:
3. Würde ich hier kein elseif einbauen (ja, elseif und nicht else if Wink ). Ganz einfach aus folgendem Grund. Wenn du mehrere Abfragen hast, ist es nervig, immer wieder eine Fehlermeldung einzutippen, nur weil einer meint, so wenige Angaben wie möglich zu machen. Das heißt, wenn er nix eingibt, bekommt er zu erst gesagt, dass die Zeile fehlt. Dann gibt man die Zeile an und dann sagt er wieder, dass etwas fehlt. Deshalb würde ich sagen, nimm einfache if Abfragen und lass dann etwas ausgeben, wenn es nicht gefüllt ist.

mhh ich hab else if in nem code eingebaut und es läuft prima..

un dhab da ne frage ... kann man in einer if abfrage auch 2 x "or" benutzen?

und mal ohne else if:
(is glaub ich so nich ganz richtig)
Code:
if (empty($zeile) or empty($spalte))
{
echo  "Geben sie bitte die Zeilenanzahl und Spaltenanzahl an!<br />";
}
else .....

______________
*** Signatur editiert vom Support Team - Signatur zu groß - max. 650 x 150 px ***
Beitrag10.06.2009 um 11:42 (UTC)    
Titel:

Ok, gut zu wissen. Habe es mit elseif gelernt und bisher auch so angewendet. Wenn es auch mit else if geht, dann ist es auch gut ^^

Theoretisch kannst du so viel or verwenden, wie du willst ^^ Fragt sich nur, wie lange das Sinn macht ^^ Also bis maximal 5 Mal or sollte es noch akzeptabel sein. Wenn du mehr einbaust, ist eine if Abfrage nicht gerade das Beste. Da sollte man dann zu switch greifen Wink Außer es geht wirklich um unterschiedliche Abfragen. Kommt aber selten vor.

Eine if Abfrage war schon richtig. Nur fehlen halt nach else die geschweiften Klammern Wink Aber ich glaube, das weißt du.
______________
LG André

GMMTS.de
Beitrag10.06.2009 um 11:56 (UTC)    
Titel:

joa die hab ich extra weggelassen
______________
*** Signatur editiert vom Support Team - Signatur zu groß - max. 650 x 150 px ***
Beiträge der letzten Zeit anzeigen:   


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de