von Thodi |
wißt ihr auch wie ich ein update mache ?ich habe in der tabelle zb preise und marken der preise wenn man die verändern will macht man ja ein update wißt ihr wie das geht?
Wäre lieb.
Gruß Thodi |
von Thodi |
Danke es klappt |
von subjective |
Du meinst INSERT bzw.
INSERT INTO tabelle (feld1, feld2, ...) VALUES ('val1', 'val2', ...)
|
von Joschi003 |
Select * ist falsch da muss stehen welche TAbelle es is |
von Thodi |
eine frage ich habe in meiner tabelle name Vorname Strasse und Ort aber er gibt nur Name und Vorname aus bzw trägt beim reinschreiben in der daten bank nur Vorname ein.
Ich habe hier mal 2 scgripte einmal das erste zum auslesen und das 2 zum reinschreiben in der datenbank.
<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<html>
<head>
<title>Title here!</title>
</head>
<body>
<?php
// Datenbank Variablen oder die connect.php
$dbname = "DB"; // Name der Datenbank
$dbuser = "U"; // Username des Datenbankbenutzers
$dbpass = "" ; // Passwort des Datenbankbenutzers
$dbserver = ""; // Server des Users
$db = @mysql_connect($dbserver,$dbuser,$dbpass);
mysql_select_db($dbname,$db);
$Name = $HTTP_POST_VARS["Name"];
$Vorname = $HTTP_POST_VARS["Vorname"];
$eintrag = "INSERT * INTO freunde (Name,Vorname) VALUES ('$Name' , '$Vorname')";
$eintragen = mysql_query($eintrag,$db);
?>
</body>
</html>
und die zum auslesen
<?php
$dbname = "DB"; // Name der Datenbank
$dbuser = "U"; // Username des Datenbankbenutzers
$dbpass = "" ; // Passwort des Datenbankbenutzers
$dbserver = ""; // Server des Users
$db = @mysql_connect($dbserver,$dbuser,$dbpass); // Verbindung zur Datenbank mit den oben genannten Variablen herstellen.
mysql_select_db($dbname,$db);
$abfrage = "SELECT * FROM freunde";
$ergebnis = mysql_query($abfrage,$db);
echo "<table border=2>";
echo" <tr><td>Name</td><td>Vorname</td></tr>";
while($row = mysql_fetch_object($ergebnis))
{
echo" <tr><td>$row->Name</td><td>$row->Vorname</td></tr>";
}
?>
was ist da falsch?
danke im voraus.
|
von subjective |
Besser $_REQUEST oder $_POST statt $HTTP_POST_VARS nutzen. Die $HTTP_*_VARS sind deprecated. Die neuen Superglobals sind einfacher und kürzer.
Eingaben niemals ohne Prüfung und Absicherung (zB mit preg_match() und mysql_real_escape_string()) in einen SQL-String einsetzen. So entstehen SQL-Injection-Bugs.
Datenbankfehler abfangen und behandeln ist generell auch sehr sinnvoll. |
von Steff_O |
in dem du eine register.php erstellst mit feldern die der user ausfüllen muss!
ich gehe mal davon aus wie man so ein formular etc erstellt!
Also hier nur das wesentliche > ähnlich wie beim 1. bsp.
aber auf www.schattenbaum.de ist sehr gut beschrieben!
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17: | <?
// Datenbank Variablen oder die connect.php
$dbname = "name"; // Name der Datenbank
$dbuser = "username"; // Username des Datenbankbenutzers
$dbpass = "passwort" ; // Passwort des Datenbankbenutzers
$dbserver = "localhost"; // Server des Users
$db = @mysql_connect($dbserver,$dbuser,$dbpass);
mysql_select_db($dbname,$db);
$username = $HTTP_POST_VARS["username"]; //name des Inhalts im Formularfeld Username
$password = $HTTP_POST_VARS["password"] //name des Inhats im Formularfeld Passwort
$eintrag = "INSERT INTO Mitglieder (username) VALUES ('$username')";
$eintragen = mysql_query($eintrag,$db);
?>
|
|
von Thodi |
sorry sollte aber heißen |
von Thodi |
Es geht geil !aber noch eins wie kann ich es machen das sich einer per formular in die datenbank eintagen kann bzw er gibt name an und vorname und so weiter wie geht es dann???
Mit Freundlichen gruß Thorsten |
von Thodi |
Danke schön |
von Steff_O |
Hi probier es mal so...:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14: | <?
// Datenbank Variablen oder die connect.php
$dbname = "name"; // Name der Datenbank
$dbuser = "username"; // Username des Datenbankbenutzers
$dbpass = "passwort" ; // Passwort des Datenbankbenutzers
$dbserver = "localhost"; // Server des Users
$db = @mysql_connect($dbserver,$dbuser,$dbpass); // Verbindung zur Datenbank mit den oben genannten Variablen herstellen.
mysql_select_db($dbname,$db);
//in deinem fall...:
$abfrage = "SELECT username, password FROM Mitglieder";
$ergebnis = mysql_query($abfrage,$db);
?> |
um das ganze jetzt noch ordenlich darzustellen würd ich eine tabelle mit einbauen.
dann würde das ganze so aussehen:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23: | <?
// Datenbank Variablen oder die connect.php
$dbname = "name"; // Name der Datenbank
$dbuser = "username"; // Username des Datenbankbenutzers
$dbpass = "passwort" ; // Passwort des Datenbankbenutzers
$dbserver = "localhost"; // Server des Users
$db = @mysql_connect($dbserver,$dbuser,$dbpass); // Verbindung zur Datenbank mit den oben genannten Variablen herstellen.
mysql_select_db($dbname,$db);
//in deinem fall...:
$abfrage = "SELECT username, password FROM Mitglieder";
$ergebnis = mysql_query($abfrage,$db);
echo "<table border=0>";
echo" <tr><td>Username</td><td>Passwort</td></tr>";
while($row = mysql_fetch_object($ergebnis))
{
echo" <tr><td>$row->username</td><td>$row->password</td></tr>";
}
?> |
mit "$row->..." liest du alle einträge die sich in dieser spalte befinden aus.
um nur von einer Person diese Daten auszulesen musst du folgendes schreiben:
statt:
1:
2:
3: | $abfrage = "SELECT username, password FROM Mitglieder";
$ergebnis = mysql_query($abfrage,$db);
|
schreibst du ^^ diesen Bereich so:
1:
2:
3:
4:
5: | $abfrage = "SELECT username, password FROM Mitglieder Where username = '$username'";
$ergebnis = mysql_query($abfrage,$db);
$zeileholen = mysql_fetch_Array($ergebnis,MYSQL_ASSOC);
$username = $zeileholen["username"];
$password = $zeileholen["password"]; |
P.S.
ich würde dir aber für den weiteren weg, das stöbern in diversen php-foren und den besuch
auf www.schattenbaum.net/php empfehlen |
von Thodi |
Hallo zusammen ich habe ein problem ich habe seit 1 woche angefangen mich mit datenbanken zu beschaffen und wollte jetzt ein parr daten speichern.
ok ich habe es über php myadmin getan das eintragen und wollte sie jetzt auslesen aber das geht nicht .hier ist mein script.
Ich bekomme ja die verbindung und ich habe in der tabelle Mitglieder nur 3 spalten also die id dann username , wohnort ,
weil ich arbeite mit phpmyadmin .
und das script habe ich auch schon versucht aus einer hilfe leiste im forum aber geht trozdem nicht .sagt nur das er verbunden ist mit der datenbank.
weil ich habe ja eine if abfrage gemacht wenn die datenbank nicht funktionieren sollte.
Hier das Script
<?php
$link = mysql_connect("host","U","passwort");
if( !$link )
{
echo "Konnte keine Verbindung aufbauen";
}
else
{
echo "Sie sind nun verbunden mit der datenbank";
}
$Data = mysql_select_db("DB");
if( !$Data )
{
echo "Die Datenbank gibt es nicht";
}
else
{
echo "Sie sind verbunden";
}
$query = "SELECT * FROM Mitglieder WHERE 1 LIMIT 0 , 30";
$result = mysql_query ( $query);
$datensatz = mysql_fetch_row ( $result);
while ($row=mysql_fetch_array($result))
{
echo $row['passwort'];
}
?>
Wie ihr seht habe ich eine if abfrage gemacht und die datenbank ist erfolgreich gestartet.
aber ich bekomme die datensätze nicht .meine tabelle heißt Mitglieder und habe 2 zeilen username und password und die wollte ich ausgegeben haben.
Kann mir da einer helfen bitte.
Vielen dank im voraus. |
von Steff_O |
hm ja es gibt kein fehler! der ausser dass die Tabelle leer bleiben tut!
der zeigt also keine Daten an... nix - null - etc |
von HoRnominatoR |
mit scheint eher, du hast die antwort nicht verstanden - denn ueber nichts anderes reden wir die ganze zeit. lass dir mal die fehler ausgeben. das es nicht funktioniert, liegt nicht an uns.
mysql_query() or die(mysql_error()); |
von Steff_O |
hm das will aber nich grrrr
die tabelle bleibt leer also ich hab das jetzt so gemacht, dass die user alle auf der members.php angezeigt wird!
verlinkt sind die user alle mit: href=profil.php?user=$row->username
so ist das doch richtig? jedenfalls sieht der endlink dann so aus:
profil.php?user=test oder
profil.php?user=test2
jenachdem wo ich drauf klicke auf welchen user
jetzt soll aber die profil.php herausfinden welchen user ich angeklickt habe! sprich der profil.php soll gesagt werden
?user=test oder
?user=test2
ich hoffe ihr versteht wie ich das meine :(
thx |
von subjective |
$abfrage = "SELECT name FROM users WHERE name = '".mysql_escape_string($_GET['name'])."'"; |
von paul |
1:
2:
3:
4:
5:
6:
7:
8:
9: |
while ($daten = mysql_fetch_array ($ergebnis) {
echo $daten['username'];
echo $daten['icqnummer'];
echo $daten['email'];
}
|
|
von Steff_O |
also meinst du in etwa so?
1:
2: | $abfrage = "SELECT name FROM users WHERE name = $_GET['name']";
$ergebnis = mysql_query($abfrage); |
und ausgeben tu ich das ganze so?
1: | echo "<tr><td>$user</td> |
|
von subjective |
Dafür gibt es ja dann Funktionen wie zB mysql_real_escape_string(). Außerdem kommen Strings auch in SQL in Anführungszeichen. |
von HoRnominatoR |
SELECT feld FROM tabelle WHERE nick = $_GET['username']
hast du natuerlich das problem mit SQL-injections, also vorher immer pruefen ob der name auch gueltig ist und keine unerwarteten backslashes enthaelt. |
von Steff_O |
Also:
Nehmen wir mal das Bsp.
Ich schau mir eine Memberlist an! alle Usernamen sind anklickbar! Wenn ich auf einen Usernamen klicke, soll sich ein popup öffnen <<< das hab ich ja auch soweit > und es sollen sich dann die daten des angeklickten users dort einfinden! der popup link ist ?action=username (username vom angeklickten profil)
Bsp.
?action=test wie sag ich dem popup aber das er von user test die daten auslesen soll?
Ich kann ja nicht im phpcode schreiben username=test und ich kann ja nicht für jeden user eine php.datei anlegen... bitte helft mir mal! |