Ankündigung

Einklappen
Keine Ankündigung bisher.

Formular ID um 1 weiter zählen nach absenden

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Formular ID um 1 weiter zählen nach absenden

    Ahoi Leute,

    ich hab ein ziemliches Anfänger Problem, denk ich zumindest, und genau da verzweifel ich schon seit Stunden.

    Also Ablauf is folgender:

    Ich rufe durch eine Eingegebene ID einen Eintrag aus einem MediaWiki auf und mir wird dann halt der Inhalt und was für mich so Interessant ist angezeigt. Ich will dann in ein Formular die für mich notwenigen Daten eingeben bzw. Übernehmen (wie z.B Name, Geburtsdatum, Todesdatum, etc.) und wenn ich das in mein Formular eingegeben hab und in eine neue DB speichern will, soll sofort die nächste ID geladen werden... Alles funktioniert einwandfrei außer das er sofort die nächste ID lädt ... Wie komm ich da weiter ? Falls mehr Infos oder Quelltext benötigt werden bescheid sagen

    Danke schon mal


  • #2
    du übeträgst doch die id, schon des speichern wegen. nach erfolgreicher eingabe id++ und weiter gehts.

    Kommentar


    • #3
      Ja dachte auch ich kann das einfach mit $Id++ machen aber irgendwie will es nicht richtig ... ich hau mal denn Quelltext rein ^^ vielleicht bringt das ja mein Fehler zum Vorschein...

      index.php:
      Code:
      <?php
      	$db = mysqli_connect("localhost","root","","med");
      	if(!$db) {
      		exit("Es kann keine Verbindung zur Datenbank hergestellt werden :".mysqli_error());
      	}
      	session_start();	
      ?>
      
      ...
      // Hier geb ich dann die ID ein die geladen werden soll .... (z.b: 122)
      
        <div id="oben">
        <table width="300" border="0">
        <form id="form1" method="post" action="">
        	<tr>
          	<td height="30"><strong>ID wählen</strong></td>
          	<td><label>
              	<input name="Id" type="number" id="Id" value="<?php echo $idd =$_POST['Id']?>"/>
                  </label>
              </td>
              <td><label>
              	<input name="Los" type="submit" id="submit" />
                  </label>
              </td>
          </tr>
         </form>
         </table>
         <hr />
        
      // Hier werden dann die Daten von mir eingetragen die ich brauche 
      ...
      
        <table width="300" border="0">
      	<form id="form2" name="form2" method="post" action="auswerten.php?process" autocomplete="off">
          	<tr>
              	<td height="30"><strong>Titel</strong></td>
                  <td><label>
                  	<input  name="name" id="name" type="text" placeholder="Leer lassen um Originalen Titel zu verwenden" />
                     </label>
                  </td>
             </tr>
             <tr><td>----------------</td></tr>
             <tr>
              	<td height="30"><strong>Start-Tag</strong></td>
                  <td>
                  <input name="tag_start" id="tag_start" maxlength="2" type="number" min="01" max="31" placeholder="01" />
                  </td>
                  </tr>
                  <tr>
                  <td height="30"><strong>Start-Monat</strong></td>
                  <td>
                  <input name="monat_start" id="monat_start" maxlength="2" type="number" min="01" max="12" placeholder="01" />
                  </td>
                  </tr>
                  <tr>
                  <td height="30"><strong>Start-Jahr</strong></td>
                  <td>
                  <input name="jahr_start" id="jahr_start" maxlength="4" type="number" placeholder="2000" />
                  </td>
             </tr>
             <tr><td>----------------</td></tr>
             <tr>
              	<td height="30"><strong>Ende-Tag</strong></td>
                  <td>
                  <input name="tag_ende" id="tag_ende" maxlength="2" type="number" min="01" max="31" placeholder="01" />
                  </td>
                  </tr>
                  <tr>
                  <td height="30"><strong>Ende-Monat</strong></td>
                  <td>
                  <input name="monat_ende" id="monat_ende" maxlength="2" type="number" min="01" max="12" placeholder="01" />
                  </td>
                  </tr>
                  <tr>
                  <td height="30"><strong>Ende-Jahr</strong></td>
                  <td>
                  <input name="jahr_ende" id="jahr_ende" maxlength="4" type="number" placeholder="2000" />
                  </td>
             </tr>
             <!--<tr>
              	<td><strong>Beschreibung</strong></td>
                  <td><label>
                  	<textarea name="content" cols="20" rows="5" id="content"></textarea>
                     </label>
                  </td>
                 
             </tr>
             <tr>
              	<td height="60"><strong>Link</strong></td>
                  <td><label>
                  	<input name="link" type="text" id="link" />
                     </label>
                  </td>
                 
             </tr>-->
             <tr><td>----------------</td></tr>
             <tr>
             		<td>
                  	<label>
                      <input type="submit" name="Abschicken" id="Submit" />
                     </label>
                 </td>
                 <td>
                 	<label>
                  		<input type="reset" name="Reset" id="Reset" />
                   </label>
                 </td>
             </tr>
          </form>
      </table>
       
        
        </div>
      
        <div id="unten">
        
      // Hier werden die zugehörigen Daten zu der oben eingegebenen ID angezeigt....
        
        	<?php $id= $_POST['Id'];
      	
      	$sql = "SELECT * FROM page, text WHERE page.page_id = '$id' AND page.page_latest = text.old_id";
      	$title="SELECT page_title FROM page WHERE page_id= '$id'";
      
      	
      	$erg = mysqli_query($db, $sql);
      	
      	
      	function multiexplode ($delimiters,$string) {
          
          $ready = str_replace($delimiters, $delimiters[0], $string);
          $launch = explode($delimiters[0], $ready);
          return  $launch;
      	}
      		
      	echo '<table width="700" border="1">';
      	while ($zeile = mysqli_fetch_array( $erg, MYSQL_ASSOC))
      	{
      	  echo "<tr><td>Page ID</td>";
      	  echo "<td>". $zeile['page_id'] . "</td></tr>";
      	  echo "<tr><td>Page Latest</td>";
      	  echo "<td>". $zeile['page_latest'] . "</td></tr>";
      	  echo "<tr><td>Titel</td>";
      	  echo "<td>". $zeile['page_title'] . "</td></tr>";
      	  
      		
      	}
      	echo "</table>";
      
      	
      	$inhalt = "SELECT old_text FROM page, text WHERE page.page_id = '$id' AND page.page_latest = text.old_id";
      	
      	$erg2 = mysqli_query($db, $inhalt);
      	
      	while ($zeile1 = mysqli_fetch_array( $erg2, MYSQL_ASSOC )){
           
      	
      	$explode = multiexplode(array("birth_date","death_date","place","date","from","{"), $zeile1['old_text']);
          
      	}
      	 
      	for ($i=1 ; $i < count($explode) ; $i++) {
      	if ($explode[$i] != "") {
      		echo $explode[$i]."<br><br>";
      		}
      	}
      	 
      	
      	mysqli_free_result( $erg );
      	
      // Und hier nach dem ich mit der Eingabe fertig bin soll dann automatisch die nächste ID geladen werden ... (bsp: 123)
      
      ...
      hier is dann die php die das Formular auswertet:
      Code:
      <?php
      	$db2 = mysqli_connect("localhost","root","","test");
      		if(!$db2) {
      			exit ("Verbindung zum Server nicht möglich :".mysqli_error());
      			}
      	
      	$name = $_POST["name"];
      	
      	if ($_POST["name"] = "") {
      	
      	$name = "SELECT page_title FROM page WHERE page_id = '$id' ";
      	}
      	
      	
      	$monat_st = $_POST["monat_start"];
      	$tag_st = $_POST["tag_start"];
      	$jahr_st = $_POST["jahr_start"];
      	$monat_en = $_POST["monat_ende"];
      	$tag_en = $_POST["tag_ende"];
      	$jahr_en = $_POST["jahr_ende"];
      
      	
      	
      	if(isset($_GET['process'])) {
      	
      	$eintrag = "INSERT INTO inhalt (Name , Start , Ende) VALUES ('$name','$jahr_st' '-' '$monat_st' '-' '$tag_st','$jahr_en' '-' '$monat_en' '-' '$tag_en')";
      	
      	if(($_POST['name'] && $_POST['jahr_start']) != "" ){
      	$eintragen = mysqli_query($db2, $eintrag);
      	}
      	
      	if($eintragen) {
      		header("Location: index.php");
      	}

      Ich hoffe das passt alles so ... is das erste mal jetzt das ich nen Code einfüge :P

      Kommentar


      • #4
        Ich verstehe den Sinn auch nicht gerade. Was für eine nächste ID möchtest du denn aufrufen? Die in der Datenbank bereits gespeichert ist, oder die nächste ID deines nächsten möglichen Eintrags?
        Und wie unterscheidest du von neu eingetragenen Daten von bereits eingetragenen Daten, weil du hast einmal Neueingabe und Dateneinsicht auf einer Seite, was mir etwas spanisch vorkommt

        Kommentar


        • #5
          Es soll die nächste ID öffnen die bereits vorhanden ist ... Die Daten aus dem Formular werden in eine neue DB gespeichert nicht wieder in die aus der ich die ID auslese.
          Quasi im Sinn von Artikel 1 soll geladen werden .. daraus brauche ich jetzt Name, Geburtsdatum etc. den Rest der im Text steht wie Geschichte oder sowas brauch ich nicht, und das ganze soll dann in eine neue DB rein und beim Senden soll Artikel 2 geladen werden damit ich da auch wieder die Sachen raus nehmen kann die ich brauch
          Hoffe so erklärt macht das jetzt mal sinn :P

          Kommentar


          • #6
            Die Daten aus dem Formular werden in eine neue DB gespeichert ... und das ganze soll dann in eine neue DB rein
            Du meinst einen neuen Eintrag in deiner/n Tabelle(n)?

            Sry, versteh auch nicht was du meinst, aber bitte deinen Code oben bitte in PHP Tags geben, statt CODE, der erhöht die Lesabarkeit ungemein.
            Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
            PHP.de Wissenssammlung | Kein Support per PN

            Kommentar


            • #7
              Ok ich versuchs nochmal ^^
              Also ich hab DB 1 mit der Tabelle Artikel.

              Aus der lese ich ID 1 und auf meiner Seite wird mir der Inhalt dafür angezeigt.

              In mein Formular gebe ich alles ein was ich brauche und speichere das in DB 2.

              Dann soll automatisch ID 2 aus der DB 1 geladen werden.

              Kommentar


              • #8
                du übeträgst doch die id, schon des speichern wegen. nach erfolgreicher eingabe id++ und weiter gehts.
                !
                Dann soll automatisch ID 2 aus der DB 1 geladen werden.
                Ach so, „dann“… Wieder hochgradig präzise Aussage.
                --

                „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                --

                Kommentar


                • #9
                  Zitat von nikosch Beitrag anzeigen
                  !
                  Ach so, „dann“… Wieder hochgradig präzise Aussage.
                  Ja wohl dann wenn ich das Formular absende oder wann sonst ?!

                  Natürlich weiß ich das ich da mit $id++ hochzählen kann aber ich hab schon verschiedene Möglichkeiten ausprobiert und es hat nicht funktioniert :/

                  Kommentar


                  • #10
                    Du willst also das Formular absenden und auf dem Bildschirm sollen danach die Daten vom Datenbankeintrag mit der nächsthöheren ID angezeigt werden?

                    Du machst dein Datenverarbeitungszeug, führst danach einen SELECT aus mit WHERE ID > $deineAlteID LIMIT 1,1 und hängst das Ergebnis als GET-Parameter an header(); ran.

                    Keine Ahnung ob du das überhaupt meinst.
                    Relax, you're doing fine.
                    RTFM | php.de Wissenssammlung | Datenbankindizes | Dateien in der DB?

                    Kommentar


                    • #11
                      Zitat von VPh Beitrag anzeigen
                      Du willst also das Formular absenden und auf dem Bildschirm sollen danach die Daten vom Datenbankeintrag mit der nächsthöheren ID angezeigt werden?

                      Du machst dein Datenverarbeitungszeug, führst danach einen SELECT aus mit WHERE ID > $deineAlteID LIMIT 1,1 und hängst das Ergebnis als GET-Parameter an header(); ran.

                      Keine Ahnung ob du das überhaupt meinst.
                      JA !!! das is genau das was ich vor hab ... nur leider weiß ich nicht wie genau ich das lösen muss, weil ich die $id ja schon irgendwie vergeben hab wo ich die zum ersten mal beim Seiten Aufruf eingebe und und wo muss ich dann das SELECT und den GET dings hin setzten das is ja das Problem wo ich schon so solange hänge

                      Kommentar


                      • #12
                        Den Select machst du direkt nach deinem Insert-Statement. Und header() hast du ja schon, da machst du dann einfach
                        PHP-Code:
                            if($eintragen) {
                                
                        header("Location: index.php[B]?id=neueId[/B]");
                            } 
                        Relax, you're doing fine.
                        RTFM | php.de Wissenssammlung | Datenbankindizes | Dateien in der DB?

                        Kommentar

                        Lädt...
                        X