php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 25.08.2004, 02:06  
Gast
 
Beiträge: n/a
Standard Werte mit Texteingabefelder auf einer HP in die DB schreiben

hi,

also erstmal vorweg bin noch php anfänger und bin gerade beim googlen nach hilfe auf diese Seite gekommen und habe mich gleich mal angemldet und habe gleich 2 große Probleme zumindest sind diese aus meiner sicht groß

Ich fang mal an also das erste Problem ist das ich aus einer tabelle aus meiner Datenbank Daten auslesen möchte die sich nach 2 Werten (2 Spalten) innerhalb der DB richten sollen.

Code:
$reservierungen = "SELECT nr,name,user,allianz,punkte FROM inseln WHERE status= 'target' and ozean= '78' ORDER BY nr";
Das ist der aktuelle Auszug des Codes um den es sich dreht und das klappt auch wunderbar. Ich habe in der tabelle also die Spalte ozean und werte die von 1 - 140 gehen.
Ich kann also einen einzelnen Ozean ausgeben wie der code es zeigt aber wie kann ich es machen das ich zb. Ozean 1-10 ausgeben kann?

Habe es schon so versucht:

Code:
$reservierungen = "SELECT nr,name,user,allianz,punkte FROM inseln WHERE status= 'target' and ozean= '1-10' ORDER BY nr";
oder auch so:

Code:
$reservierungen = "SELECT nr,name,user,allianz,punkte FROM inseln WHERE status= 'target' and ozean= '1, 2, 3, 4, 5,' ORDER BY nr";
Aber leider Alles ohne erfolg. Habe auch noch andere Sachen probiert als die hier angegeben wäre schön wenn mir einer einen Tip oder Rat geben kann. Bedanke mich schonmal im Vorraus für Eure Mühe mit einem Anfänger in Sachen php.


Kommen wir nur zum zweiten Problem was mir leider ein absolutes Rätzel ist und hier den Code zu posten ist wohl überflüssig da ich mich dann lächerlich mache

Ich möchte auf einer seite 2 texteingabefelder anlegen womit ich folgende Werte aus der DB verknüpfe bzw einfüge. Die eingabefelder zu erstellen ist ja nicht das Problem und mit dem Update dbname SET ... Befehl habe ich auch schon probiert.

Ich versuche mal den sinn zu erklären. Also ich habe eine tabelle in der db mit mehreren werten einer ist nr=nummer und ein anderer reservierungen.

Jetzt möchte ich das man in dem einen eingabefeld die nummer angibt und im anderen den namen der reservierung. In die db soll dann halt zu der Zeile mit der nummer im feld registreirung der name eingegeben werden der im Eingabefeld eingegeben wird.

Also als beispeil so sieht die db vor einer eingabe aus:
Code:
nr.   name beschreibung reservierung
1     bla       blabla
2     du       dudu
3     er        erer
usw.
Und nach einer eingabe soll es so aussehen wenn ich im nummer eingabefeld 3 und im reservierungseingabefeld: Red eingebe
Code:
nr.   name beschreibung reservierung
1     bla       blabla          
2     du       dudu
3     er        erer             Red
usw.
Ich hoffe so ist es verständlich ausgedrückt wenn da jemand eine Idee hat oder mir irgendwie helfen kann bin über jede Hilfe dankbar.

Nochmals schonmal Danke für Eure Mühe.

Gruß Red
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 25.08.2004, 02:55  
Gast
 
Beiträge: n/a
Standard

1)
Code:
... WHERE status= 'target' AND ozean BETWEEN 1 AND 10  ORDER BY nr
BETWEEN ist afaik in sql92 definiert.

2) Das Skript sendet an die Datenbank einfach eine Zeichenkette. Wie diese zustande kommt, ist der Datenbank herzlich egal.
Wenn Du die Zeichenkette direkt im Skript ausschreibst, hast Du vermutlich etwas wie
Code:
$query = "UPDATE tablename SET reservierung='Red' WHERE nr=3";
jetzt müssen "nur noch" die variablen Teile aus den Eingabefeldern zusammengestellen werden.
Mal angenommen, das Formular wird per POST übertragen und die Felder heißen nr und reservierung, z.B.
Code:
$query = "UPDATE tablename SET reservierung='".mysql_escape_string($_POST['reservierung'])."' WHERE nr=".(int)$_POST['nr'];
Wird dafür noch eine Überprüfung benötigt oder kann da jeder immer alles eintragen?

