- Ad -
php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > SQL / Datenbanken
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 

 


SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 28-01-2004, 20:35
hydrococcus
 Member
Links : Onlinestatus : hydrococcus ist offline
Registriert seit: Jun 2003
Beiträge: 425
hydrococcus ist zur Zeit noch ein unbeschriebenes Blatt
Standard DB-Einträge aus generierten Formularfeldern

hi,
ich möchte eine speisekarte erstellen, die ich per formular aktualisieren kann.
die inhalte werden aus der tabelle gelesen und direkt in einem formularfeld
angezeigt von dem aus ich den inhalt auch gleich direkt
ändern kann. bei einer zeile klappt das wunderbar. hab ich aber mehrere zeilen
in meiner tabelle und ich ändere eine im formular, wird der inhalt auf alle
zeilen übertragen und somit gleich

PHP-Code:
<?php
# verbindung zur DB
$include = include("../connect.php");
# neue daten senden und eintragen
if(isset($_POST['senden'])){
   
$gericht $_POST['gericht'];
   
$zutaten $_POST['zutaten'];
   
$preis $_POST['preis'];
   
$einfuegen mysql_query("UPDATE testgerichte SET gericht='$gericht',
 zutaten='$zutaten', preis='$preis' WHERE id=1 "
);
   
header("Location: test_gerichte.php");
}

# tabelle auswählen und inhalt in formular anzeigen
$select mysql_query("SELECT gericht, zutaten, preis FROM testgerichte WHERE id=1");
          while(
$inhalt mysql_fetch_array($select)){
          
$gericht $inhalt['gericht'];
          
$zutaten $inhalt['zutaten'];
          
$preis $inhalt['preis'];
          print 
"<form name='speisen[]' action='".$_SERVER['PHP_SELF']."' method='post'>
                   <input type='text' name='gericht' value='"
.$gericht."' />
                   <input type='text' name='zutaten' value='"
.$zutaten."' />
                   <input type='text' name='preis' value='"
.$preis."' /><br>
                   "
;
          }

?>
<input type ='submit' name='senden' value='senden' />
<?php print "</form>"?>

