php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 03.03.2005, 20:00  
Gast
 
Beiträge: n/a
Standard Datensatz ändern funktioniert nicht

Moin alle
Mir raucht die Birne und ich komme nicht weiter.

Problem: Ich möchte einen einzelnen SQL-Datensatz ändern und laut Rückmeldung meiner Scripts scheint es zu funktionieren, wenn ich dann den "geänderten" Datensatz anzeige hat sich gar nichts getan.

Datensatz wählen:
PHP-Code:
<?php
<?php require_once('../../Connections/items_verbindung.php'); ?>
<?php
mysql_select_db
($database_items_verbindung$items_verbindung);
$query_db "SELECT * FROM item ORDER BY item.id";
$db mysql_query($query_db$items_verbindung) or die(mysql_error());
$row_db mysql_fetch_assoc($db);
$totalRows_db mysql_num_rows($db);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<link href="../../norm_schrift.css" rel="stylesheet" type="text/css">

<title>suchen</title><body bgcolor="#000000" text="#FFFFCC" link="#FFFFCC" vlink="#CCFF33" alink="#CCCCCC" leftmargin="2" topmargin="2" marginwidth="2" marginheight="2">
<span class="gross">Suche, sortiert nach ID</span> 
<form action = "editshow.php" method = "get">
            
  


    <select name="id" size="1">
      <?php
        
do {  
        
?>
      <option value="<?php echo $row_db['id']?>"><?php echo $row_db['name']?><?php echo "TL:"?><?php echo $row_db['tl']?></option>
      <?php
        
} while ($row_db mysql_fetch_assoc($db));
          
$rows mysql_num_rows($db);
          if(
$rows 0) {
              
mysql_data_seek($db0);
              
$row_db mysql_fetch_assoc($db);
          }
        
?>
    </select>
  </p>
  



    <input type="submit" value="Anzeigen">
  </p>
</form>
</body>
</html>
<?php
mysql_free_result
($db);
?>
?>
Datesatz ändern:
PHP-Code:
<?php
<?php
session_start
();
?>
<html>
<head>
 <title>Daten &auml;ndern</title>
<link href="../../norm_schrift.css" rel="stylesheet" type="text/css">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>
<body bgcolor="#000000" text="#FFFFCC" link="#FFFFCC" vlink="#CCFF33" alink="#CCCCCC" leftmargin="2" topmargin="2" marginwidth="2" marginheight="2">
<span class="mittel">Datensatz ändern (korrigieren)</span> 
<?php
   $db 
mysql_connect(hostUserPW);
   
$a = ($HTTP_GET_VARS["id"]);
   
$res mysql_db_query("items""SELECT * FROM item WHERE id = $a");
   
$num mysql_num_rows($res);
   
   if (
$num!=0):
?>
<form action="editerg.php" method="post">
  <table width="673" align="left">
    <TR> 
      <td width="89" height="24" align="right" nowrap>ID:</td>
      <TD class="NormSchrift"> <?php echo "$a" ?> 
        <INPUT TYPE="hidden" NAME="id" VALUE="<?php echo "$a"?>"> 
      </TD>
    </TR>
    <tr valign="baseline"> 
      <td width="89" height="24" align="right" nowrap>Name:</td>
      <td colspan="5"><input name="neunn" type="text" value="<?php echo mysql_result($res,0,"name"); ?>" size="56" maxlength="50"></td>
      <td width="31" align="right" valign="top" nowrap>Tl:</td>
      <td width="107" valign="top"><input name="neutl" type="text" value="<?php echo mysql_result($res,0,"tl"); ?>" size="10" maxlength="3"></td>
      <td width="60"></td>
    </tr>
    <tr valign="baseline"> 
      <td height="24" align="right" valign="top" nowrap>Gegenstand:</td>
      <td colspan="5" valign="top"><input name="neugs" type="text" value="<?php echo mysql_result($res,0,"gegenstand"); ?>" size="56" maxlength="50"></td>
      <td align="right" valign="top" nowrap>Typ:</td>
      <td colspan="2" valign="top"><input name="neutp" type="text" value="<?php echo mysql_result($res,0,"typ"); ?>" size="30" maxlength="50"></td>
    </tr>
        <tr valign="baseline"> 
      <td height="23" colspan="9" valign="top"><hr></td>
    </tr>
    <tr valign="baseline"> 
      <td height="26" colspan="9" valign="top"><div align="center"> 
          <input type="submit" value="Datensatz ändern">
           
          <input name="reset" type="reset" value="Zurücksetzen">
        </div></td>
    </tr>
    <tr valign="baseline"> 
      <td height="21"></td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td width="25"></td>
      <td></td>
      <td></td>
      <td></td>
    </tr>
  </table>
  <input type="hidden" name="MM_insert" value="form1">
</form>
<?php
  
else: echo "Eintrag nicht vorhanden";
  endif;
  
mysql_freeresult($res); mysql_close();
?>


</p>
</body>
</html>
?>
Bis hierhin scheint alles zu funktionieren, der per GET selektierte Datensatz wird angezeigt und kann geändert an das nächste Script gebeamt werden. Die obige Datei zur Änderung habe ich von mir selbst übernommen, war zur neuen Datensatzeingabe was problemlos funktioniert, und entsprechend geändert. Ebenso das nachfolgende Script.