zu mysql_escape_string und (int) siehe auch: http://www.dclp-faq.de/q/q-sql-injection.html
 
Alt 25.08.2004, 03:29  
Gast
 
Beiträge: n/a
Standard

Also auch hier erstmal recht herzlichen Dank, das erste mit der Anzeieg der Ozeane von 1-10 klappt wunderbar und ich habe heuet den ganzen Nachmittag versucht und versucht, aber wieder was gelernt

Also ich habe die eingabefelder in html gemacht das ieht so aus:

Code:
<div align="center">
  

<font color="#FFFFFF" size="3">Eingabe deiner Reservierung</font>
  </p>
</div>
<form method="POST" action="<?=$_SERVER['../../../../REQUEST_URI']?>">
  <table width="86%" border="0" align="center">
    <tr>
      <td colspan="2"></td>
    </tr>
    <tr>
      <td align="center">Inselnummer:</td>
      </tr>
       <tr>
      <td align="center"><input type="text" name="nr" size="24" tabindex="1"></td>
    </tr>
    <tr>
      <td align="center">Dein Name:</td></tr><tr>
      <td align="center"><input type="text" name="reservierung" size="24" tabindex="1"></td>
    </tr>
        <tr>
      <td align="center"><input type="submit" value="Einfügen" name="submit" tabindex="8"></td>
    </tr>
    </table>
Also auch mit dem POST Befehl nur bei der php Funktion bin ich gescheitert hatte es auch mit der update funktion probiert.

Wenn ic hdich jetzt richtig verstehe ist das erste was du im Code geschreiben hast das was an die DB geschickt wird und das zweite der php Befehl in der php Datei oder ?

Eine Überprüfung wird dafür nicht benötigt da kann jeder beliebege etwas eintragen.

Den Link schaue ich mir Morgen Früh sofort mal an habe gerade nur kurz rein geschaut aber bin zu Müde und der Kopf qualmt schon den ganzen Tag aber werde ich mir morgen mal genau anschauen.

Und nochmal Danke für deine bisherige Hilfe.

Gruß Red
 
Alt 25.08.2004, 11:49  
Gast
 
Beiträge: n/a
Standard

Zitat:
$_SERVER['../../../../REQUEST_URI']
Das wird's wohl nicht geben
Schalte zum Entwickeln mal error_reporting auf E_ALL und behalte das error-log des servers im Auge oder setze display_errors auf on; entweder in der php.ini oder per
Code:
<?php
error_reporting(E_ALL);
ini_set('display_errors', true);

// Rest des Skripts
?>
Dann zeigt php an, was es stört.
In diesem Fall käme etwas heraus wie
Code:
<form method="POST" action="warning: undefined index ..usw....">
das ist in der Ausgabe nicht sofort sichtbar. Deshalb ist der Blick ins error-log des servers eigentlich besser.



So wie es dasteht, sind es einfach nur zwei Zeichenketten, die da zusammengebastelt werden. Aber genau darum geht es ja: Der Datenbank ist es völlig egal, wie innerhalb von php die Zeichenkette zustande kommt. Sie weiss nichts davon und bekommt einfach irgendeine Zeichenkette geliefert, die sie dann auswertet
Code:
<?php
$query = 'SELECT dies,das FROM daher WHERE jenes=welches';
echo $query, "
\n";

$query = 'SELECT '.'dies'.',das'.' FROM daher WHERE jenes='.'welches';
echo $query, "
\n";

$was = 'welches';
$query = 'SELECT dies,das FROM daher WHERE jenes='.$was;
echo $query, "
\n";
?>
Dreimal die gleiche Ausgabe; dreimal steht in $query die gleiche Zeichenkette drin. Egal "welches" $query Du an die Datenbank schickst, die wird immer das Gleiche machen.
 
