Zur Navigation

Mysql Daten aktualisieren,

1 webuser

Hallo,
mit einer Abfrage will ich Daten aktualisieren.
Es funktioniert alles, aber sobald ich im Kopf eine Dropdown Liste zum Filtern der Liste einsetze kommen keine Daten mehr. JS übergibt zwar die ID aber die Liste ist dann leer.
$strSQL = "SELECT * FROM daten";

Sobald die Daten gefiltert werden und mit EDT bearbeitet werden sollen, kommt nichts mehr

//$strSQL = "SELECT Id, DATE_FORMAT(von, '%d.%m.%Y') as ab, DATE_FORMAT(bis, '%d.%m.%Y') as bis, DATE_FORMAT(von, '%Y%m%d') as ab1, von, bis, Bemerkung, wid, name FROM daten where DATE_FORMAT(von, '%Y') = $jahr and wid = $idhaus order by ab1" ;

Gruß
Webuser

  <?php


                         $idhaus = $_POST['idhaus'];
                        if (empty($idhaus)) { $idhaus = 1;}

                        $jahr = $_POST['jahr'];
                        if (empty($jahr)) { $jahr = date("Y", time());}
   echo $idhaus;
   echo $jahr;


 ?>
<html>
<head>
<title>MySQL Tutorial</title>
</head>
<body>

                                <form action="test.php" method="post">

                                       <select name="jahr" id="jahr">
                                             <?php
                                             // Jahres-Auswahlliste

                                             $current_year = $jahr ;//date("Y");
                                              $bisyear = $jahr +6;
                                                for($i=date("Y");$i<=date("Y")+5;$i++) {
                                                $sel = ($i == $jahr) ? 'selected' : '';
                                                echo "<option value=".$i." ".$sel.">".$i."</option>";  // here I have changed
                                            }
                                            ?>
                                        </select>

                                             <select id="idhaus" name="idhaus" autofocus  >
                                                                    <option value="1" <? if($idhaus == "1")  echo 'selected="selected"'; ?>>auswahl1</option>
                                                                    <option value="2" <? if($idhaus == "2")  echo 'selected="selected"'; ?>>auswahl2</option>

                                                               </select>
                                               Start
                                                 <input type="submit" class="button" name="send" value="abfragen" />
                                                                     </form>


<?php

 require "/connect.php";

//*** Add Condition ***//
if($_POST["hdnCmd"] == "Add")
{
        $strSQL = "INSERT INTO daten ";
        $strSQL .="(name,von,wid,bis,bemerkung) ";
        $strSQL .="VALUES ";
        $strSQL .="('".$_POST["txtAddName"]."' ";
        $strSQL .=",'".$_POST["txtAddvon"]."' ";
        $strSQL .=",'".$_POST["txtAddwid"]."','".$_POST["txtAddbis"]."' ";
        $strSQL .=",'".$_POST["txtAddbemerkung"]."') ";
        $objQuery = mysql_query($strSQL);
        if(!$objQuery)
        {
                echo "Error Save [".mysql_error()."]";
        }
        //header("location:$_SERVER[PHP_SELF]");
        //exit();
}

//*** Update Condition ***//
if($_POST["hdnCmd"] == "Update")
{
        $strSQL = "UPDATE daten SET ";
        $strSQL .="name = '".$_POST["txtEditName"]."' ";
        $strSQL .=",von = '".$_POST["txtEditvon"]."' ";
        $strSQL .=",wid = '".$_POST["txtEditwid"]."' ";
        $strSQL .=",bis = '".$_POST["txtEditbis"]."' ";
        $strSQL .=",bemerkung = '".$_POST["txtEditbemerkung"]."' ";
        $strSQL .="WHERE id = '".$_POST["hdnEditid"]."' ";
        $objQuery = mysql_query($strSQL);
        if(!$objQuery)
        {
                echo "Error Update [".mysql_error()."]";
        }
        //header("location:$_SERVER[PHP_SELF]");
        //exit();
}

//*** Delete Condition ***//
if($_GET["Action"] == "Del")
{
        $strSQL = "DELETE FROM daten ";
        $strSQL .="WHERE id = '".$_GET["CusID"]."' ";
        $objQuery = mysql_query($strSQL);
        if(!$objQuery)
        {
                echo "Error Delete [".mysql_error()."]";
        }
        //header("location:$_SERVER[PHP_SELF]");
        //exit();
}

$strSQL = "SELECT * FROM daten";
//$strSQL = "SELECT Id, DATE_FORMAT(von, '%d.%m.%Y') as ab, DATE_FORMAT(bis, '%d.%m.%Y') as bis, DATE_FORMAT(von, '%Y%m%d') as ab1, von, bis, Bemerkung, wid, name FROM daten where DATE_FORMAT(von, '%Y') = $jahr and wid = $idhaus order by ab1" ;

$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
?>
<form name="frmMain" method="post" action="<?php echo $_SERVER["PHP_SELF"];?>">
<input type="hidden" name="hdnCmd" value="">
<table width="600" border="1">
  <tr>
    <th width="91"> <div align="center">id </div></th>
    <th width="98"> <div align="center">Name </div></th>
    <th width="198"> <div align="center">von </div></th>
    <th width="59"> <div align="center">bis </div></th>
    <th width="97"> <div align="center">wid </div></th>

    <th width="71"> <div align="center">bemerkung </div></th>
    <th width="30"> <div align="center">Edit </div></th>
    <th width="30"> <div align="center">Delete </div></th>
  </tr>
