Script funktioniert nicht richtig

alexorg

Mitglied
Hi,
also ich hab ein script, was als Adressdatenbank dienen soll.
Es zeigt die Namen auch auf der seite an, wenn ich dann aber
auf details klicke, pleibt die Seite einfach genau so wie vorher
(das heisst nur der Name steht da- obwohl ich aber die anderen
daten auch ausgeben wollte). Genau so mit dem eintragen der
neuen Daten das funktioniert auch nicht. die seite bleibt wieder
genau so wie vorher. Hier mal mein Code:

PHP:
<?  
$section = ""; 
if($section == "") 
{ 
$section = "all" ; 
} 
if($section == all) 
{ 
include("connect.php");  
$result = mysql_query("SELECT id, name , vorname FROM adressen ORDER BY name ASC ");   
while($usr = mysql_fetch_array($result))   
{  
echo "$usr[vorname] $usr[name] | <a href=database.php?section=details&id=$usr[id]>Details</a>";  
}
} 
if($section==formular)  
{   
echo "<br><br><center><form method=post action=database.php?section=newuser><table width=450><tr><td>Vorname:</td><Td><input name=vorname type=text></td></tr><tr><td>Nachname:</td><Td><input name=nachname type=text></td></tr><tr><td></td><Td><input name=Senden type=submit value=Senden></td></tr></table></form></center>";   
}
if($section==newuser) 
{ 
mysql_query("INSERT INTO adresse(`vorname`, `nachname`, `addr`, `ort`, `fon`, `handy`, `notiz` )  VALUES( '$_POST[vorname]', '$_POST[nachname]')"); 
}
if($section==details)
{
echo "$usr[vorname], $usr[name], $usr[addr], $usr[ort]";
}
?>

Hoffe ihr könnt mir helfen.
Greetz,

Alex

Ps: hier könnt ihr sehen was ich meine: http://www.al3x.org/datenbank/database.php
und sorry, dass die seite so breit ist :)
 
Was soll das denn am Anfang, 2.te Zeile:
PHP:
$section = "";
.
Mach das mal raus.

*edit*
Und mach die If abfragen so:
PHP:
if($section=="details"){
.
.
.
}
Also details, formular und newuser in "" schreiben
 
Zuletzt bearbeitet:
Diese Zeile:
PHP:
$section = "";
macht sehrwohl einen Sinn, besonders, wenn notices angestellt sind. Dann gibt es nämlich eine Notice, wenn du eine nichtvorhandene Variable benutzten willst (ausser beim definieren/zuweisen):
PHP:
<?php $bla .= "test";
echo $bla; ?>
Wird eine Notice geben: Undefined variable 'bla' in script.php in Line 1;
Das nur mal so neben bei.

Was allerdings keinen Sinn macht, ist dieser Konstrukt hier:
PHP:
$section = ""; 
if($section == "") 
{ 
$section = "all" ; 
}
Was willst du damit bezwecken?
Du kannst section gleich den Wert "all" zuweisen, hat genau den selben Effekt.
Besonders Sinnlos ist das ganze dann, wenn du nacher prüfst, ob section einen gewissen Wert hat..

Was du warscheinlich damit bezwecken wolltest: Falls die _GET Variable section nicht übergeben worden ist, setzte sie auf "all"? so?

Das machst du am besten so:
PHP:
$section = (isset($_GET['section']))?$_GET['section']:"all";
Und prüfen, welchen Wert sie hat, macht man in dem Fall am besten mit einer Switch Anweisung:
PHP:
switch($section) {
    case "all":
        //Aktion fuer all:
        break;
    case "formular":
        //Aktion fuer formular
        break;
    case "newuser":
        //Aktion fuer  newuser
        break;
    //usw..
}
Was du noch falsch gemacht hast:
PHP:
$section==formular
vergleicht die Variable section mit der Konstante formular und nicht mit dem String. Du musst das formular in Anführungszeichen setzten:
PHP:
$section == "formular"
 
Nun hab ich es so gemacht:

PHP:
<?
include("connect.php");  
$result = mysql_query("SELECT id, name , vorname FROM adressen ORDER BY name ASC ");   
while($usr = mysql_fetch_array($result))   
{  
echo "$usr[vorname] $usr[name] | <a href=database.php?section=details&id=$usr[id]>Details</a>";  
}
if($section=="show"){ 
echo "$usr[vorname] $usr[name] | <a href=database.php?section=details&id=$usr[id]>Details</a>";
} 
if($section=="formular"){   
echo "<br><br><center><form method=post action=database.php?section=newuser><table width=450><tr><td>Vorname:</td><Td><input name=vorname type=text></td></tr><tr><td>Nachname:</td><Td><input name=nachname type=text></td></tr><tr><td></td><Td><input name=Senden type=submit value=Senden></td></tr></table></form></center>";   
}
if($section=="newuser") { 
mysql_query("INSERT INTO adressen (`vorname`, `nachname`)  VALUES( '$_POST[vorname]', '$_POST[nachname]')"); 
}
if($section=="details"){
echo "$usr[vorname], $usr[name], $usr[addr], $usr[ort]";
}
?>