Alt 26.08.2004, 06:16  
Gast
 
Beiträge: n/a
Standard

Das mit dem String habe ich verstanden, das egal ist wie er an die DB gesendet wird.

So jetzt bin ich so weit das es funktioniert und mein code sieht so aus:

Code:
$test = "UPDATE inseln SET reservierung= '$reservierung' WHERE NR = '$id'";
$ergebnis = mysql_query($test) or die(mysql_error());

 ?>

<div align="center">


<font color="#FFFFFF" size="3">Eingabe deiner Reservierung</font>
</p>
</div>
<form action="<?php $_SERVER['PHP_SELF']?>" method="POST">
<table width="86%" border="0" align="center">
<tr>
<td colspan="2"></td>
</tr>
<tr>
<td align="center">Inselnummer:</td>
</tr>
<tr>
<td align="center"><input type="text" name= "id" value="<? echo $id ?>" size="24" tabindex="1"></td>
</tr>
<tr>
<td align="center">Dein Name:</td>
</tr>
<tr>
<td align="center"><input type="text" name= "reservierung" value="<? echo $reservierung ?>" size="24" tabindex="1" value="></td>
</tr>
<tr>
<td align="center"><input type="submit" value="Einfügen" name="submit" tabindex="8"></td>
</tr>
</table>
Habe dazu allerdings noch 2 fragen:

1. Wie kann ich es machen das wenn dort etwas drinsteht er nichts reinschreibt, normal mit dem Insert Befehl oder ? Aber da klappt das mit dem WHERE irgendwie nicht. ODer bin ich nur zu unwissend dafür. Ich meien ist ja nicht ganz so schlimm wenn es nicht geht aber dann hätte ich die Update Funktion nur für Admins gemacht damit die es gegebenfalls ändern können und für alle anderen nur die INSERT Funktion so das sie nur dort was eintragen können wo noch nichts steht.

2. In meinen Eingabefeldern bleibt die Einagbe nachdem neu laden der Seite stehen wie kann ich es machen das nachdem man auf einfügen geklickt hat die Eingabefelder wieder leer sind ?

Schonmal Danke für Eure Mühen.

Vielleicht bin ic hauch einfach zu Müde um jetzt noch was zu verstehen ich gehe mal schlafen.

GRuß Red
 
 


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
Unbekannte Werte verhindern das Dekodieren. freq.9 PHP Tipps 2006 10 15.07.2006 00:28
Werte aus gesamter Spalte zählen rotzlöffel PHP Tipps 2006 17 14.05.2006 20:28
Werte zusammenfassen PHP Tipps 2006 1 11.05.2006 15:03
Dynamische Werte übergabe? Logik Problem jesus666 PHP Tipps 2005-2 21 03.08.2005 17:30
doppelte Werte / Strings einer Spalte nur einmal ausgeben... Datenbanken 2 29.07.2005 12:10
Alle Werte eines Array mischen PHP Tipps 2005-2 2 28.07.2005 17:37
Eingabefelder und Werte PHP Tipps 2005-2 1 28.06.2005 08:19
werte werden nicht übergeben PHP Tipps 2005 10 05.04.2005 23:23
[Erledigt] Wie kann ich beliebig viele Werte an eine Funktion übergeben PHP Tipps 2005 11 25.01.2005 10:44
Werte aus zwei Tabellen verknüpfen? Datenbanken 12 05.01.2005 10:41
[Erledigt] Werte werden nicht übergeben Server, Hosting und Workstations 1 11.11.2004 09:30
<select> und alte Werte obi PHP Tipps 2004-2 4 06.11.2004 15:17
via Link Werte an eine function übergeben PHP Tipps 2004 5 01.07.2004 12:39
Werte eines Arrays in eine MySQL schreiben PHP Tipps 2004 2 28.06.2004 13:32
[Erledigt] Werte werden 2x ausgegeben PHP Tipps 2004 2 13.06.2004 14:07

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php texteingabefelder

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