Geändert von wahsaga (02-02-2004 um 10:06 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 29-01-2004, 12:47
lugi27
 Newbie
Links : Onlinestatus : lugi27 ist offline
Registriert seit: Jun 2002
Ort: Munich
Beiträge: 43
lugi27 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hi...

Nun, da sind ein paar schwerwiegende Fehler in Deinem Skript...
Zum ersten machst du nur einen Update bei der ID 1.
Desweiteren schau Dir mal die Schleife bei Deinem SELECT-Befehl an, dort werden bei z.B. 10 gefundenen Einträgen 10 <form>-Tags geöffnet und nur einer geschlossen...
Ich gehe mal davon aus, daß Du nur ein Formular haben willst, also mache den <form>-Tag auch außerhalb der Schleife.
Ich würde es so machen:
PHP-Code:
<?php
# verbindung zur DB
$include = include("../connect.php");

# neue daten senden und eintragen
if(isset($_POST['senden']))
  {
    
$id $_POST['id'];
    
$gericht $_POST['gericht'];
    
$zutaten $_POST['zutaten'];
    
$preis $_POST['preis'];

    for (
$i=0;$i<sizeof($id);$i++)
      
mysql_query("UPDATE testgerichte SET gericht='".$gericht[$i]."',
zutaten='"
.$zutaten[$i]."', preis='".$preis[$i]."' WHERE id='".$id[$i]."'");

   
header("Location: test_gerichte.php");

}

# tabelle auswählen und inhalt in formular anzeigen
print "<form name=\"speisen\" action=\"".$_SERVER['PHP_SELF']."\" method=\"post\">";
$select mysql_query("SELECT id,gericht, zutaten, preis FROM testgerichte ORDER BY id");
while(
$inhalt mysql_fetch_array($select))
  {
    
$id $inhalt['id'];
    
$gericht $inhalt['gericht'];
    
$zutaten $inhalt['zutaten'];
    
$preis $inhalt['preis'];
    print 
"<input type=\"hidden\" name=\"id[]\" value=\"".$id."\" />\n";
    print 
"<input type=\"text\" name=\"gericht[]\" value=\"".$gericht."\" />\n";
    print 
"<input type=\"text\" name=\"zutaten[]\" value=\"".$zutaten."\" />\n";
    print 
"<input type=\"text\" name=\"preis[]\" value=\"".$preis."\" />\n";
    print 
"<br /><br />\n";
  }

print 
"<input type=\"submit\" name=\"senden\" value=\"senden\" />\n";
print 
"</form>";
So, hoffe Dir damit geholfen zu haben........

Gruß,
Lugi.

P.S. Skript ist ungestestet, also könnte evtl. noch kleine Syntax- oder Rechtschreibfehler enthalten!!!

Geändert von wahsaga (02-02-2004 um 10:06 Uhr)
Mit Zitat antworten
  #3 (permalink)  
Alt 01-02-2004, 16:06
hydrococcus
 Member
Links : Onlinestatus : hydrococcus ist offline
Registriert seit: Jun 2003
Beiträge: 425
hydrococcus ist zur Zeit noch ein unbeschriebenes Blatt
Standard

dein script hat mir echt weitergeholfen. und vor allem, es funzt jetzt richtig gut. ...danke
Mit Zitat antworten
  #4 (permalink)  
Alt 01-02-2004, 23:59
hydrococcus
 Member
Links : Onlinestatus : hydrococcus ist offline
Registriert seit: Jun 2003
Beiträge: 425
hydrococcus ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hab noch ein bisschen gebastelt, aber komme nicht weiter.
und zwar möchte ich mit hilfe von checkboxen komplette zeilen
in der db-tabelle löschen können. ich hab
PHP-Code:
while($inhalt mysql_fetch_array($select))
  {
    
$id $inhalt['id'];
    
$gericht $inhalt['gericht'];
    
$zutaten $inhalt['zutaten'];
    
$preis $inhalt['preis'];
    print 
"<input type=\"hidden\" name=\"id[]\" value=\"".$id."\" />\n";
    print 
"<input type=\"text\" name=\"gericht[]\" value=\"".$gericht."\" />\n";
    print 
"<input type=\"text\" name=\"zutaten[]\" value=\"".$zutaten."\" />\n";
    print 
"<input type=\"text\" name=\"preis[]\" value=\"".$preis."\" />\n";
    print 
"<br /><br />\n";
  } 
in
PHP-Code:
swhile($inhalt mysql_fetch_array($select))
  {
    
$id $inhalt['id'];
    
$gericht $inhalt['gericht'];
    
$zutaten $inhalt['zutaten'];
    
$preis $inhalt['preis'];
    print 
"<input type=\"hidden\" name=\"id[]\" value=\"".$id."\" />\n";
    print 
"<input type=\"text\" name=\"gericht[]\" value=\"".$gericht."\" />\n";
    print 
"<input type=\"text\" name=\"zutaten[]\" value=\"".$zutaten."\" />\n";
    print 
"<input type=\"text\" name=\"preis[]\" value=\"".$preis."\" />\n";
    print 
"type='checkbox' name=checkbox[]'";
    print 
"<br /><br />\n";
  } 
geändert.

aber wie krieg ich den wert der checkboxen. ich hab mir den
wert des arrays ausgeben lassen, aber da kommt nur 0 zurück
oder on.
Mit Zitat antworten
  #5 (permalink)  
Alt 02-02-2004, 00:25
derHund
 PHP Master
Links : Onlinestatus : derHund ist offline
Registriert seit: Aug 2003
Ort: Hundehütte
Beiträge: 5.293
derHund ist zur Zeit noch ein unbeschriebenes Blatt
Standard

laß dir doch den inhalt des $_POST nach dem absenden mal anzeigen,
dann siehst du, in welcher form die werte übergeben werden und
weißt dann auch, wie du wann reagieren mußt ...

EDIT:
wieso ist der thraed so breit !?
__________________
Die Zeit hat ihre Kinder längst gefressen: hund (back in black) | ??? | ??? | ...
Mit Zitat antworten
  #6 (permalink)  
Alt 02-02-2004, 10:05
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 24.486
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von hydrococcus
aber wie krieg ich den wert der checkboxen.
http://dclp-faq.de/q/q-formular-checkbox.html
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #7 (permalink)  
Alt 03-02-2004, 22:37
hydrococcus
 Member
Links : Onlinestatus : hydrococcus ist offline
Registriert seit: Jun 2003
Beiträge: 425
hydrococcus ist zur Zeit noch ein unbeschriebenes Blatt
Thumbs up

Vielen Dank wiedermal für eure Hilfe,

hab mein script jetzt noch ein bisschen erweitert. einträge können jetzt
über die checkboxen gelöscht werden und über einen "insert-button"
können neue zeilen eingefügt werden.
Hier mal mein script, vielleicht hilfts ja jemandem...

PHP-Code:
<?php
# neue daten senden und eintragen
if(isset($_POST['senden']))
  {
    
$gruppe $_POST['gruppe'];
    
$gericht $_POST['gericht'];
    
$beschreibung $_POST['beschreibung'];
    
$preis $_POST['preis'];
    
     
    for (
$i=0;$i<sizeof($gruppe);$i++)
      
mysql_query("UPDATE salate SET gericht='".$gericht[$i]."', beschreibung='".$beschreibung[$i]."', preis='".$preis[$i]."' WHERE gruppe='".$gruppe[$i]."'");
    
    if (isset(
$_REQUEST['checkbox'])){
    
reset ($_REQUEST['checkbox']);
    foreach (
$_REQUEST['checkbox'] as  $value_cbox){
    
mysql_query("DELETE FROM salate WHERE gruppe='$value_cbox'");
    }
    }  
    
header("Location: administration_test.php");
}
if (isset(
$_POST['insert'])){
    
$new "Neuer Eintrag";
    
# das array gruppe wird ausgelesen, dateizeiger auf das letzte objekt gesetzt und um eins erhöht
    
$gruppe $_POST['gruppe'];
    
$ende = @end($gruppe);
    
$dazu 1;
    
$wert $dazu+$ende;
    
mysql_query("INSERT INTO salate SET gericht='$new', beschreibung='$new', preis='0,00', gruppe='$wert'");
}



<?
php
# tabelle auswählen und inhalt in formular anzeigen
print "<div class='titel'>Salate</div><hr size='1' />";
print 
"<form name=\"speisen\" action=\"".$_SERVER['PHP_SELF']."\" method=\"post\"><table border='0'><tr>";
$select mysql_query("SELECT gruppe, gericht, beschreibung, preis FROM salate ORDER BY gruppe");
while(
$inhalt mysql_fetch_array($select))
  {
    
$gruppe $inhalt['gruppe'];
    
$gericht $inhalt['gericht'];
    
$beschreibung $inhalt['beschreibung'];
    
$preis $inhalt['preis'];
    
    print 
"<input type=\"hidden\" name=\"gruppe[]\" value=\"".$gruppe."\" />\n";
    print 
"<td><textarea name=\"gericht[]\" class='form' rows='3' cols='20'>".$gericht."</textarea></td>\n";
    print 
"<td><textarea name=\"beschreibung[]\" class='form' rows='3' cols='30'>".$beschreibung."</textarea></td>\n";
    print 
"<td><textarea name=\"preis[]\" class='form' rows='3' cols='10'>".$preis."</textarea></td>\n";
    print 
"<td><input type='checkbox' name=\"checkbox[]\" value='$gruppe'></td></tr>";
  }
print 
"</table>";
print 
"<table>
        <tr>
           <td><input type=\"submit\" name=\"insert\" value=\"Neue Zeile einfügen  \" /></td>
           <td>&nbsp;</td>
           <td>&nbsp;</td>
           <td><input type=\"submit\" name=\"senden\" value=\"Änderung durchführen \" /></td>
        </tr>
       </table>\n"
;
print 
"</form>";

?>

wenn noch einer fehler findet oder verbesserungen hat, bitte sagt
bescheid....ich geh erst mal

Geändert von hydrococcus (04-02-2004 um 12:22 Uhr)
Mit Zitat antworten
  #8 (permalink)  
Alt 13-04-2004, 15:32
nobodymw
 Newbie
Links : Onlinestatus : nobodymw ist offline
Registriert seit: Apr 2004
Beiträge: 3
nobodymw ist zur Zeit noch ein unbeschriebenes Blatt
Standard Einbindung in die Internetseite

Hallo,

ich bin absolut neu auf dem Gebiet der PHP Programmierung. Wie binde ich diese Script in eine bestehende Internetseite (html) ein, und was muss ich dabei beachten? Wie muss ich die Seite benennen, damit das Script funktioniert?

Gruß
nobodymw
Mit Zitat antworten
  #9 (permalink)  
Alt 14-04-2004, 18:50
piumer
 Newbie
Links : Onlinestatus : piumer ist offline
Registriert seit: Mar 2004
Beiträge: 47
piumer ist zur Zeit noch ein unbeschriebenes Blatt
Standard ein Tip!

Hallo Nobody,

also, Du must erst mal ein PHP-Server auf Deinem Rechner installieren.
Wie Du das machst, findest Du in zahlreichen Tutorials.

Wenn Du das hast, besitzt Du den Rootordner, in dem sich alle Deine PHP-Dateien befinden müssen, damit sie Der Server interpretieren kann.

Deine HTML-Dateien müssen unbenannt werden, dass sie die Endung php haben.

Nun kannst Du ein PHP-Script, z.B. das untere mit dem Speiseplan in Dein Dokument einfügen.

Alle PHP-Scripts fangen mit <?PHP an und hören mit ?> auf.

Das ist mal eine grobe Beschreibung, mehr dazu findest Du in den Tutorials dazu. Ich kann Dir auch Tutors in pdf schicken, da steht es auch nochmal genauer drinn.

Gruß, piumer
Mit Zitat antworten
  #10 (permalink)  
Alt 21-04-2004, 17:26
nobodymw
 Newbie
Links : Onlinestatus : nobodymw ist offline
Registriert seit: Apr 2004
Beiträge: 3
nobodymw ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo,

verstehe ich das richtig? Das erste Script

<?php
# neue daten senden und eintragen
if(isset($_POST['senden']))
{
$gruppe = $_POST['gruppe'];
$gericht = $_POST['gericht'];
$beschreibung = $_POST['beschreibung'];
$preis = $_POST['preis'];


for ($i=0;$i<sizeof($gruppe);$i++)
mysql_query("UPDATE salate SET gericht='".$gericht[$i]."', beschreibung='".$beschreibung[$i]."', preis='".$preis[$i]."' WHERE gruppe='".$gruppe[$i]."'");

if (isset($_REQUEST['checkbox'])){
reset ($_REQUEST['checkbox']);
foreach ($_REQUEST['checkbox'] as $value_cbox){
mysql_query("DELETE FROM salate WHERE gruppe='$value_cbox'");
}
}
header("Location: administration_test.php");
}
if (isset($_POST['insert'])){
$new = "Neuer Eintrag";
# das array gruppe wird ausgelesen, dateizeiger auf das letzte objekt gesetzt und um eins erhöht
$gruppe = $_POST['gruppe'];
$ende = @end($gruppe);
$dazu = 1;
$wert = $dazu+$ende;
mysql_query("INSERT INTO salate SET gericht='$new', beschreibung='$new', preis='0,00', gruppe='$wert'");
}

?>

heißt administration_test.php und ist für Eintragungen zuständig.

Das zweite Script


<?php
# tabelle auswählen und inhalt in formular anzeigen
print "<div class='titel'>Salate</div><hr size='1' />";
print "<form name=\"speisen\" action=\"".$_SERVER['PHP_SELF']."\" method=\"post\"><table border='0'><tr>";
$select = mysql_query("SELECT gruppe, gericht, beschreibung, preis FROM salate ORDER BY gruppe");
while($inhalt = mysql_fetch_array($select))
{
$gruppe = $inhalt['gruppe'];
$gericht = $inhalt['gericht'];
$beschreibung = $inhalt['beschreibung'];
$preis = $inhalt['preis'];

print "<input type=\"hidden\" name=\"gruppe[]\" value=\"".$gruppe."\" />\n";
print "<td><textarea name=\"gericht[]\" class='form' rows='3' cols='20'>".$gericht."</textarea></td>\n";
print "<td><textarea name=\"beschreibung[]\" class='form' rows='3' cols='30'>".$beschreibung."</textarea></td>\n";
print "<td><textarea name=\"preis[]\" class='form' rows='3' cols='10'>".$preis."</textarea></td>\n";
print "<td><input type='checkbox' name=\"checkbox[]\" value='$gruppe'></td></tr>";
}
print "</table>";
print "<table>
<tr>
<td><input type=\"submit\" name=\"insert\" value=\"Neue Zeile einfügen \" /></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td><input type=\"submit\" name=\"senden\" value=\"Änderung durchführen \" /></td>
</tr>
</table>\n";
print "</form>";

?>

stellt dann die Eintragungen dar.

In welche Datei werden nun die Daten geschrieben? Ist es möglich auch mehrere Gerichte unter einer Rubrik zu erstellen?

Danke für Eure HILFE, bin ein absolut neu auf dem Gebiet.
Mit Zitat antworten
  #11 (permalink)  
Alt 21-04-2004, 17:40
jochenj
 Senior Member
Links : Onlinestatus : jochenj ist offline
Registriert seit: Oct 2002
Ort: Maikammer
Beiträge: 546
jochenj ist zur Zeit noch ein unbeschriebenes Blatt
Standard

hi,

wenn du dir die grundlagen für HTML insb. formulare kennst und dir dann mal spasseshalber den quelltext im browser anschaust der durch

PHP-Code:
print "<form name=\"speisen\" action=\"".$_SERVER['PHP_SELF']."\" method=\"post\"><table border='0'><tr>"
erzeugt wird. wirst du hoffentlich so selbstkristisch sein und feststellen, das da was nicht stimmen kann.

es wurde bisher nirgends beschrieben, das es mehr als eine datei ist.

OffTopic:
bitte benutze den php tag für phpcode; das bunte erleichtert ungemein die lesbarkeit und hilft fehler zu finden
Mit Zitat antworten
  #12 (permalink)  
Alt 23-04-2004, 15:21
slapper
 Newbie
Links : Onlinestatus : slapper ist offline
Registriert seit: Mar 2004
Beiträge: 12
slapper ist zur Zeit noch ein unbeschriebenes Blatt
Standard

hab den code mal getestet da ich das gleiche problem habe
bei mir geht der nicht so 1:1 ??
wenn ich auf Submit gehe, also die geänderten Daten versende zeigt er mir in den entsprechenden geänderten Feldern nur "Array" an als text
und in der mysql-DB ändert er immer die ID=1 ?? egal auf welcher id ich mich gerade befinde
__________________
SLAPPER'on#OSX
Mit Zitat antworten
  #13 (permalink)  
Alt 23-04-2004, 16:04
slapper
 Newbie
Links : Onlinestatus : slapper ist offline
Registriert seit: Mar 2004
Beiträge: 12
slapper ist zur Zeit noch ein unbeschriebenes Blatt
Standard

hab den fehler gefunden

die for schleife ist völlig überflüssig
und array hat er angezeigt weil input name="gericht[]"
hab alle array Klammern entfernt auch in den POST's
und das form tag ist verkehrt, deswegen hat er immer nur die ID 1 beim update hergenommen

funzt einwandfrei
__________________
SLAPPER'on#OSX

Geändert von slapper (23-04-2004 um 16:07 Uhr)
Mit Zitat antworten
  #14 (permalink)  
Alt 25-05-2004, 14:52
nobodymw
 Newbie
Links : Onlinestatus : nobodymw ist offline
Registriert seit: Apr 2004
Beiträge: 3
nobodymw ist zur Zeit noch ein unbeschriebenes Blatt
Question Quelltext

Hallo Slapper,

kannst Du bitte das funktionierende Script posten? Wie gesagt ich habe absolut keine Ahnung von dieser Programmiersprache.


DANKE
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

MariaDB 5.5 veröffentlicht
MariaDB 5.5 veröffentlichtDie freie MySQL-Alternative MariaDB wurde in der stabilen Version 5.5.23 veröffentlicht und soll einige Verbesserungen gegenüber Oracles Communityversion von MySQL mitbringen.

16.04.2012 | Berni

Deutsche Yii Framework Community
Deutsche Yii Framework CommunitySeit dem 19.03.2012 gibt es für die Yii PHP Framework Community ein deutsches Zuhause.

20.03.2012 | dhcomputer

 

Aktuelle PHP Scripte

EM 2012 Tipp-Spiel ansehen EM 2012 Tipp-Spiel

Online Tipp-Spiel zur Fussball Europameisterschaft 2012, basierend auf php-Script mit hinterlegter mySql-Datenbank

27.05.2012 tippimnetz | Kategorie: PHP/ Spiele
Advanced Login ansehen Advanced Login

Login-System und Kundenverwaltung, die sich spielend leicht in bestehende Webseiten einbauen lässt und einen enormen Funktionsumfang bietet. Ihre eigene Webseite muss mit Advanced Login nicht umständlich an ein fertiges System angepasst werden.

25.05.2012 Madden | Kategorie: PHP/ Kundenverwaltung
BROM CMS/BelCal 3 ansehen BROM CMS/BelCal 3

Spezielles CMS für Betreiber von Ferienwohnungen. Komplette Seitenerstellung online, Verwaltung mehrerer Objekte, Reservierungssystem mit sofortigem Abgleich im Belegungskalender und vieles mehr bietet dieses Content Management System.

25.05.2012 belcal2 | Kategorie: PHP/ CMS
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 22:02 Uhr.