und nun zeigt er unter http://www.al3x.org/datenbank/database.php?section=formular auch das
Formular zum eintragen an. Allerdings trägt er
sie dann nicht in die Datenbank ein... Ausser den geht das
mit den Details immer noch nicht da kommt der name und
dann kommen ein paar kommas.....

Weisst du woran das nun liegen kann?

Greetz,

Alex

(http://www.al3x.org/datenbank/database.php)
 
so geht es auch nicht:

PHP:
<?
include("connect.php");
$section = (isset($_GET['section']))?$_GET['section']:"all";
switch($section) {
    case "all":
        $result = mysql_query("SELECT id, name , vorname FROM adressen ORDER BY name ASC ");   
        while($usr = mysql_fetch_array($result))   
		{
		echo "$usr[vorname] $usr[name] | <a href=database.php?section=details&id=$usr[id]>Details</a>";  
		}
		break;
    case "formular":
        echo "<br><br><center><form method=post action=database.php?section=newuser><table width=450><tr><td>Vorname:</td><Td><input name=vorname type=text></td></tr><tr><td>Nachname:</td><Td><input name=name type=text></td></tr><tr><td></td><Td><input name=Senden type=submit value=Senden></td></tr></table></form></center>";
        break;
    case "newuser":
        mysql_query("INSERT INTO adressen (`vorname`, `name`)  VALUES( '$_POST[vorname]', '$_POST[name]')");
		echo "Daten wurden eingetragen!";
        break;
    case "details":
		echo "$usr[vorname], $usr[name], $usr[addr], $usr[ort]";
}
?>
 
Zuletzt bearbeitet:
So, habe es nun hinbekommen.

Nun bin ich bei der lösch funktion und komm nicht weiter: hier mal so wie ich mir das gedacht hatte:

damit übergebe ich die id (funktioniert auch)

PHP:
<a href=database.php?section=delete&id=$usr[id]>Delete</a>

dann wollte ich, das n formular kommt wo n passwort abgefragt wird
da dachte ich mir das mach ich so:

PHP:
case "delete":
           echo "<form><input type=hidden value='$_POST[id]' name=id></form>"; 
           if($_POST["pw"] == "pw")  
           {  
           mysql_query("DELETE FROM adresse WHERE id=$_POST[id]");  
           }  
           else  
           {  
           echo "du bist nicht dazu berechtigt"; 
           }

aber das funktioniert nun nicht. ich bekomme das eingabefeld gar nicht angezeigt und er springt gleich rüber auf "du bist datu nicht berechtigt".

Was muss ich nun machen um das hinzubekommen.

& greetz

Alex

Mein Code:

PHP:
<?
include("connect.php");
$pw = alex;
$section = (isset($_GET['section']))?$_GET['section']:"all";
switch($section) {
    case "all":
        $result = mysql_query("SELECT `id`,`name`, `vorname` FROM `adressen` ORDER BY `name` ASC ");   
        while($usr = mysql_fetch_array($result))   
		{
		echo "<table width=450 border=1 cellspacing=0 cellpadding=0 bordercolor=#000000 align=center>
  <tr> 
    <td width=276>&nbsp; $usr[vorname] $usr[name]</td>
    <td width=168>&nbsp; <a href=database.php?section=details&id=$usr[id]>Details</a><br>
    </td>
      <td width=168>&nbsp; <a href=database.php?section=delete&id=$usr[id]>Delete</a></td>
  </tr>
</table>
<br>";
		}
		echo "<br><center><a href=database.php?section=formular>Neue Adresse eintragen</a></center>";
		break;
    case "formular":
        echo "<br><br><center><form method=post action=database.php?section=newuser>
    <table width=450 cellpadding=0 cellspacing=0 border=1 bordercolor=#000000 align=center><tr><td><font face=Verdana, Arial, Helvetica, sans-serif size=2>Vorname:</font></td><td><font face=Verdana, Arial, Helvetica, sans-serif size=2> 
        <input name=vorname type=text>
        </font></td>
    </tr>
    <tr> 
      <td><font face=Verdana, Arial, Helvetica, sans-serif size=2>Nachname:</font></td>
      <Td> <font face=Verdana, Arial, Helvetica, sans-serif size=2> 
        <input name=name type=text>
        </font></td>
    </tr>
    <tr> 
      <td><font face=Verdana, Arial, Helvetica, sans-serif size=2>Strasse:</font></td>
      <Td> <font face=Verdana, Arial, Helvetica, sans-serif size=2> 
        <input name=addr type=text>
        </font></td>
    </tr>
    <tr> 
      <td><font face=Verdana, Arial, Helvetica, sans-serif size=2>Ort:</font></td>
      <Td> <font face=Verdana, Arial, Helvetica, sans-serif size=2> 
        <input name=ort type=text>
        </font></td>
    </tr>
    <tr> 
      <td><font face=Verdana, Arial, Helvetica, sans-serif size=2>Telefon:</font></td>
      <Td> <font face=Verdana, Arial, Helvetica, sans-serif size=2> 
        <input name=fon type=text>
        </font></td>
    </tr>
    <tr> 
      <td><font face=Verdana, Arial, Helvetica, sans-serif size=2>Handy:</font></td>
      <Td> <font face=Verdana, Arial, Helvetica, sans-serif size=2> 
        <input name=handy type=text>
        </font></td>
    </tr>
    <tr> 
      <td><font face=Verdana, Arial, Helvetica, sans-serif size=2>Mail:</font></td>
      <Td> <font face=Verdana, Arial, Helvetica, sans-serif size=2> 
        <input name=mail type=text>
        </font></td>
    </tr>
    <tr> 
      <td><font face=Verdana, Arial, Helvetica, sans-serif size=2>Bemerkung:</font></td>
      <Td> <font face=Verdana, Arial, Helvetica, sans-serif size=2> 
        <textarea name=notiz></textarea>
        </font></td>
    </tr>
    <tr> 
      <td><font face=Verdana, Arial, Helvetica, sans-serif size=2></font></td>
      <Td> <font face=Verdana, Arial, Helvetica, sans-serif size=2> 
        <input name=Senden type=submit value=Senden>
        </font></td>
    </tr>
  </table>
  </form>";
        break;
    case "newuser":
        mysql_query("INSERT INTO adressen (`vorname`, `name`, `addr`, `ort`, `fon`, `handy`, `mail`, `notiz`)  VALUES( '$_POST[vorname]', '$_POST[name]', '$_POST[addr]', '$_POST[ort]', '$_POST[fon]', '$_POST[handy]', '$_POST[mail]', '$_POST[notiz]')");
		echo "Daten wurden eingetragen!";
        break;
	case "details": 
        $result = mysql_query("SELECT `vorname`, `name`, `addr`, `ort`, `fon`, `handy`, `mail`, `notiz` FROM `adressen` WHERE `id`='".$_GET['id']."'"); 
        $usr = mysql_fetch_array($result); 
        echo "<table width=450 cellpadding=0 cellspacing=0 border=1 align=center bordercolor=#000000>
  <tr> 
        <td width=117>Vorname:</td>
        <Td width=331>&nbsp; $usr[vorname]</td>
      </tr>
      <tr> 
        <td width=117>Nachname:</td>
        <Td width=331>&nbsp; $usr[name]</td>
      </tr>
      <tr> 
        <td width=117>Strasse:</td>
        <Td width=331>&nbsp; $usr[addr]</td>
      </tr>
      <tr> 
        <td width=117>Ort:</td>
        <Td width=331>&nbsp; $usr[ort]</td>
      </tr>
      <tr> 
        <td width=117>Telefon:</td>
        <Td width=331>&nbsp; $usr[fon]</td>
      </tr>
      <tr> 
        <td width=117>Handy:</td>
        <Td width=331>&nbsp; $usr[handy]</td>
      </tr>
      <tr> 
        <td width=117>E-Mail:</td>
        <Td width=331>&nbsp; $usr[mail]</td>
      </tr>
      <tr> 
        <td width=117>Bemerkungen:</td>
        <Td width=331>&nbsp; $usr[notiz]</td>
      </tr>
    </table>"; 
       break;
		case "delete":
           echo "<form><input type=hidden value='$_POST[id]' name=id></form>"; 
           if($_POST["pw"] == "pw")  
           {  
           mysql_query("DELETE FROM adresse WHERE id=$_POST[id]");  
           }  
           else  
           {  
           echo "du bist nicht dazu berechtigt"; 
           }
}
echo "<center>&copy al3x.org</center>";
?>
 
Zurück