If else in PHP mit Variablen

  • Ersteller pfannkuchen2001
  • Erstellt am
pfannkuchen2001

pfannkuchen2001

Aktives Mitglied
Thread Starter
Dabei seit
17.02.2006
Beiträge
2.600
Reaktionspunkte
48
Hallo,

ich brauche kurz Hilfe - da ich keinerlei ahnung von PHP habe ;)

Ich möchte anhand einer URL bestimmte Zellen einer SQL Datenbank ausgeben.
das ganze möchte ich so machen:
Code:
<?php
// Verbindung aufbauen, auswählen einer Datenbank
$link = mysql_connect("10.211.55.13", "hannes", "geheim")
    or die("Keine Verbindung möglich: " . mysql_error());
//echo "Verbindung zum Datenbankserver erfolgreich";
mysql_select_db("infar") or die("Auswahl der Datenbank fehlgeschlagen");
$zeile =  $_GET['zeile'];
$aufgabe =  $_GET['aufgabe'];



if ($aufgabe = "1"){
	$objfile = 'a_objfile';
	echo "a_objfile";
}

if ($aufgabe = "2"){
	$objfile = 'b_objfile';
	echo "b_objfile";
}

if ($aufgabe = "1"){
	$objfile = 'bb_objfile';
	echo "bb_objfile";
}




// Ausführen einer SQL-Anfrage
$query = "SELECT $objfile FROM raumsynth WHERE counter='$zeile'";
$result = mysql_query($query) or die("Anfrage fehlgeschlagen: " . mysql_error());

// Ausgabe der Ergebnisse in HTML
echo "<table>\n";
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
    echo "\t<tr>\n";
    foreach ($line as $col_value) {
        echo "\t\t<td>$col_value</td>\n";
    }
    echo "\t</tr>\n";
}
echo "</table>\n";

// Freigeben des Resultsets
mysql_free_result($result);

// Schließen der Verbinung
mysql_close($link);
?>


Ich rufe die seite zum beispiel so auf:
Code:
http://localhost/~hannes/datenbank/datenbank.php?zeile=1?aufgabe=1

die Ausgabe ist die:

Code:
a_objfileb_objfilebb_objfile
mtllib ./bb_objfile.mtl g Haus_r16 v 652.5 0.15 430.7 v 12.5 90.39 430.7 v 652.5 90.39 430.7 v 12.5 0.15 430.7 v 652.5 0.15 417.3 v 652.5 90.39 430.7 v 652.5 90.39 417.3 v 652.5 0.15 430.7 v 12.5 0.15 417.3 v 652.5 90.39 417.3 v 12.5 90.39 417.3 v 652.5 0.15 417.3 v 12.5 0.15 430.7 v 12.5 90.39 417.3 v 12.5 90.39 430.7 v 12.5 0.15 417.3 v 652.5 90.39 430.7 v 12.5 90.39 417.3 v 652.5 90.39 417.3 v 12.5 90.39 430.7 v 652.5 0.15 417.3 v 12.5 0.15 4.
.
.
.
(und viele tausend weitere zeilen aus der Datenbank)
.
.


Nun die fragen:

1. warum funktionieren die if abfragen nicht? (alle if statements werden wohl durchlaufen, da ich alle 3 echos habe)
2. funktioniert mein query? also wird $objfile so übertragen wie ich mir das vorstelle?


Über rasche hilfe wäre ich seeehr froh!!!

Danke schonmal im Voraus!!
 
Vergleiche gehen mit doppelten ==
 
Hi,

danske für die schnelle antwort!

Das habe ich schon Probiert

Code:
if ($aufgabe == 1){
	$objfile = 'a_objfile';
	echo "a_objfile";
}

if ($aufgabe == 2){
	$objfile = 'b_objfile';
	echo "b_objfile";
}

if ($aufgabe == 3){
	$objfile = 'bb_objfile';
	echo "bb_objfile";
}

Das Problem nun ist aber, dass ich dashier bekomme:

Code:
Anfrage fehlgeschlagen: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM raumsynth WHERE counter='80?aufgabe=1'' at line 1

Gibt es sowas wie datentypen bei PHP? Kann es sein, das da eine art char (wie auch immer es bei php heisst) reinkommt, ich es aber im if statement als int vergleiche? oder ist das totaler schwachsinn...?


Gruß,

Pfannkuchen


EDIT: ich habe noch das hier versucht:
$aufgabe = (int) $_GET['aufgabe'];
aber bekomme auch da die gleiche Fehlermeldung wie oben....

EDIT2: ändere ich mein query dahingehend:
$query = "SELECT '$objfile' FROM raumsynth WHERE counter='$zeile'";

bekomme ich keine fehlermeldung mehr. Der Bildschirm bleibt einfach weiß...
 
du musst im Formular hinter Zeile ein "&" machen und kein "?"

-> formular.php?zeile=XX&aufgabe=YY
 
Prinzipiell solltest du dich in PHP mal einlesen. Dir in einem Forum das Programmieren beizubringen wohl etwas viel verlangt.
 
Hallo,

ich weis mir grad einfach nicht zu helfen.
Was ich eigentlich machen will ist, aus einer sehr großen MySQL datenbrank verschiedene felder in jeweils eine datei schreiben. also dachte ich mir, ich schreibe ein php script welches mir das raussuchen abnimmt, und lade dann mit einem shellscript und wget die ganzen files in text dateien herunter.

Danke erstmal für die Hilfe!

Gruß
 
Ich weiß ja nicht, wie komplex dein Anliegen ist, aber klingt erst mal so, als ginge das über die Oberfläche von MySQL Admin einfacher.....
 
Hi,

ja das dachte ich auch... ich habe leider nur den fehler gemacht, dass ich riesige obj-files in Textform in der datenbank gespeichert habe (aus einer 3d Anwendung) die ich jetzt da irgendwie automatisiert wieder herausbekommen muss.... und dafür ist mit phpmyadmin einfach zu langsam!

Gruß
 
du musst im Formular hinter Zeile ein "&" machen und kein "?"

-> formular.php?zeile=XX&aufgabe=YY

PERFEKT! Ich hatte glatt deine Antwort überlesen. Das war der Springende Punkt! Danke dir vielmals!
Es funktioniert nun soweit so gut!


Gruß
 
Zurück
Oben Unten