Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

PHP HTML Switch .. case problem

Frage Entwicklung PHP

Mitglied: Xaero1982

Xaero1982 (Level 3) - Jetzt verbinden

14.07.2006, aktualisiert 19.07.2006, 8170 Aufrufe, 30 Kommentare

Allerlei Fragen rund um PHP und SQL / Access ... Also nicht wundern

Hi,

ich habe hier nen kleineres Problem mit PHP

01.
<html> 
02.
<head> 
03.
	<title> 
04.
	</title> 
05.
</head> 
06.
<body> 
07.
<table border="0" valign="top" align="middle"> 
08.
	<tr> 
09.
		<td> 
10.
            <form action="<?php echo($_SERVER['PHP_SELF']);?>" method="POST" target="_self"> 
11.
                <b>Suchbegriff:</b> 
12.
        </td> 
13.
        <td> 
14.
            <input name="search" type="text" size="30" maxlength="50" value="<?php echo($search);?>"> 
15.
 
16.
        </td> 
17.
	</tr> 
18.
	<tr> 
19.
		<td> 
20.
		    <b>Suchkriterium:</b> 
21.
		</td> 
22.
		<td> 
23.
            <select name="auswahl"> 
24.
            	<?php 
25.
            		//Assoziatives Array für das DropDown der Auswahlkriterien 
26.
            		$menuewahl=array("suchkrit" => "~BitteW&auml;hlen~", "MComputername"=>"Computername", "MBenutzer"=>"Benutzer", "Seriennummer"=>"Seriennummer"); 
27.
            		foreach($menuewahl as $index=>$wahl) 
28.
            		if($auswahl==$index) { 
29.
				?> 
30.
                <option value="<?php echo($index); ?>" name="<?php echo($index); ?>" selected="selected"><?php echo($wahl);?></option> 
31.
                <?php } 
32.
                	else { 
33.
                ?> 
34.
                <option value="<?php echo($index); ?>" name="<?php echo($index); ?>"><?php echo($wahl);?></option> 
35.
            	<?php } 
36.
            	?> 
37.
            </select> 
38.
 
39.
        </td> 
40.
    </tr> 
41.
	<tr> 
42.
		<td align="center" valign="bottom"> 
43.
			 
44.
 
45.
			<input type="submit" value="Suchen" size="50"> 
46.
		    </form> 
47.
		    <!--Zweites Formular um den Inhalt des Textfeldes Search zu leeren bei "Eintrag löschen"--> 
48.
		</td> 
49.
		<td> 
50.
			 
51.
 
52.
			<form action="<?php echo($_SERVER['PHP_SELF']);?>" method="POST" target="_self"> 
53.
				<input type="hidden" name="search" value=""> 
54.
    		    <input type="submit" value="Eintrag l&ouml;schen" > 
55.
           	</form> 
56.
        </td> 
57.
	</tr> 
58.
</table> 
59.
 
60.
 
61.
<hr> 
62.
<?php 
63.
 
64.
 