<?php
while($objResult = mysql_fetch_array($objQuery))
{
?>

  <?php
        if($objResult["Id"] == $_GET["CusID"] and $_GET["Action"] == "Edit")
        {
  ?>
  <tr>
    <td><input type="text" name="txtEditid" size="20" value="<?php echo $objResult["Id"];?>"></td>
    <td><input type="text" name="txtEditName" size="20" value="<?php echo $objResult["name"];?>"></td>
    <td><input type="text" name="txtEditvon" size="20" value="<?php echo $objResult["von"];?>"></td>
    <td align="right"><input type="text" name="txtEditbis" size="20" value="<?php echo $objResult["bis"];?>"></td>
    <td><div align="center"><input type="text" name="txtEditwid" size="2" value="<?php echo $objResult["wid"];?>"></div></td>
    <td align="right"><input type="text" name="txtEditbemerkung" size="20" value="<?php echo $objResult["bemerkung"];?>"></td>
    <td colspan="2" align="right"><div align="center">
      <input name="btnAdd" type="button" id="btnUpdate" value="Update" OnClick="frmMain.hdnCmd.value='Update';frmMain.submit();">
          <input name="btnAdd" type="button" id="btnCancel" value="Cancel" OnClick="window.location='<?php echo $_SERVER["PHP_SELF"];?>';">
    </div></td>
  </tr>
  <?php
        }
  else
        {
  ?>
  <tr>
    <td><div align="center"><?php echo $objResult["Id"];?></div></td>
    <td><?php echo $objResult["name"];?></td>
    <td><?php echo $objResult["von"];?></td>
    <td align="right"><?php echo $objResult["bis"];?></td>
    <td><div align="center"><?php echo $objResult["wid"];?></div></td>
    <td align="right"><?php echo $objResult["bemerkung"];?></td>
    <td align="center"><a href="<?php echo $_SERVER["PHP_SELF"];?>?Action=Edit&CusID=<?php echo $objResult["Id"];?>">Edit</a></td>
        <td align="center"><a href="JavaScript:if(confirm('Confirm Delete?')==true){window.location='<?php echo $_SERVER["PHP_SELF"];?>?Action=Del&CusID=<?php echo $objResult["Id"];?>';}">Delete</a></td>
  </tr>
  <?php
        }
  ?>
<?php
}
?>
  <tr>
    <td><div align="center"><input type="text" name="txtAddid" size="5"></div></td>
    <td><input type="text" name="txtAddName" size="20"></td>
    <td><input type="text" name="txtAddvon" size="20"></td>
       <td align="right"><input type="text" name="txtAddbis" size="20"></td>
    <td><div align="center"><input type="text" name="txtAddwid" size="2"></div></td>
     <td align="right"><input type="text" name="txtAddbemerkung" size="20"></td>
    <td colspan="2" align="right"><div align="center">
      <input name="btnAdd" type="button" id="btnAdd" value="Add" OnClick="frmMain.hdnCmd.value='Add';frmMain.submit();">
    </div></td>
  </tr>
</table>
</form>
<?php
mysql_close($objConnect);
?>
</body>
</html>

27.11.2016 08:37

2 Jörg

JS übergibt zwar die ID aber die Liste ist dann leer.

Das verstehe ich jetzt nicht ganz - mit JS ist JavaScript gemeint? und die IDs werden angezeigt, aber die anderen Datenfelder (Name, von, bis etc.) nicht?

Vielleicht problematisch, dass der Name "bis" zur Bezeichnung von zwei verschiedenen Ausgabe-Werten verwendet wird:

SELECT /* ... */, DATE_FORMAT(bis, '%d.%m.%Y') as bis,  /* ... */,  bis,  /* ... */

27.11.2016 15:46 | geändert: 27.11.2016 15:46

1 Forenmitglied fand diesen Beitrag gut

3 webuser

Hallo, Jorg,
das mit dem bis habe ich geändert.
Vieleicht zeigt das hochgeladene Bild mehr.

Gruß
Webuser

27.11.2016 17:42

4 Jörg

Der Bilder-Upload scheint defekt :-/ - ich habe den mal temporär deaktiviert, bis ich ihn repariert habe. Das Bild wurde nicht in den Beitrag eingefügt, ich konnte es mir aber vom Server herunterladen.

DATE_FORMAT() gibt einen String zurück, deswegen braucht es hier wohl noch Hochkommata:

where DATE_FORMAT(von, '%Y') = '$jahr'

Ggf. würde ich nach der Abfrage auch noch ein mysql_error() ausgeben

27.11.2016 18:12

5 webuser

Hallo,
das war es nicht. Nach der Eingabe von Edit, "merkt" sich das Programm die gefüllte Variable $idhaus und $jahr nicht.

Wenn ich das Programm ohne die "lange" sql
$strSQL = "SELECT * FROM daten";
starte läuft alles richtig. Edit geht auch,

Gruß
Webuser

PS:
Vielleicht hat jemand ja noch ein Script mit "edit, add, und delete" in einer
php Datei. Dann würde ich damit neu anfangen.

27.11.2016 19:36

6 Jörg

Nach der Eingabe von Edit, "merkt" sich das Programm die gefüllte Variable $idhaus und $jahr nicht.

Naja, du übermittelst ja auch nur die Parameter Action und CusID:

<a href="<?php echo $_SERVER["PHP_SELF"];?>?Action=Edit&CusID=<?php echo $objResult["Id"];?>">Edit</a>

Du müsstest das Jahr dann auch noch mit dranhängen:

&amp;jahr=<?php echo $jahr ?>

Wobei der Wert dann nicht in $_POST['jahr'], sondern in $_GET['jahr'] stehen würde. Beides zusammen könntest du aus $_REQUEST['jahr'] auslesen

... ähnlichs gilt für die andere Variable $idhaus

27.11.2016 20:45 | geändert: 27.11.2016 20:47

1 Forenmitglied fand diesen Beitrag gut

Beitrag schreiben (als Gast)





[BBCode-Hilfe]