php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 03.07.2006, 13:46  
Erfahrener Benutzer
 
Registriert seit: 10.10.2007
Beiträge: 104
horstenpeter befindet sich auf einem aufstrebenden Ast
Standard Bedingungen für if - Abfrage richtig formulieren.

Hallo,

ich versuche gerade die folgende Schleife auszuführen, falls ein Wert für "$kat" übergeben wird und kein Wert für "$pkt" übergeben wird. Das habe ich mal so formuliert:

PHP-Code:
    if (!empty($kat) && empty($pkt)) {
              
$kategorien = array(
            
'Zahnpflege' => 'zahnpflege',
            
'Zahnersatz' => 'zahnersatz',
            
'Zahnimplantate' => 'zahnimplantate',
            
'Ärzteinformationen' => 'aerzte',
      );
        
$kategorie $kategorien[$kat];
        echo (
"Kategorie:$kat");
      
$moeglich mysql_query("SELECT menu from $kategorie");
      
$items mysql_fetch_array($moeglich);
      echo (
"<form action='redaktion.php' method='post' enctype='multipart/form-data'>");
      echo (
"Bitte w&auml;hlen Sie den zu bearbeitenden Text.
"
);
      echo (
"select name='pkt' size='1'>");
      foreach (
$items as $item) {
        echo (
"<option>$item</option>");
      }
      echo (
"</select>");
      echo (
"<input type='hidden' name='kat' value='$kat'>");
      echo (
"<input type='submit' value='Auswahl &uuml;bernehmen'>");
      echo (
"</form>");
    } 
Leider kommt die Schleife nicht zur Ausführung, auch wenn ich genau das übergebe. Zur Überprüfung habe ich am Anfang des Skripts

PHP-Code:
    echo ("&Uuml;bergebene Variablen: 
"
);
    echo (
"Neu: $neu 
Pkt: $pkt 
Kat: $kat 

"
); 
was folgendes ausgibt:

Code:
Übergebene Variablen:
Neu:
Pkt:
Kat: Zahnpflege
Was stimmt nicht ?
horstenpeter ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 03.07.2006, 14:08  
Erfahrener Benutzer
 
Registriert seit: 03.04.2006
Beiträge: 222
&lt;Daniel&gt;
Standard

Probier das mal:

PHP-Code:
 echo ("Neu: ".$neu.
Pkt: "
.$pkt.
Kat: "
.$kat.

"
); 
Wenn das nicht funktioniert, sag bescheid, dann guck ich mir auch noch die IF Anweisungen an ^^

Gruß
Daniel
&lt;Daniel&gt; ist offline  
Alt 03.07.2006, 14:11  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

vieleicht mal ein error_reporting(E_ALL); ganz an den anfang deines scripts, dann siehst du zumindest ob du auf uninitialisierte variablen zugreifst, dann solltest du immer mit www.php.net/mysql_error() hinter mysql_query arbeiten, vieleicht gibts da ja nen fehler ? und mal überprüfen ob es überhaupt ergebnisse gibt ? es kann ja sein dass ein fehler im query ist und kein eintrag zum query passt -> www.php.net/mysql_num_rows()
robo47 ist offline  
Alt 03.07.2006, 14:26  
Erfahrener Benutzer
 
Registriert seit: 03.04.2006
Beiträge: 222
&lt;Daniel&gt;
Standard

Hab mir grad mal die IF Anweisungen durch geguckt, da hast die selben Fehler drinne wie ich oben schon geschrieben habe.

Du hast hier z.B.
PHP-Code:
echo ("<input type='hidden' name='kat' value='$kat'>"); 
Die Variabel '$kat' einfach so in den String geschrieben, das geht nicht
Du musst Variablen vom Restlichen String trennen, das macht man in dem man einen Punkt "." setzt.

Also das:
PHP-Code:
echo ("<input type='hidden' name='kat' value='$kat'>"); 
Muss so aussehen:
PHP-Code:
echo ("<input type='hidden' name='kat' value='".$kat."'>"); 
So dass du 3 Teile Quasi hast:
1. "<input type='hidden' name='kat' value='"
2. .$kat.
3. "'>"

Ich hoffe du erkennst was ich gemacht habe

Gruß
&lt;Daniel&gt; ist offline  
Alt 03.07.2006, 15:48  
Erfahrener Benutzer
 
Registriert seit: 23.08.2007
Beiträge: 1.510
M3g4Star befindet sich auf einem aufstrebenden Ast
Standard

*hm* register Globals ???

wie "definierst du deine Variablen ?!?!
Was Daniel geschrieben hat ist zwar richtig aber dürfte nicht das Problem sein !
Das hat dann eher was mit der Performance zu tun

Aber das für dich glaube ich erstmal "nebensächlich".

Grüße M3g4
M3g4Star ist offline  
Alt 03.07.2006, 16:06  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

