php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 22.05.2005, 20:23  
Gast
 
Beiträge: n/a
Standard Wieso wird dies nicht ausgeführt?

Hi leuts

Ich habe hier ein problem mit einer datei (welch Wunder ) nein, jetzt mal ernst. Es liegt die folgende datei vor:

PHP-Code:
<?php
error_reporting
(E_ALL);
include (
"db.php"); //Einfügen der db.php und Aufbau der Datenbankverbindung
$query "SELECT hunger, krankheiten, wohlfuehl, pfund, die FROM `mypet_katzen`";//Die Auszuführende Abfrage
$ergebnis mysql_query($query) or die ("Achtung Fehler irgendwas!
"
.mysql_error().""); // Abfrage wird asugeführt
while($row mysql_fetch_assoc($ergebnis))
{
  if (
$row["die"] == 10// Überprüfen ob das Tier als Tot eingestuft werden muss
  

    
$new_die 1;
  }
  else if (
$row["krankheiten"] == 1)// Überprüfen ob das Tier krank ist
  
{
    
$hunger_new $row["hunger"] -2;
    
$wohlfuehl_new $row["wohlfuehl"] -2;
    if (
$row["die"]==0)
      {
        
$new_die 2;
      }
    else
      {
        
$new_die $row["die"] +1;
      }
  }
  else if (
$row["pfund"] == 1)// Überprüfen ob die Katze ein Häufchen gemacht hat
  
{
    
$krankheiten_new 1;
  }
  else if (
$row["hunger"] >= 6)// Überprüfen ob es Zeit für ein Häufchen ist
  
{
    
$pfund_new 1;
  }
  else if (
$row["hunger"] >= 10 or $row["krankheiten"] > or $row["pfund"] > or $row["wohlfuehl"] >10 or $row["die"] >1)  // Alle daten werden auf Cheetingverdacht überprüft, im Falle einer bestätigung erfolgt der Tod des Tieres
  
{
    
$new_die 1;
  }
  else if (
$row["hunger"] <= 10 and $row["krankheiten"] == and $row["pfund"] == and $row["wohlfuehl"] <=10 and $row["die"] != 1//Was zu tun ist wenn keines der obig vorliegenden Dinge zutrift
  
{
    
$hunger_new $row["hunger"] -1;
    
$wohlfuehl_new $row["wohlfuehl"] -1;
    
$krankheiten_new 0;
    
$new_die $row["die"];
    
$pfund_new 0;
  }
  
$eintrag "UPDATE `mypet_katzen` SET `hunger` = '$hunger_new', `krankheiten` = '$krankheiten_new', `wohlfuehl` = '$wohlfuehl_new', `pfund` = '$pfund_new', `die`= '$new_die'"
  
$eintragen mysql_query($eintrag) or die (mysql_error());
echo 
'Ausgabe array aus Datenbankabfrage:
'

echo 
'<pre>'
print_r($row); 
echo 
'</pre>';
}
mysql_close($verbindung);
?>
Nur: Wenn $row["hunger"] == 1 ist, ist am Ende in der DB krankheiten nicht1 sondern beide sind wieder 0! Ein ähnliches Spiel passiert wenn $row["krankheiten"] == 1, dann ist am Ende in der Db die und krankheiten wieder 0. Wieso geschieht dass und vor allem wie lässt es sich beheben? Der Array der mir ausgegeben wird ist vollständig und ohne Fehler.

LG
Garnele
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 22.05.2005, 20:26  
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

debug doch mal, lass dir doch nach jedem scriptabschnitt ausgeben was für einen wert es hat und grenze so ein, wo sich der wert verändert.
robo47 ist offline  
Alt 22.05.2005, 20:33  
Gast
 
Beiträge: n/a
Standard

Hi

Sorry, ich scheine Heute einfach nicht fähig, mit dem

PHP-Code:
<?php
error_reporting
(E_ALL);
include (
"db.php"); //Einfügen der db.php und Aufbau der Datenbankverbindung
$query "SELECT hunger, krankheiten, wohlfuehl, pfund, die FROM `mypet_katzen`";//Die Auszuführende Abfrage
$ergebnis mysql_query($query) or die ("Achtung Fehler irgendwas!
"
.mysql_error().""); // Abfrage wird asugeführt
while($row mysql_fetch_assoc($ergebnis))
{
  if (
$row["die"] == 10// Überprüfen ob das Tier als Tot eingestuft werden muss
  

    
$new_die 1;
  }
  echo 
$row["pfund"$row["krankheiten"];
  else if (
$row["krankheiten"] == 1)// Überprüfen ob das Tier krank ist
  
{
    
$hunger_new $row["hunger"] -2;
    
$wohlfuehl_new $row["wohlfuehl"] -2;
    if (
$row["die"]==0)
      {
        
$new_die 2;
      }
    else
      {
        
$new_die $row["die"] +1;
      }
  }
  echo 
$row["pfund"$row["krankheiten"];
  else if (
$row["pfund"] == 1)// Überprüfen ob die Katze ein Häufchen gemacht hat
  
{
    
$krankheiten_new 1;
  }
  echo 
$row["pfund"$row["krankheiten"];
  else if (
$row["hunger"] >= 6)// Überprüfen ob es Zeit für ein Häufchen ist
  
{
    
$pfund_new 1;
  }
  echo 
$row["pfund"$row["krankheiten"];
  else if (
$row["hunger"] >= 10 or $row["krankheiten"] > or $row["pfund"] > or $row["wohlfuehl"] >10 or $row["die"] >1)  // Alle daten werden auf Cheetingverdacht überprüft, im Falle einer bestätigung erfolgt der Tod des Tieres
  
{
    
$new_die 1;
  }
  echo 
$row["pfund"$row["krankheiten"];
  else if (
$row["hunger"] <= 10 and $row["krankheiten"] == and $row["pfund"] == and $row["wohlfuehl"] <=10 and $row["die"] != 1//Was zu tun ist wenn keines der obig vorliegenden Dinge zutrift
  
{
    
$hunger_new $row["hunger"] -1;
    
$wohlfuehl_new $row["wohlfuehl"] -1;
    
$krankheiten_new 0;
    
$new_die $row["die"];
    
$pfund_new 0;
  }
  
$eintrag "UPDATE `mypet_katzen` SET `hunger` = '$hunger_new', `krankheiten` = '$krankheiten_new', `wohlfuehl` = '$wohlfuehl_new', `pfund` = '$pfund_new', `die`= '$new_die'"
  
$eintragen mysql_query($eintrag) or die (mysql_error());
echo 
'Ausgabe array aus Datenbankabfrage:
'

echo 
'<pre>'
print_r($row); 
echo 
'</pre>________';
}
mysql_close($verbindung);
?>
kriege ich

Code:
Parse error: parse error, unexpected T_VARIABLE, expecting ',' or ';' in /home/virtual/site195/fst/var/www/test.garnelenforum.ch/mypet/update.php on line 12
LG
Garnele
 
Alt 22.05.2005, 20:38  
Erfahrener Benutzer
 
Registriert seit: 01.12.2003
Beiträge: 4.113
supertramp
Standard

falsch ist:
echo $row["pfund"] $row["krankheiten"];
__________________
Aufstrebend, kompetent und werbefrei.
www.developers-guide.net
supertramp ist offline  
Alt 22.05.2005, 20:38  
Gast
 
Beiträge: n/a
Standard

PHP-Code:
<?php
echo $row["pfund"$row["krankheiten"]; 
?>
Du bist nicht in der Lage, ein simples echo fehlerfrei einzubauen und dann den Fehler nicht selber zu finden? Auweia. Ich würde da mal ein Punkt zwischen die Variablen machen.

Gruß
phpfan
 
Alt 22.05.2005, 20:39  
Gast
 
Beiträge: n/a
Standard

Hi supertramp

Ja, das weiss ich auch, aber was muss ich abändern so dass es geht?

LG
Garnele

edit: Danke phpfan
 
Alt 22.05.2005, 20:44  
Gast
 
Beiträge: n/a
Standard

Hi leute

Also ich hab es ausprobiert, und so wie die datei jetzt aussieht sind die Daten aus der DB bis zum letzten echo vorhanden, sie gehen also bis dort nicht verloren. Nur wieso wird dann am Ende nicht richtig geupdatet sondern einfach wieder 0 reingeschrieben?

PHP-Code:
<?php
error_reporting
(E_ALL);
include (
"db.php"); //Einfügen der db.php und Aufbau der Datenbankverbindung
$query "SELECT hunger, krankheiten, wohlfuehl, pfund, die FROM `mypet_katzen`";//Die Auszuführende Abfrage
$ergebnis mysql_query($query) or die ("Achtung Fehler irgendwas!
"
.mysql_error().""); // Abfrage wird asugeführt
while($row mysql_fetch_assoc($ergebnis))
{
  if (
$row["die"] == 10// Überprüfen ob das Tier als Tot eingestuft werden muss
  

    
$new_die 1;
  }
  echo 
$row["pfund"].$row["krankheiten"];
  if (
$row["krankheiten"] == 1)// Überprüfen ob das Tier krank ist
  
{
    
$hunger_new $row["hunger"] -2;
    
$wohlfuehl_new $row["wohlfuehl"] -2;
    if (
$row["die"]==0)
      {
        
$new_die 2;
      }
    else
      {
        
$new_die $row["die"] +1;
      }
  }
  echo 
$row["pfund"].$row["krankheiten"];
  if (
$row["pfund"] == 1)// Überprüfen ob die Katze ein Häufchen gemacht hat
  
{
    
$krankheiten_new 1;
  }
  echo 
$row["pfund"].$row["krankheiten"];
  if (
$row["hunger"] >= 6)// Überprüfen ob es Zeit für ein Häufchen ist
  
{
    
$pfund_new 1;
  }
  echo 
$row["pfund"].$row["krankheiten"];
  if (
$row["hunger"] >= 10 or $row["krankheiten"] > or $row["pfund"] > or $row["wohlfuehl"] >10 or $row["die"] >1)  // Alle daten werden auf Cheetingverdacht überprüft, im Falle einer bestätigung erfolgt der Tod des Tieres
  
{
    
$new_die 1;
  }
  echo 
$row["pfund"].$row["krankheiten"];
  if (
$row["hunger"] <= 10 and $row["krankheiten"] == and $row["pfund"] == and $row["wohlfuehl"] <=10 and $row["die"] != 1//Was zu tun ist wenn keines der obig vorliegenden Dinge zutrift
  
{
    
$hunger_new $row["hunger"] -1;
    
$wohlfuehl_new $row["wohlfuehl"] -1;
    
$krankheiten_new 0;
    
$new_die $row["die"];
    
$pfund_new 0;
  }
  
$eintrag "UPDATE `mypet_katzen` SET `hunger` = '$hunger_new', `krankheiten` = '$krankheiten_new', `wohlfuehl` = '$wohlfuehl_new', `pfund` = '$pfund_new', `die`= '$new_die'"
  
$eintragen mysql_query($eintrag) or die (mysql_error());
echo 
'Ausgabe array aus Datenbankabfrage:
'

echo 
'<pre>'
print_r($row); 
echo 
'</pre>________';
}
mysql_close($verbindung);
?>


LG
Garnele
 
Alt 22.05.2005, 20:50  
Gast
 
Beiträge: n/a
Standard

Da fehlen zwei echo in dem Script.
PHP-Code:
<?php
 
{
    echo 
" keines der obig vorliegenden Dinge zutrift ";
    
$hunger_new $row["hunger"] -1
    
$wohlfuehl_new $row["wohlfuehl"] -1
    
$krankheiten_new 0
    
$new_die $row["die"]; 
    
$pfund_new 0
  } 
?>
Und
PHP-Code:
<?php
  
echo $eintrag;
 
$eintragen mysql_query($eintrag) or die (mysql_error()); 
?>
Ist das wirklich so schwer, das Debugging per echo konsequent durchzuziehen?

Gruß
phpfan
 
Alt 22.05.2005, 20:57  
Gast
 
Beiträge: n/a
Standard

Hi

Ich habe sie an dieser Stelle nun auch noch eingefügt, das Ergebniss ist unverändert.

LG
Garnele
 
Alt 22.05.2005, 21:03  
Gast
 
Beiträge: n/a
Standard

Du wirst es kaum glauben, es würde die Sache erleichtern wenn man wüsste, ob

" keines der obig vorliegenden Dinge zutrift ";

ausgegeben wird und was bei

echo $eintrag;

rauskommt. Bedenke, heute ist Sonntag und laut Gewerkschaft dürfen unsere Glaskugeln nicht benutzt werden.

Gruß
phpfan
 
 


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


Alle Zeitangaben in WEZ +2. Es ist jetzt 14: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.