tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
462
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Papi62
    Papi62 Papi62 ist offline Mitglied Bronze
    Registriert seit
    Sep 2005
    Ort
    Dittingen, Schweiz
    Beiträge
    48
    Hallo zusammen

    Ich bin anscheinend etwas begriffsstutzig. Hab schon mehrere Foren durchsucht und auch ähnliche Themen gefunden konnte es aber nicht für mein Problem umsetzen, bin halt noch Anfänger.

    Ich hab mir eine SQL-Datenbank gebastelt mit 48 Datensätzen die sich in der Anzahl nicht verändern werden/sollen, einzig die letzten 7 Felder jedes Datenssatzes sollen geupdatet werden können. Soweit alles bestens, das anzeigen funktioniert problemlos (siehe php3.jpg).

    Nun endlich zum Problem: Ich habe nun eine php-Seite mit mehreren Formularen (im Moment 2 von später 48) in der jedes Formular für einen Datensatz bzw. eine Tabellenzeile der angezeigten Tabelle steht. Wenn ich nun Datensatz/Zeile 1 aufülle und abschicke wird der ordungsgemäss in SQL eingetragen bzw. geändert, Beim zweiten Datensatz/Zeile wird aber der erste Datensatz wieder resetet bzw. der Feldinhalt gelöscht.
    Daselbe auch umgekehrt. (siehe php1.jpg und php2.jpg)
    Ausserdem möchte ich am Ende der Seite nur 1 Submit-Button anstatt in jeder Zeile.
    Ich habe an mehreren Stellen etwas von Hidden-Feldern gelesen kapier das allerdings nicht.
    Man kann natürlich die Daten über phpMyAdmin ändern aber es sollen noch andere die Daten ändern können.
    Hier der Code:

    aces_rares_edit.php
    PHP-Code:
    <?php
       $db 
    mysql_connect(localhostnamepasswort);
       
    $res1 mysql_db_query("items""SELECT * FROM aces_rares WHERE id = 1"); //erster SQL-Datensatz bzw. Zeile der Tabelle
       
    $res2 mysql_db_query("items""SELECT * FROM aces_rares WHERE id = 2"); //zweiter SQL-Datensatz bzw. Zeile der Tabelle
    ?>
                    </tr>
                    <tr> 
                      <td height="80" colspan="9" bgcolor="#000033" class="tabelle"><a href="#mc">Melee</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="#tmc">Hightech 
                        Melee</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="#pc">Pistols</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="#tpc">Hightech 
                        Pistols</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="#rc">Rifles</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="#trc">Hightech 
                        Rifles</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="#hc">Canons</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="#thc">Hightech 
                        Canons</a><br> <a href="#apu">APU PSI Spells</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="#ppu">PPU 
                        SPI Spells</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="#drone">Drones</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="#tool">Tools</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="#imp">Implants</a></td>
                    </tr>
                    <tr> 
                      <td height="23" colspan="9" class="tabellelinks">&nbsp;</td>
                    </tr>
                    <tr> 
                      <td height="40" colspan="9" bgcolor="#333333" class="mittel"> 
                        <div align="center">Melee<a name="mc"></a></div></td>
                    </tr>
                    <tr class="tabellenkopflinks"> 
                      <td bgcolor="#666666" class="tabellenkopflinks">Name</td>
                      <td width="54" bgcolor="#666666" class="tabellenkopf">Core</td>
                      <td width="56" bgcolor="#666666" class="tabellenkopf">Frame</td>
                      <td width="55" bgcolor="#666666" class="tabellenkopf">Hull</td>
                      <td width="56" bgcolor="#666666" class="tabellenkopf">Tech</td>
                      <td width="57" bgcolor="#666666" class="tabellenkopf">Comp.</td>
                      <td width="58" bgcolor="#666666" class="tabellenkopf">AdT</td>
                      <td width="53" bgcolor="#666666" class="tabellenkopf">AdH</td>
                      <td width="53" bgcolor="#666666" class="tabellenkopf">&nbsp;</td>
                    </tr>
                    <tr>
                      <form name="01" action="editrare.php" method="post"> <!-- Erster SQL-Datensatz bzw. Zeile der Tabelle --> 
                        <td height="23" bgcolor="#000033" class="tabellelinks"><a href="#mc" onClick="MM_openBrWindow('http://mib.r-appert.ch/items/php/item.php?id=16','','width=420,height=600')">Paw 
                          of Tiger</a></td>
                        <td height="23" bgcolor="#000033" class="tabelle"> <input name="core01" type="text" value="<?php echo mysql_result($res1,0,"core"); ?>" size="8" maxlength="3"></td>
                        <td height="23" bgcolor="#000033" class="tabelle"> <input name="frame01" type="text" value="<?php echo mysql_result($res1,0,"frame"); ?>" size="8" maxlength="3"></td>
                        <td height="23" bgcolor="#000033" class="tabelle"> <input name="hull01" type="text" value="<?php echo mysql_result($res1,0,"hull"); ?>" size="8" maxlength="3"></td>
                        <td height="23" bgcolor="#000033" class="tabelle"> <input name="tech01" type="text" value="<?php echo mysql_result($res1,0,"tech"); ?>" size="8" maxlength="3"></td>
                        <td height="23" bgcolor="#000033" class="tabelle"> <input name="comp01" type="text" value="<?php echo mysql_result($res1,0,"comp"); ?>" size="8" maxlength="3"></td>
                        <td height="23" bgcolor="#000033" class="tabelle"> <input name="adt01" type="text" value="<?php echo mysql_result($res1,0,"adt"); ?>" size="8" maxlength="3"></td>
                        <td height="23" bgcolor="#000033" class="tabelle"> <input name="adh01" type="text" value="<?php echo mysql_result($res1,0,"adh"); ?>" size="8" maxlength="3"></td>
                        <td height="23" bgcolor="#000033" class="tabelle"> <input type="submit" name="01" value="ändern"></td>
                      </form>
                    </tr>
                    <tr> 
                      <form name="02" action="editrare.php" method="post"> <!-- Zweiter SQL-Datensatz bzw. Zeile der Tabelle --> 
                        <td height="23" bgcolor="#000033" class="tabellelinks"><a href="#mc" onClick="MM_openBrWindow('http://mib.r-appert.ch/items/php/item.php?id=17','','width=420,height=600')">Peacemaker</a></td>
                        <td height="23" bgcolor="#000033" class="tabelle"> <input name="core02" type="text" value="<?php echo mysql_result($res2,0,"core"); ?>" size="8" maxlength="3"></td>
                        <td height="23" bgcolor="#000033" class="tabelle"> <input name="frame02" type="text" value="<?php echo mysql_result($res2,0,"frame"); ?>" size="8" maxlength="3"></td>
                        <td height="23" bgcolor="#000033" class="tabelle"> <input name="hull02" type="text" value="<?php echo mysql_result($res2,0,"hull"); ?>" size="8" maxlength="3"></td>
                        <td height="23" bgcolor="#000033" class="tabelle"> <input name="tech02" type="text" value="<?php echo mysql_result($res2,0,"tech"); ?>" size="8" maxlength="3"></td>
                        <td height="23" bgcolor="#000033" class="tabelle"> <input name="comp02" type="text" value="<?php echo mysql_result($res2,0,"comp"); ?>" size="8" maxlength="3"></td>
                        <td height="23" bgcolor="#000033" class="tabelle"> <input name="adt02" type="text" value="<?php echo mysql_result($res2,0,"adt"); ?>" size="8" maxlength="3"></td>
                        <td height="23" bgcolor="#000033" class="tabelle"> <input name="adh02" type="text" value="<?php echo mysql_result($res2,0,"adh"); ?>" size="8" maxlength="3"></td>
                        <td height="23" bgcolor="#000033" class="tabelle"> <input type="submit" name="02" value="ändern"></td>
                      </form>
                    </tr>
    editrare.php
    PHP-Code:
    <?php

    $co01 
    = ($_POST["core01"]);
    $fr01 = ($_POST["frame01"]);
    $hu01 = ($_POST["hull01"]);
    $te01 = ($_POST["tech01"]);
    $cp01 = ($_POST["comp01"]);
    $at01 = ($_POST["adt01"]);
    $ah01 = ($_POST["adh01"]);
    $co02 = ($_POST["core02"]);
    $fr02 = ($_POST["frame02"]);
    $hu02 = ($_POST["hull02"]);
    $te02 = ($_POST["tech02"]);
    $cp02 = ($_POST["comp02"]);
    $at02 = ($_POST["adt02"]);
    $ah02 = ($_POST["adh02"]);

    require(
    "connectdb.php");

    mysql_query("UPDATE aces_rares SET core='$co01', frame='$fr01', hull='$hu01', tech='$te01', comp='$cp01', adt='$at01', 
    adh='
    $ah01' WHERE id = 1")
    and
    mysql_query("UPDATE aces_rares SET core='$co02', frame='$fr02', hull='$hu02', tech='$te02', comp='$cp02', adt='$at02', 
    adh='
    $ah02' WHERE id = 2")
    or die(
    mysql_error());

    mysql_close();
    print 
    "<font size=\"4\"><b>die &Auml;nderungen wurden durchgeführt</b></font>";

    ?>
    Miniaturansicht angehängter Grafiken Miniaturansicht angehängter Grafiken mehrere Formulare und ein Submit button ?-php3.jpg   mehrere Formulare und ein Submit button ?-php2.jpg  

    mehrere Formulare und ein Submit button ?-php1.jpg  
    Geändert von Papi62 (09.10.05 um 16:22 Uhr)
     

  2. #2
    Avatar von Papi62
    Papi62 Papi62 ist offline Mitglied Bronze
    Registriert seit
    Sep 2005
    Ort
    Dittingen, Schweiz
    Beiträge
    48
    Währ schon nett wenn mir jemand einen Tip geben könnte
     

  3. #3
    German German ist offline Mitglied Brokat
    Registriert seit
    Jul 2004
    Ort
    (Bayern)
    Beiträge
    464
    PHP-Code:
    <?php
       $db 
    mysql_connect(localhostnamepasswort);
       
    $res1 mysql_db_query("items""SELECT * FROM aces_rares WHERE id = 1"); //erster SQL-Datensatz bzw. Zeile der Tabelle
       
    $res2 mysql_db_query("items""SELECT * FROM aces_rares WHERE id = 2"); //zweiter SQL-Datensatz bzw. Zeile der Tabelle
    ?>
    1. siehe http://de3.php.net/manual/de/functio...l-db-query.php
    Anmerkung: Diese Funktion ist seit PHP 4.0.6 veraltet. Verwenden Sie diese Funktion nicht. Stattdessen sollten Sie die Funktionen mysql_select_db() und mysql_query() verwenden.
    2. was soll das? Willst du das dann später alles 84 mal schreiben? Vieleicht noch öffter wenn mal neue Datensätze dazu kommen? Das ist nicht der Sinn von DB-Systemen - Stichwort "Skalierbarkeit".

    Richtig:
    PHP-Code:
    <?php
       $db 
    mysql_connect("localhost""name""passwort");
       
    mysql_select_db("db_name");
       
    $result mysql_query("SELECT * FROM aces_rares"$db); //alle SQL-Datensätze bzw. Zeilen der Tabelle
       
    while($row mysql_fetch_array($result)) {
          
    // hier nur 1 mal das ganze Tabellengedöns rein 
          // zweckmäßiger Weise mit eigenem <form> und einem hidden Field für die ID s.u.
       
    }
    ?>
    ... und in deine editrare.php brauchst du nur ein
    PHP-Code:
    mysql_query("UPDATE aces_rares SET core='$co', frame='$fr', hull='$hu', tech='$te', comp='$cp', adt='$at',
    adh='
    $ah' WHERE id = '$id'")
    or die(
    mysql_error()); 
    Ich habe an mehreren Stellen etwas von Hidden-Feldern gelesen kapier das allerdings nicht
    In deinem Fall:
    Code :
    1
    
    <input type="hidden" name="id" value="<? echo $row['id'] ?>">
     
    Gruß German

  4. #4
    Avatar von Papi62
    Papi62 Papi62 ist offline Mitglied Bronze
    Registriert seit
    Sep 2005
    Ort
    Dittingen, Schweiz
    Beiträge
    48
    Vielen Dank German, denke nun hab ichs geschnallt

    Hab nur noch 1 kleines Problemchen
    Ich möchte das neuste Datum aller Datensätze aus einem Timestamp-Feld ausgeben.
    PHP-Code:
    <?php
       
    require("connectdb.php");
       
    $resd mysql_db_query("items""SELECT Letzte_dat FROM tabelle ORDER BY letzte_dat DESC LIMIT 1"); //neustes Datum
    ?>
                      <td height="93" colspan="12" class="gross"> <div align="center"> 
                          <p>Rarepart-Bestand der Aces of the Dragon</p>
                          <p class="tabelle">Stand vom <?php echo "$resd"?></p>
                        </div></td>
    Geändert von Papi62 (11.10.05 um 01:22 Uhr)
     

  5. #5
    German German ist offline Mitglied Brokat
    Registriert seit
    Jul 2004
    Ort
    (Bayern)
    Beiträge
    464
    PHP-Code:
    <?php
       
    require("connectdb.php");
       
    $resd mysql_db_query("items""SELECT Letzte_dat FROM tabelle ORDER BY letzte_dat DESC LIMIT 1"); //neustes Datum
    ?>
    Jetzt kommst du schon wieder mit mysql_db_query, das war schon veraltet als ich vor 3 Jahren mit PHP anfing!

    Ich hab jetzt auch keine Lust im Manual nachzuschauen was das Ding zurück gibt, denke aber mal, dass es eine Resource ist und auf die kann man nicht einfach mit echo $resd zugreifen. Das heisst man kann schon, aber es wird nicht das gewünschte Ergebnis bringen.

    Such mal im Manual nach mysql_result.
     
    Gruß German

Ähnliche Themen

  1. Mehrere Formulare?
    Von Gameprofi92 im Forum Borland CBuilder und VCL
    Antworten: 4
    Letzter Beitrag: 01.02.10, 14:13
  2. Mehrere Button Tags -> Submit-Problem
    Von Nospherates im Forum HTML & XHTML
    Antworten: 8
    Letzter Beitrag: 17.06.07, 13:32
  3. Antworten: 8
    Letzter Beitrag: 30.04.06, 16:46
  4. Wert von Radio Button auf einen Submit Button weiterleiten
    Von ImperatorAres im Forum Flash Plattform
    Antworten: 8
    Letzter Beitrag: 20.09.05, 07:19
  5. Mehrere SUBMIT Button in ein Formular
    Von Tabuk im Forum PHP
    Antworten: 7
    Letzter Beitrag: 04.05.05, 15:36