Änderung durchführen:
PHP-Code:
<?php
<html>
<
head>
<
title>&Auml;nderung durchf&uuml;hren</title>
<
meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<
link href="../../norm_schrift.css" rel="stylesheet" type="text/css">
</
head>

<
body bgcolor="#000000" text="#FFFFCC" link="#FFFFCC" vlink="#FFFFCC" alink="#CCCCCC" leftmargin="2" topmargin="2" marginwidth="2" marginheight="2">
<?
php

$a 
= ($HTTP_POST_VARS["$a"]);
$nn = ($HTTP_POST_VARS["neunn"]);
$tl = ($HTTP_POST_VARS["neutl"]);
$gs = ($HTTP_POST_VARS["neugs"]);
$tp = ($HTTP_POST_VARS["neutp"]);

require(
"connectdb.php");

mysql_query("UPDATE item SET name='$nn', tl='$tl', gegenstand='$gs', typ='tp' WHERE id = '$a'")
or die(
mysql_error());

mysql_close();
print 
"&Auml;nderungen wurden durchgeführt";

?>
<p class="mittel"></p>
</body>
</html>
?>
Danach bekomme ich die Meldung "Änderungen wurden durchgeführt" dem ist aber nicht so.

Zu Hülfe
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 03.03.2005, 20:09  
Gast
 
Beiträge: n/a
Standard

16.14. Warum soll ich nicht SELECT * schreiben?
http://www.php-faq.de/q/q-sql-select.html

Auszug aus der Doku zu mysql_db_query:
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.

PHP-Code:
$a = ($HTTP_POST_VARS["$a"]); 
Du meinst wohl eher
PHP-Code:
$a = ($HTTP_POST_VARS['id']); 
Außerdem solltest du $HTTP_POST_VARS gegen $_POST und $HTTP_GET_VARS gegen $_GET austauschen.

Und noch ein paar Tipps:

Richtig debuggen
1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
2. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
3. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde (oder auch nicht).
4. Schritt 3 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
5. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
6. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
7. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.

Und am Anfang eines Scriptes sollte man während der Entwicklung diese Zeile einbauen:
PHP-Code:
error_reporting(E_ALL); 
Gruß
phpfan
 
Alt 03.03.2005, 22:56  
Gast
 
Beiträge: n/a
Standard

Vielen Dank erstmal für die Tips.

Zu Deiner Signatur: Ich habe die Bordsuche und auch Google verwendet aber vieleicht bin ich zu blöd zum suchen

Ich dachte das $a wird schon übergeben und wollte es nochmal absichern.

Ich poste wieder wenn's geklappt hat oder nicht

'bastel' 'studier'
 
Alt 03.03.2005, 23:09  
Gast
 
Beiträge: n/a
Standard

Juhui :P

Es funktioniert.

Vielen heissen Dank
 
 


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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
2 Replace mit gleichem Datensatz Simon9990 Datenbanken 6 26.06.2008 13:41
auf nächsten Datensatz zugreifen cycap Datenbanken 5 18.12.2007 14:32
Datensatz zu max() simsalabim Datenbanken 8 02.10.2007 08:56
Session funktioniert nicht bei session.use_cookies = Off Quagga PHP Tipps 2007 13 13.01.2007 18:27
datensatz problem 24bits PHP Tipps 2006 1 30.08.2006 18:52
Lokal funktioniert alles -> auf Server fast nichts PsychoEagle Datenbanken 2 14.08.2006 08:43
einen variablen datensatz löschen PHP Tipps 2007 3 04.11.2005 12:41
Nach Einfügugng der Sessions funktioniert mein Program nicht PHP-Fortgeschrittene 1 02.10.2005 06:13
nächsten datensatz bei klick auf button weiter... PHP Tipps 2005-2 1 14.08.2005 12:19
Kontakrformular funktioniert nur zum Teil PHP Tipps 2005-2 12 18.07.2005 11:24
Datensatz geändern? patr1k PHP Tipps 2005 12 14.02.2005 12:46
Leeren Datensatz editierbar machen Anuschka PHP Tipps 2004-2 1 27.12.2004 13:28
mehrere Benutzer arbeiten an einem Datensatz ajo_silent Datenbanken 6 20.11.2004 13:52
Datensatz abfragen und in Formularfeldern ausgeben Datenbanken 1 25.08.2004 09:24
gespeicherten Datensatz auslesen PHP Tipps 2004 1 02.06.2004 14:42

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php datensatz ändern, php datensätze ändern, php datensatz bearbeiten, php datensatz update, php eintrag bearbeiten, php ändert nur einen datensatz, php datensatz markieren und bearbeiten, einzelnen datensatz ändern php, http://www.php.de/php-tipps-2005/18938-datensatz-aendern-funktioniert-nicht.html, php datensätze verändern, php \datensatz ändern\, php datensätze bearbeiten, datensatz bearbeiten php, php datensatz anzeigen und ändern, pph datensätze ändern, $_get[] während script ändern, span php wert ändern, datensatz mit klick ändern php, align=\right\ nowrap id=, my php datensätze ändern

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