Formular und while

Alles, was PHP betrifft, kann hier besprochen werden.

Formular und while

Postby Sid » 30. December 2004 13:23

Hallo
ich verzweifle gerade an einer Abfrage und ich versteh nicht warum. Ich hab schon gesucht, aber leider keinen passenden Thread zu meinem Problem gefunden :(
Es ist eigentlich eine ganz einfache Sache nur leider (wie so oft) geht es nicht.

Folgendes:
Ich habe ein Formular, das an eine Datenbank mehrere Ergebnisse übergeben soll. Um zu sehen, ob die Werte übergeben werden ist noch die "get"-Methode eingetragen. Oben stehen auch brav alle zu übergebenden Werte in der Adressleiste nur tut er nicht das, was er soll.

Da es sich um die Ergebnisse 1-4 handelt möchte ich dies in einer while-Schleife realisieren, was bei mir folgendermassen aussieht:

Code: Select all
$i = 1
   while ($i <= 4)
     {
        $Array[Ergebnis$i] = $_Post[Ergebnis$i];
        $i++
     }

Wie schaffe ich es, dass die Variable als Zahl eingebaut wird und der Parser sich nicht beschwert?

Vielen Dank für die Antworten für diese eigentlich dumme Frage.[/code]
Sid
 
Posts: 12
Joined: 23. December 2004 11:28
Location: Ludwigshafen

Postby adi99 » 30. December 2004 13:46

Code: Select all
 $Array['Ergebnis'.$i]
User avatar
adi99
 
Posts: 115
Joined: 15. January 2004 16:08
Location: Switzerland

Postby Wiedmann » 30. December 2004 13:49

$Array[Ergebnis$i] = $_Post[Ergebnis$i];

$_Post[] gibt es nicht.
Was soll "Ergebnis$i" sein? Über GET oder POST kommen keine Konstanten.


Um zu sehen, ob die Werte übergeben werden ist noch die "get"-Methode eingetragen.

In dem Fall willst du wohl auch $_GET[] benutzen.

Was willst du in der Schleife eigentlich wirklich machen?
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Sid » 30. December 2004 13:55

Danke für die beiden Antworten.
So jetzt passt es. Dankeschön.
Sid
 
Posts: 12
Joined: 23. December 2004 11:28
Location: Ludwigshafen

Postby adi99 » 30. December 2004 13:58

Wiedmann wrote:
$_Post[] gibt es nicht.


doch $_POST[] gibt es schon, aber er braucht wahrscheinlich eher $_GET[]

Code: Select all

$i = 1
   while ($i <= 4)
     {
        $Array['Ergebnis'.$i] = $_GET['Ergebnis'.$i];
        $i++
     }


So müsste es funktionieren...

EDIT: Wohl zulange gebraucht um zu schreiben :(
User avatar
adi99
 
Posts: 115
Joined: 15. January 2004 16:08
Location: Switzerland

Postby Wiedmann » 30. December 2004 15:12

adi99 wrote:doch $_POST[] gibt es schon,

Da stimme ich dir zu. Aber:
Sid wrote:$Array[Ergebnis$i] = $_Post[Ergebnis$i];

$_POST != $_Post
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Sid » 30. December 2004 15:55

ah... gut zu wissen. Ich habe jedoch $_POST benutzt. Ich kann mich noch nicht so ganz daran gewöhnen, dass PHP so case-sensitiv ist.

Ich weiss zwar, dass es das falsche Forum ist, aber da ich hier schon einen Thread laufen habe möchte ich doch kurz fragen:
Wie kann es sein, dass sich der Parser über die Zeile: INSERT INTO $TableName beschwert (den Rest ruft er schon garnicht auf)

$TableName = "umfrage" und diese Tabelle ist auch vorhanden. der mysql_connect funktioniert auch.

Hat es vielleicht etwas damit zu tun, dass mehrere Datenbanken vorhanden sind?

Falls ja wie muss der Ablauf richtig aussehen?

Wenn es hier falsch ist reicht ein einfach "Nein gehört hier nicht her" und ich poste es unter "mysql" nochmal. Aber vielleicht habt ihr ja eine zündende Idee, die mich wie vorhin weiterbringt.
So ist es im Moment:

Code: Select all
$Host = "localhost";
$User = "news";
$password = "bla";
$DBName = "news;
$TableName = "umfrage";

$Link = mysql_connect ($Host, $User, $Password);

INSERT INTO $TableName
       (Name, Frage, Ergebnis1...) values ('$Array[Name]',...)

Sid
 
Posts: 12
Joined: 23. December 2004 11:28
Location: Ludwigshafen

Postby Wiedmann » 30. December 2004 16:06

INSERT INTO $TableName
(Name, Frage, Ergebnis1...) values ('$Array[Name]',...)

Und was soll das sein? Für PHP sind das wirre Zeichen mittem im Code, mit denen es logischerweise nichts anfangen kann...

Ich denke mal das ist eine SQL-Abfrage? Sowas setzt man mit mysql_querry() ab. Vorher sollte man halt noch mit mysql_select_db() die richtige Datenbank auswählen.

Das /die Beispiel(e) im PHP-Manual erklären das aber ganz gut.
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Sid » 30. December 2004 16:12

Ahhh *lichtaufgeh*
Ich versuch mich anhand eines Buches durchzuwurschteln. Leider ist es nicht das Beste. Dort war die Abfrage in eine if-Verzweigung eingebaut, weshalb ich sie für nicht wichtig befunden hatte. Jetzt sieht die Sache anders aus.
Sid
 
Posts: 12
Joined: 23. December 2004 11:28
Location: Ludwigshafen


Return to PHP

Who is online

Users browsing this forum: No registered users and 2 guests