Zitat:
Zitat von <Daniel>

Du hast hier z.B.
PHP-Code:
echo ("<input type='hidden' name='kat' value='$kat'>"); 
Die Variabel '$kat' einfach so in den String geschrieben, das geht nicht
Du musst Variablen vom Restlichen String trennen, das macht man in dem man einen Punkt "." setzt.
doch das geht, solange man das echo mit " aufmacht, dann werden variablen geparst, anders bei ' da werden sie nicht geparst. Aber die Variante das ganze vom restlichen string durch verknüpfungen zu trennen ist wie ich finde die sauberere.

mfg
robo47
robo47 ist offline  
Alt 03.07.2006, 17:35  
Erfahrener Benutzer
 
Registriert seit: 01.02.2004
Beiträge: 550
cytrobic
Standard

print_r($_GET);
print_r($_POST);

kommt wat an ? :wink:
__________________
keine
cytrobic ist offline  
Alt 03.07.2006, 18:28  
Erfahrener Benutzer
 
Registriert seit: 10.10.2007
Beiträge: 104
horstenpeter befindet sich auf einem aufstrebenden Ast
Standard

Hallo und danke für die zahlreichen Antworten.

<Daniel>: Danke für den Tipp mit dem trennenden Punkt. robo47 schreibt ja, das wäre so wie ichs mache auch OK und hat auch immer funktioniert. Aber ich behalte das mal im Hinterkopf. Im Moment kommt der Code in der Schleife ja noch nicht mal zur Ausführung. Der Fehler liegt m. E. nach in der if () - Anweisung.

robo47: error_reporting(E_ALL); ist drin, gibt aber nichts aus (und unterbricht die Ausführung auch nicht). Die mysql - Abfrage kommt auch gar nicht zur Ausführung (s.o.).

M3g4Star: Die Variablen werden definiert wie folgt:
PHP-Code:
    $neu=$_POST['neu'];
    
$pkt=$_POST['pkt'];
    
$kat=$_POST['kat']; 
$kat wird korrekt übertragen (Das zeigt ja meine Ausgabe an), nur die if - Bedingung wird nicht ausgelöst.....

cytrobic: print_r($_POST) liefert

Code:
Array ( [kat] => Zahnpflege )
(wie erwartet). Mit der Methode GET werden (hier) keine Daten übertragen.


Ich schätze der Fehler muss irgendwo in
PHP-Code:
if (!empty($kat) && empty($pkt)) 
liegen...
horstenpeter ist offline  
Alt 03.07.2006, 18:30  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

var_dump($kat); bzw. var_dump($pkt); ergeben was?
Zergling-new ist offline  
Alt 03.07.2006, 18:31  
Erfahrener Benutzer
 
Registriert seit: 10.10.2007
Beiträge: 104
horstenpeter befindet sich auf einem aufstrebenden Ast
Standard

string(10) "Zahnpflege" bzw. NULL
horstenpeter ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Abfrage von einer Abfrage Datenbanken 5 27.01.2011 23:31
Abfrage richtig? Vereinfachen? cycap Datenbanken 3 30.08.2007 13:38
Abfrage formulieren Lara Datenbanken 6 29.06.2006 09:29
[Erledigt] mysql abfrage über 4 Tabelle - bis 3 geht, bei der 4. habert Datenbanken 2 08.09.2005 11:59
$result leer obwohl abfrage richtig sein müsste Webunni.de Datenbanken 5 11.04.2005 18:44
[Erledigt] IF() abfrage in variable packen PHP Tipps 2005 14 01.04.2005 17:23
Abfrage von Char-Feldern Datenbanken 9 04.02.2005 14:06
[Erledigt] SQL Abfrage funzt nicht Datenbanken 2 04.02.2005 11:09
[Erledigt] Mysql Abfrage Problem! PHP-Fortgeschrittene 5 27.11.2004 10:22
Abfrage zweier Tabellen funzt net richtig Datenbanken 1 17.09.2004 12:53
Abfrage funktioniert zwar, aber nicht korrekt Datenbanken 2 16.08.2004 09:10
Abfrage aus DB noch mal ausgeben und Abfrage aus mehrern Tab PHP Tipps 2004 4 12.07.2004 15:00
[Erledigt] Fehlerhafte Abfrage ? Datenbanken 15 24.06.2004 17:10
[Erledigt] mysql Abfrage Datenbanken 5 18.06.2004 14:16
[Erledigt] Variable per GET übergeben und DB Abfrage nutzen PHP Tipps 2004 4 01.06.2004 15:17

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php if abfrage übergeben, php werden teile in einer if geparst performance, if abfrage bedingungen trennen, if abfrage wie formulieren, auml in if-abfrage, richtig formulieren für die php, if anweisung dur <?php trennen

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:07 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.