65.
switch($auswahl) 
66.
67.
case 'MComputername' : { 
68.
	echo("test1"); 
69.
70.
 
71.
default : { 
72.
         echo "test2"; 
73.
74.
?> 
75.
 
76.
</body> 
77.
</html>
So, er ruft hier immer default auf wenn ich oben Computername auswähle. (Die anderen habe ich noch nicht eingebaut, da nicht mal das erste geht.

Sieht jemand den Fehler?
30 Antworten
Mitglied: Dani
14.07.2006 um 13:26 Uhr
Hi,
ich würde sagen da fehlt ein einziger Befehl!
Probier es mal so:
01.
<?php 
02.
 
03.
switch($auswahl) 
04.
05.
  case 'MComputername' :  echo "test1"; break;   
06.
  default :  echo "test2"; 
07.
08.
?>
Gruß
Dani
Bitte warten ..
Mitglied: Xaero1982
14.07.2006 um 13:33 Uhr
Nicht wirklich, da die Variable "$auswahl" irgendwie immer leer ist :/
Bitte warten ..
Mitglied: Dani
14.07.2006 um 13:35 Uhr
Hi,
01.
switch($_POST['auswahl']
Gruß
Dani
Bitte warten ..
Mitglied: Xaero1982
14.07.2006 um 14:16 Uhr
Hi,
01.
> switch($_POST['auswahl'] 
02.
> 
Gruß
Dani


Hey cool danke, das geht. Frage mich dann warum es bei einem anderen Projekt gegangen ist. Naja wie dem auch sei.

Evtl hast du ja noch Ahnung hiervon:

Warning: odbc_exec() [function.odbc-exec]: SQL error: [Microsoft][ODBC Microsoft Access Driver] Syntaxfehler in Zeichenfolge in Abfrageausdruck ''MComputername' = 'PCXX., SQL state 37000 in SQLExecDirect in....


Warning: odbc_fetch_array(): supplied argument is not a valid ODBC result resource in ...

01.
    switch($_POST['auswahl']) 
02.
03.
    case 'MComputername' : { 
04.
        echo("test"); 
05.
                            $stmt = odbc_exec($conn, "SELECT * FROM tbl_Maincomputer WHERE '".$_POST['auswahl']."' = '".$_POST['search']); 
06.
							echo('<table border=1 width=100% nowrap>'); 
07.
							echo('<th>Seriennummer</th><th>Benutzer</th><th>Computername</th><th>Hesteller</th><th>Typ</th><th>Archivierungsdatum</th>'); 
08.
                            while($row = odbc_fetch_array($stmt)){ 
09.
                            echo ("<tr nowrap><td nowrap>"); 
10.
                            echo ("<a href=\"".$row["Seriennummer"]."\">"); 
11.
                            //echo($row["Seriennummer"].'</td><td>'.$row["MBenutzer"]); 
12.
                            echo (implode("<td nowrap>",$row)); 
13.
                            echo ("</tr>"); 
14.
15.
        				   };break; 
16.
 
Wenn ich die WHERE Clausel entferne gibt er mir alle aus. Also das geht ...

Behoben am Ende musste noch ein "'" hin: Also AnführungszeichenHochkommaAnführungszeichen.

Nur doof, dass er nun nichts mehr ausgibt :/
Bitte warten ..
Mitglied: Dani
15.07.2006 um 12:27 Uhr
Hi,
probier es mal so:
01.
$stmt = odbc_exec($conn, "SELECT * FROM tbl_Maincomputer WHERE '".$_POST['auswahl']."' = '".$_POST['search']."'");
Gruß
Dani
Bitte warten ..
Mitglied: Xaero1982
15.07.2006 um 12:37 Uhr
Hi,
probier es mal so:
01.
> $stmt = odbc_exec($conn, "SELECT * FROM 
02.
> tbl_Maincomputer WHERE 
03.
> '".$_POST['auswahl']."' = 
04.
> '".$_POST['search']."'"); 
05.
> 
Gruß
Dani

Na so hab ich es ja, nur ist die Anzeige nun leer. Er gibt nichts mehr aus :/
Bitte warten ..
Mitglied: Dani
15.07.2006 um 12:42 Uhr
Hi,
und so:
01.
$stmt = odbc_exec($conn, "SELECT * FROM tbl_Maincomputer WHERE ".$_POST['auswahl']." = '".$_POST['search']."'");
Gruß
Dani
Bitte warten ..
Mitglied: Xaero1982
15.07.2006 um 15:51 Uhr
Hi,
und so:
01.
> $stmt = odbc_exec($conn, "SELECT * FROM 
02.
> tbl_Maincomputer WHERE 
03.
> ".$_POST['auswahl']." = 
04.
> '".$_POST['search']."'"); 
05.
> 
Gruß
Dani

Werde ich montag probieren Im moment hab ich WE und der Kram is auf Arbeit. Melde mich dann wieder
Bitte warten ..
Mitglied: Xaero1982
17.07.2006 um 07:11 Uhr
yeah du bist genial

es geht ... was auch immer das mit den hochkommata zu tun hat :/

Aber weiter im Text

Hast du eine Ahnung, ob man eine Access Abfrage via sql abrufen und ausgeben kann in PHP.

Ich hab hier so ne Sammlung an PCs die ich archiviert habe. Die kommen natürlich total unsortiert in die DB. Eine Sortierung ist nur via Access in der Datenblattansicht möglich. Bringt mir in PHP natürlich nichts.

Wenn ich ne Abfrage schreibe mit Sortierkriterium in Access gehts natürlich. Nur muss ich diese Abfrage abfragen können U Understand?


edit
eh lol das geht ja echt ... einfach den Namen der Abfrage einsetzen und fertig

also select * from abfrage ...
Bitte warten ..
Mitglied: Xaero1982
17.07.2006 um 11:25 Uhr
Weiter im Text ...

ich lasse in meiner ausgabe immer die Seriennummer als Link darstellen.

Nun will ich diese Seriennummer an eine andere datei übergeben.

hierzu noch mal kurz der code
01.
<LINK href="HardwareInfo.css" type="text/css" rel="stylesheet"> 
02.
<?php 
03.
require("tool.box"); 
04.
$file="details.php"; 
05.
$stmt = odbc_exec($conn, "SELECT * FROM tbl_Maincomputer_Abfrage" ); 
06.
 
07.
 
08.
echo('<table border=1 width=100% nowrap>'); 
09.
echo('<th>Seriennummer</th><th>Benutzer</th><th>Computername</th><th>Hersteller</th><th>Typ</th><th>Archivierungsdatum</th>'); 
10.
while($row = odbc_fetch_array($stmt)){ 
11.
echo ("<tr nowrap><td nowrap>"); 
12.
echo ("<a href=\"$file?Seriennummer=".$row["Seriennummer"]."\">"); 
13.
echo (implode("<td nowrap>",$row)); 
14.
echo ("</tr>"); 
15.
$i++; 
16.
17.
echo('</table>'); 
18.
echo('Anzahl der Computer: '.$i); 
19.
odbc_close($conn); 
20.
?>
Empfängerdatei
01.
<?php 
02.
 
03.
if(empty(Seriennummer]))die("keine Berechtigung!"); 
04.
 
05.
?> 
06.
 
Also wie bekomme ich die Seriennummer übergeben? Hab schon allerlei versucht, aber irgendwie wills nicht wie ich will :/
Bitte warten ..
Mitglied: Dani
17.07.2006 um 11:37 Uhr
Hi,
probier es mal so:
01.
<?php 
02.
 
03.
if(empty($_POST['Seriennummer']))die("keine Berechtigung!"); 
04.
 
05.
?>
Gruß
Dani
Bitte warten ..
Mitglied: Xaero1982
17.07.2006 um 11:55 Uhr
Hi,
probier es mal so:
01.
> <?php 
02.
>  
03.
> if(empty($_POST['Seriennummer']))die("keine 
04.
> Berechtigung!"); 
05.
>  
06.
> ?> 
07.
> 
Gruß
Dani

Leider nein, auch nicht mit " " ... hatte ich versucht
Bitte warten ..
Mitglied: Dani
17.07.2006 um 11:58 Uhr
Hi,
sry...falsche Vari!!

01.
<?php 
02.
 
03.
if(empty($_GET['Seriennummer']))die("keine 
04.
Berechtigung!"); 
05.
?>
Gruß
Dani
Bitte warten ..
Mitglied: Xaero1982
17.07.2006 um 12:48 Uhr
Ach du bist ein Engel *lach* es geht
Bitte warten ..
Mitglied: Dani
17.07.2006 um 12:57 Uhr
Hi,
ich weiß! *ggg*
Den Post kannst du über editieren schließen! Hacken bei "Beitrag gilt als gelöst" setzen und schließen. Vergiss das bewerten nicht!


Gruß
Dani
Bitte warten ..
Der Kommentar von Xaero1982 wurde vom Moderator am 10.12.16 ausgeblendet!
Mitglied: Xaero1982
17.07.2006 um 14:09 Uhr
So da haben wir auch schon wieder was:

Ich möchte einen Bericht erstellen über den ausgewählten PC. Hierbei soll der Benutzer selbst entscheiden welche Daten ausgedruck werden sollen.

Also habe ich Checkboxen nach dem Prinzip:

01.
            <input type="checkbox" name="hX" value="Systeminformationen" onClick="Report()" id="h1">Systeminformationen
02.
 
erstellt.

So weit so gut. Dazu habe ich die Function "Report()" geschrieben. In dieser wird dann via switch case:

01.
function Report() 
02.
03.
    switch ($_POST['hX']) 
04.
05.
    case $_GET['h1'] : { //hier hab ich es auch einfach mit case 'h1' versucht 
06.
        //tbl_Maincomputer============================================================= 
07.
        $stmt = odbc_exec($conn, "SELECT * FROM tbl_Maincomputer WHERE Seriennummer = '".$_GET['Seriennummer']."'"); 
08.
 
09.
        echo('<h3>Systeminformationen</h3>'); 
10.
        echo('<table border=1 width=* nowrap>'); 
11.
        echo('<th>Seriennummer</th><th>Benutzer</th><th>Computername</th><th>Hersteller</th><th>Typ</th><th>Archivierungsdatum</th>'); 
12.
        while($row = odbc_fetch_array($stmt)){ 
13.
        echo ("<tr nowrap><td nowrap>"); 
14.
        echo (implode("<td nowrap>",$row)); 
15.
        echo ("</tr>"); 
16.
17.
        echo('</table>'); 
18.
        };break; 
19.
}}
geprüft was gewählt wurde.

Eh ja nur irgendwie sagt er mir entweder nen Syntaxfehler in Zeile 9 .. da steht nur nen <TD>

oder "Objekt erwartet" in Zeile 9....

hääääääääääää
Bitte warten ..
Mitglied: Dani
17.07.2006 um 14:37 Uhr
Hi,
wie hast du die Funktion eingebunden?! In einer extra Datei, andere Seite oder gleiche Seite. Die Variable $conn musst du übergeben! Sonst kann das gar nicht gehen!


Gruß
Dani
Bitte warten ..
Mitglied: Xaero1982
17.07.2006 um 14:47 Uhr
Alles auf der gleichen Seite ...

Wieso muss ich die übergeben? ... dann ruf ich das gleich in der funktion auf .. geht auch oder?

aber hat ja nicht wirklich was damit zu tun oder?
Bitte warten ..
Mitglied: Dani
17.07.2006 um 14:53 Uhr
Hi,
weil die Vari in der Funktion nicht bekannt ist.
01.
function Report($conn)
einbinden:
01.
Report($conn);
Gruß
Dani
Bitte warten ..
Mitglied: Xaero1982
17.07.2006 um 14:55 Uhr
$conn ist undefiniert ...


ich glaube hier hängt es woanders ... bei der übergabe der ausgewählten checkbox bzw. beim funktionsaufruf :/
Bitte warten ..
Mitglied: Dani
17.07.2006 um 14:57 Uhr
Hi,
schick mir die Seite an administrator[at]familie-wydler.de


Gruß
Dani
Bitte warten ..
Mitglied: Xaero1982
17.07.2006 um 15:03 Uhr
is raus ...

hab aber bald feierabend .. schicks dennoch ich schaus mir zu hause an ...
ansonsten morgen :/
Bitte warten ..
Mitglied: Dani
17.07.2006 um 15:08 Uhr
Hi,
was soll in der $conn drin stehen bzw. bewirken??


Gruß
Dani
Bitte warten ..
Mitglied: Xaero1982
17.07.2006 um 15:13 Uhr
01.
<?php 
02.
 
03.
$conn = odbc_connect('Inventar.mdb', '', '', SQL_CUR_USE_ODBC) or die('Error connecting to server. Server says: '.htmlspecialchars(odbc_errormsg())); 
04.
 
05.
?> 
06.
 
Das ist die tool.box und daher die $conn ... mehr nicht
Bitte warten ..
Mitglied: Dani
17.07.2006 um 15:18 Uhr
Hi,
diese Zeile solltest du auch in die details.php schreiben!!


Gruß
Dani
Bitte warten ..
Mitglied: Xaero1982
17.07.2006 um 16:31 Uhr
Hi,
diese Zeile solltest du auch in die
details.php schreiben!!


Gruß
Dani

hab ich doch hier:
require("tool.box");

damit binde ich das ein .. die ausgabe geht auch ohne probleme wenn ich das ohne checkboxes und switch case mache.

die übergabe ist das problem ....
Bitte warten ..
Mitglied: Dani
17.07.2006 um 16:36 Uhr
Hi,
das hier kann nicht gehen:
01.
<input type="checkbox" name="hX" value="Festplatte" onClick="Report()" id="h5">Festplatte
02.
 
Du kannst keine PHP Funktion einfach so in html einbinden. Und schon gar nicht mit Javascript!
Da kommst du nicht weiter...

Gruß
Dani
Bitte warten ..
Mitglied: Xaero1982
17.07.2006 um 16:47 Uhr
Hi,
das hier kann nicht gehen:
01.
> <input type="checkbox" 
02.
> name="hX" 
03.
> value="Festplatte" 
04.
> onClick="Report()" 
05.
> id="h5">Festplatte 
06.
>  
07.
> 
Du kannst keine PHP Funktion einfach so in
html einbinden. Und schon gar nicht mit
Javascript!
Da kommst du nicht weiter...

Gruß
Dani

haha genau da komm ich nicht weiter ... nicht nur da sondern bei allen checkboxen

nur WIE ist der Aufruf einer PHP Funktion in html ???

mit <?php echo Report();?> gehts auch nicht

Wir können gerne die Funktion auch weg lassen .. Das ist mir ziemlich egal
Muss halt irgendwie in die Switch Anweisung kommen
Bitte warten ..
Mitglied: Dani
17.07.2006 um 17:45 Uhr
Hi,
du kannst inm php => Javascript aufrufen, jedoch nicht anders rum! Sprich du musst das Formular wirklich abschicken und danach kannst du es auswerten. Sprich du liest mit $_POST den checkbox namen (am besten mit 1 bis x durch nummieren) aus und frägst dann den value (ab besten 1 für wahr und 0 für falsch) ab.


Gruß
Dani
Bitte warten ..
Mitglied: Xaero1982
19.07.2006 um 13:57 Uhr
Habe nun einen alternativen Weg genommen. Ich lasse per javascript und css ein bzw ausblenden was ich brauche

thx noch mal für die hilfe
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Netzwerkmanagement
gelöst HP 1920 24G Switch QOS-Problem bei Portzuweisung mit DHCP Relay (2)

Frage von farbschmelz zum Thema Netzwerkmanagement ...

PHP
gelöst HTML Dropdownmenü auslesen und in PHP als Variable übergeben (35)

Frage von ITFlori zum Thema PHP ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...