Zitat von combie
Beitrag anzeigen
Forumalausgabe aus mysql datenbankproblem
Einklappen
X
-
Ich dachte zwar, dass der extra gut zu finden sein müsste, aber für dich nochmal hier: PHP script resource - Ankündigungen im Forum : PHP Developer Forum[COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
[/COLOR]
Kommentar
-
sorry, aber dort finde ich nichts, das ich nicht eingehalten hätte....Zitat von onemorenerd Beitrag anzeigenWir haben hier gewisse Regeln. In 5 Minuten hat man die gelesen. Wenn dir das zu viel ist, dann suche dir bitte ein anderes Forum wo du dich benehmen kannst wie die Axt im Walde. Wir behandeln uns hier mit dem gebührenden Respekt. Dazu gehört, dass der Hilfesuchende den Helfern entgegenkommt so gut er kann.
So, und nun bitte folgen:
PHP script resource - Ankündigungen im Forum : PHP Developer Forum
PHP Developer Forum - PHP script resource (die mit "Wichtig" markierten Threads)
Kommentar
-
Fangen wir mal hiermit an:
Nutzt [PHP]-Tags
Um euren Quelltext farblich zu formatieren fügt bitte vor dem Quelltext ein
Kommentar
-
weil ich dachte, das ich hierin falsch wäre - sorry.Zitat von combie Beitrag anzeigenFür so ein trivial Problem 2 Threads?
Warum?
Mache doch bitte erstmal ein paar Tutorials.
Dann klärt sich das von selber.
Kommentar
-
Cross, bzw. Multipostings werden in Foren nicht gerne gesehen.Für so ein trivial Problem 2 Threads?
Warum?
------
Und dieses:
Gehört zu:Mache doch bitte erstmal ein paar Tutorials.
Dann klärt sich das von selber.
Und ja, ohne den Willen zu lernen, wirst du hier nicht weit kommen.Nein, aber du brauchst die PHP/MySQL Grundlagen um die Antworten überhaupt verstehen zu können.
----------
Wenn du deinen Code nicht mit den PHP Tags formatierst wird sich den auch wohl niemand anschauen. Je professioneller die Helfer, desto ehr werden sie solche Beiträge ignorieren.
-----------
Jetzt etwas klarer?
Kommentar
-
Nun, ich denke, ich habe es nun so gemacht - oder, hoffe ich jedenfalls. Lernen will ich, aber ich will für nen erste Hilfekurs keine Arzt lernen.... ist das verständlich.....? Brauche kein Webexperte zu werden - nur die Techniken, die ich brauche. Sonst kann ich gleich nen Kurs mitmachen.Zitat von combie Beitrag anzeigenCross, bzw. Multipostings werden in Foren nicht gerne gesehen.
------
Und dieses:
Gehört zu:
Und ja, ohne den Willen zu lernen, wirst du hier nicht weit kommen.
----------
Wenn du deinen Code nicht mit den PHP Tags formatierst wird sich den auch wohl niemand anschauen. Je professioneller die Helfer, desto ehr werden sie solche Beiträge ignorieren.
-----------
Jetzt etwas klarer?
Kommentar
-
Aber wenn das Problem so trivial ist, sollte es doch ein leichtes sein, mir die Lösung mit zu teilen, oder sehe ich da was falsch ?Zitat von Pete-Bremen Beitrag anzeigenweil ich dachte, das ich hierin falsch wäre - sorry.
Kommentar
-
PHP-Code:<!-- Hier fehlt der Doctype. -->
<html><head>
<title>Personenporfil anmeldungsgest</title>
<link href="xampp.css" rel="stylesheet" type="text/css"></head>
<body> <!-- Wozu dieses Leerzeichen? -->
<? // short_open_tags sollte man nicht benutzen!
if(!mysql_connect("localhost","root",""))
{
echo "<h2>Error</h2>";
die(); // in diesem Fall ist die Ausgabe kein vollständiges HTML-Dokument
}
mysql_select_db("profile");
?></table>
<!-- Parameter gehören in Anführungszeichen -->
<h2>Registrieren</h2><form action=profiltest.php method=get><table border=0 cellpadding=0 cellspacing=0>
<tr><td>Benutzername<td>:</td><td><input type=text size=30 name=username></td></tr>
<tr><td>Sender<td>:</td><td> <input type=text size=30 name=sender></td></tr>
<tr><td>Starzeit<td>:</td><td> <input type=text size=30 name=startzeit></td></tr>
<tr><td>Wochentag<td>:</td><td> <input type=text size=30 name=wochentag></td></tr>
<!-- Woher kommt $size1? -->
<tr><td>test<input type='text' name='rufnummer' style='width:$size1;' value='' MAXLENGTH='5' size="10">
<tr><td></td><td><td><input type=submit border=0 value="Bestätigen"></td></tr></table>
</form>
</body></html>PHP-Code:<!-- Wieder kein Doctype, nicht mal <html> -->
<title>dies soll das einzelProfil werden nach Anmeldung</title>
<body> <center><h1>Daten alle korrekt ?</h1>
<?
if(!mysql_connect("localhost","root",""))
{
echo "<h2>Error, Es kann keine Verbindung zur DB hergestellt werden </h2>";
die();
}
mysql_select_db("profile");
?>
<table bgcolor=#f878a0 border=0 cellpadding=0 cellspacing=0>
<?
// Verwende isset() ... für alle keys! -->
if($_REQUEST['username']!="")
{
// Woher soll $date kommen? Wozu überhaupt, du benutzt doch NOW()?
if($date=="")$date="NULL";
$sender=htmlentities($_REQUEST['sender']);
$username=htmlentities($_REQUEST['username']);
$startzeit=htmlentities($_REQUEST['startzeit']);
$wochentag=htmlentities($_REQUEST['wochentag']);
// Woher soll $id kommen?
// Semikolon am Ende der Query ist syntaktisch falsch.
mysql_query("INSERT INTO profil (id,username,sender,startzeit,wochentag,date) VALUES('$id','$username','$sender','$startzeit','$wochentag',NOW());");}
// Wieder isset() verwenden!
if($_REQUEST['action']=="del")
{
// Wieder ein Semikolon zu viel.
// SQL-Injection! Gefährlich!
mysql_query("DELETE FROM profil WHERE id={$_REQUEST['id']};"); }
// Semikolon!
$result=mysql_query("SELECT id,username,sender,startzeit,wochentag,date FROM profil ORDER BY id;");
while( $row=mysql_fetch_array($result) )
// Was soll der leere Klammer-Block?
{ { }
// HTML-Tabellen werden anders aufgebaut. Stichwort table head.
echo "<tr><td>Registrier Nr.</b></td>";
echo "<td>".$row['id']."</td>";
echo "<tr><td><b>Benutzername :</b></td>";
// Wozu diese Leerzeichen?
echo "<td><b> ".$row['username']."</b></td>";
echo "<tr><td><b>Wohnort :</b></td>";
echo "<td>".$row['sender']." </td>";
echo "<tr><td><b>Startzeit :</b></td>";
echo "<td>".$row['startzeit']." </td>";
echo "<tr><td><b>Wochentag :</b></td>";
echo "<td>".$row['wochentag']." </td>";
echo "<tr><td><b>Anmeldung :</b></td>";
echo "<td>".$row['date']." ";
echo "<tr><td><b>Test :</b></td>";
echo "<td>".$row['test']." ";
echo "<td><a onclick=\"return confirm('Sicher ?');\" href=profiltest.php?action=del&id=".$row['id']."><span class=red>[Ja]</span></a></td>";
echo "<td></td>";
echo "</tr>";
}
?>
</table></body></html>[
Kommentar
-
ist <html> kein Doctype ? Und das leerzeichen ist doch erstens ega, und zweitens war´s schon da - ist auch nur aus was anderem heraus kopiert und abgeändert. Aber das hilft mir nun in dem Problem - das laut wem anders, so trivial sein soll, auch nicht weiter - was mache ich falsch ?Zitat von onemorenerd Beitrag anzeigenPHP-Code:<!-- Hier fehlt der Doctype. -->
<html><head>
<title>Personenporfil anmeldungsgest</title>
<link href="xampp.css" rel="stylesheet" type="text/css"></head>
<body> <!-- Wozu dieses Leerzeichen? -->
<? // short_open_tags sollte man nicht benutzen!
if(!mysql_connect("localhost","root",""))
{
echo "<h2>Error</h2>";
die(); // in diesem Fall ist die Ausgabe kein vollständiges HTML-Dokument
}
mysql_select_db("profile");
?></table>
<!-- Parameter gehören in Anführungszeichen -->
<h2>Registrieren</h2><form action=profiltest.php method=get><table border=0 cellpadding=0 cellspacing=0>
<tr><td>Benutzername<td>:</td><td><input type=text size=30 name=username></td></tr>
<tr><td>Sender<td>:</td><td> <input type=text size=30 name=sender></td></tr>
<tr><td>Starzeit<td>:</td><td> <input type=text size=30 name=startzeit></td></tr>
<tr><td>Wochentag<td>:</td><td> <input type=text size=30 name=wochentag></td></tr>
<!-- Woher kommt $size1? -->
<tr><td>test<input type='text' name='rufnummer' style='width:$size1;' value='' MAXLENGTH='5' size="10">
<tr><td></td><td><td><input type=submit border=0 value="Bestätigen"></td></tr></table>
</form>
</body></html>PHP-Code:<!-- Wieder kein Doctype, nicht mal <html> -->
<title>dies soll das einzelProfil werden nach Anmeldung</title>
<body> <center><h1>Daten alle korrekt ?</h1>
<?
if(!mysql_connect("localhost","root",""))
{
echo "<h2>Error, Es kann keine Verbindung zur DB hergestellt werden </h2>";
die();
}
mysql_select_db("profile");
?>
<table bgcolor=#f878a0 border=0 cellpadding=0 cellspacing=0>
<?
// Verwende isset() ... für alle keys! -->
if($_REQUEST['username']!="")
{
// Woher soll $date kommen? Wozu überhaupt, du benutzt doch NOW()?
if($date=="")$date="NULL";
$sender=htmlentities($_REQUEST['sender']);
$username=htmlentities($_REQUEST['username']);
$startzeit=htmlentities($_REQUEST['startzeit']);
$wochentag=htmlentities($_REQUEST['wochentag']);
// Woher soll $id kommen?
// Semikolon am Ende der Query ist syntaktisch falsch.
mysql_query("INSERT INTO profil (id,username,sender,startzeit,wochentag,date) VALUES('$id','$username','$sender','$startzeit','$wochentag',NOW());");}
// Wieder isset() verwenden!
if($_REQUEST['action']=="del")
{
// Wieder ein Semikolon zu viel.
// SQL-Injection! Gefährlich!
mysql_query("DELETE FROM profil WHERE id={$_REQUEST['id']};"); }
// Semikolon!
$result=mysql_query("SELECT id,username,sender,startzeit,wochentag,date FROM profil ORDER BY id;");
while( $row=mysql_fetch_array($result) )
// Was soll der leere Klammer-Block?
{ { }
// HTML-Tabellen werden anders aufgebaut. Stichwort table head.
echo "<tr><td>Registrier Nr.</b></td>";
echo "<td>".$row['id']."</td>";
echo "<tr><td><b>Benutzername :</b></td>";
// Wozu diese Leerzeichen?
echo "<td><b> ".$row['username']."</b></td>";
echo "<tr><td><b>Wohnort :</b></td>";
echo "<td>".$row['sender']." </td>";
echo "<tr><td><b>Startzeit :</b></td>";
echo "<td>".$row['startzeit']." </td>";
echo "<tr><td><b>Wochentag :</b></td>";
echo "<td>".$row['wochentag']." </td>";
echo "<tr><td><b>Anmeldung :</b></td>";
echo "<td>".$row['date']." ";
echo "<tr><td><b>Test :</b></td>";
echo "<td>".$row['test']." ";
echo "<td><a onclick=\"return confirm('Sicher ?');\" href=profiltest.php?action=del&id=".$row['id']."><span class=red>[Ja]</span></a></td>";
echo "<td></td>";
echo "</tr>";
}
?>
</table></body></html>
Ich will nur die zuletzt eingegebenen Info auf der Ausgabeseite und nicht sämtliche Daten.
Kommentar
-
ok, noch einmal
es funktioniert mit auflistung aller je eingegebenen Daten
Eingabe :
Ausagebe :<html><head>
<title>Personenporfil anmeldungsgest</title>
<link href="xampp.css" rel="stylesheet" type="text/css"></head>
<body>
<?
if(!mysql_connect("localhost","root",""))
{
echo "<h2>Error</h2>";
die();
}
mysql_select_db("profile");
?></table>
<h2>Registrieren</h2><form action=profiltest2.php method=get><table border=0
cellpadding=0 cellspacing=0>
<tr><td>Benutzername<td>:</td><td><input type=text size=30
name=username></td></tr>
<tr><td>Sender<td>:</td><td> <input type=text size=30 name=sender></td></tr>
<tr><td>Starzeit<td>:</td><td> <input type=text size=30
name=startzeit></td></tr>
<tr><td>Wochentag<td>:</td><td> <input type=text size=30
name=wochentag></td></tr>
<tr><td>test<input type='text' name='rufnummer' style='width:$size1;' value=''
MAXLENGTH='5' size="10">
<tr><td></td><td><td><input type=submit border=0
value="Bestätigen"></td></tr></table>
</form>
</body></html>
Wie krieg ich´s nun hin, das nur die gerade getätigte Eingabe in der Ausgabe erscheint und in der Datenbank gespeichert wird ?<title>dies soll das einzelProfil werden nach Anmeldung</title>
<body> <center><h1>Daten alle korrekt ?</h1>
<?
if(!mysql_connect("localhost","root",""))
{
//------
echo "<h2>Error, Es kann keine Verbindung zur DB hergestellt
werden </h2>";
//----------dies ist der Code für, falls keine kann.-------
//------------
die();
//--------ohne diesem gäbe es neber der schlichten Fehlermeldung, noch unschöne
codefehlermeldungen------------
}
mysql_select_db("profile");
?>
<table bgcolor=#f878a0 border=0 cellpadding=0 cellspacing=0>
<?
if($_REQUEST['username']!="")
{
$sender=htmlentities($_REQUEST['sender']);
$username=htmlentities($_REQUEST['username']);
$startzeit=htmlentities($_REQUEST['startzeit']);
$wochentag=htmlentities($_REQUEST['wochentag']);
mysql_query("INSERT INTO profil
(id,username,sender,startzeit,wochentag,date)
VALUES('$id','$username','$sender','$startzeit','$wochentag',NOW());");}
//------------
if($_REQUEST['action']=="del")
{
mysql_query("DELETE FROM profil WHERE id={$_REQUEST['id']};");
}
//------der Code zum löschen aus der DB
$result=mysql_query("SELECT id,username,sender,startzeit,wochentag,date
FROM profil ORDER BY id;");
// BY ist die Anordnung der Auflistung
while( $row=mysql_fetch_array($result) )
{ { }
[COLOR="DarkOrange"]//was die klammern sollen.... nehme ich sie weg, funktionierts nichts mehr.....[/COLOR]
echo "<tr><td>Registrier Nr.</b></td>";
echo "<td>".$row['id']."</td>";
echo "<tr><td><b>Benutzername :</b></td>";
echo "<td><b> ".$row['username']."</b></td>";
[COLOR="rgb(255, 140, 0)"]//leerzeichen sollten nicht das Problem sein, auch wenn überflüssig![/COLOR]
echo "<tr><td><b>Wohnort :</b></td>";
echo "<td>".$row['sender']." </td>";
echo "<tr><td><b>Startzeit :</b></td>";
echo "<td>".$row['startzeit']." </td>";
echo "<tr><td><b>Wochentag :</b></td>";
echo "<td>".$row['wochentag']." </td>";
echo "<tr><td><b>Anmeldung :</b></td>";
echo "<td>".$row['date']." ";
echo "<tr><td><b>Test :</b></td>";
echo "<td>".$row['test']." ";
echo "<td><a onclick=\"return confirm('Sicher ?');\"
href=profiltest2.php?action=del&id=".$row['id']."><span
class=red>[Ja]</span></a></td>";
echo "<td></td>";
echo "</tr>";
}
?>
</table></body></html>
Kommentar
-
noch einmal anders neu
So erhalte ich die Auflistung aller in der Datenbank enthaltenen Daten :
Hier das Ausgabeskript<html><head>
<title>Personenporfil anmeldungstest</title>
<link href="xampp.css" rel="stylesheet" type="text/css"></head>
<body>
<?
if(!mysql_connect("localhost","root",""))
{
echo "<h2>Error</h2>";
die();
}
mysql_select_db("profile");
?></table>
<h2>Registrieren</h2><form action=anmeldetest-ausgabe.php method=get><table
border=0 cellpadding=0 cellspacing=0>
<tr><td>Benutzername<td>:</td><td><input type=text size=30 name=name></td></tr>
<tr><td>Ort<td>:</td><td> <input type=text size=30 name=ort></td></tr>
<tr><td>email<td>:</td><td> <input type=text size=30 name=email></td></tr>
<tr><td>Anmeldung<td>:</td><td> <input type=text size=30 name=date></td></tr>
<tr><td></td><td><td><input type=submit border=0
value="Bestätigen"></td></tr></table>
</form>
</body></html>
Und nun möchte ich nach Eingabe, nur die zuletzt eingegebenen Daten in der Ausgabe haben, wie entferne ich die Auflistung aller Daten ?<title>dies soll das einzelProfil werden nach Anmeldung</title>
<body> <center><h1>Daten alle korrekt ?</h1>
<?
if(!mysql_connect("localhost","root",""))
{
//------
echo "<h2>Error, Es kann keine Verbindung zur DB hergestellt
werden </h2>";
//----------dies ist der Code für, falls keine kann.-------
//------------
die();
//--------ohne diesem gäbe es neber der schlichten Fehlermeldung, noch unschöne
codefehlermeldungen------------
}
mysql_select_db("profile");
?>
<table bgcolor=#f878a0 border=0 cellpadding=0 cellspacing=0>
<?
if($_REQUEST['name']!="")
if($_REQUEST['ort']!="")
if($_REQUEST['email']!="")
{
$name=htmlentities($_REQUEST['name']);
$ort=htmlentities($_REQUEST['ort']);
$email=htmlentities($_REQUEST['email']);
$date=htmlentities($_REQUEST['date']);
$id=htmlentities($_REQUEST['id']);
mysql_query("INSERT INTO anmelden (id,ort,name,email,date)
VALUES('$id','$name','$ort','$email',NOW());");}
//------------
if($_REQUEST['action']=="del")
{
mysql_query("DELETE FROM anmelden WHERE
id={$_REQUEST['id']};"); }
//------der Code zum löschen aus der DB
$result=mysql_query("SELECT id,name,ort,email,date FROM anmelden ORDER
BY id;");
// BY ist die Anordnung der Auflistung
while( $row=mysql_fetch_array($result) )
{ { }
LIMIT 1";
echo "<tr><td>Registrier Nr.</b></td>";
echo "<td>".$row['id']."</td>";
echo "<tr><td><b>Benutzername :</b></td>";
echo "<td><b> ".$row['name']."</b></td>";
echo "<tr><td><b>Wohnort :</b></td>";
echo "<td>".$row['ort']." </td>";
echo "<tr><td><b>email :</b></td>";
echo "<td>".$row['email']." </td>";
echo "<tr><td><b>Anmeldung :</b></td>";
echo "<td>".$row['date']." </td>";
echo "<td><a onclick=\"return confirm('Sicher ?');\"
href=anmeldetest-ausgabe.php?action=del&id=".$row['id']."><span
class=red>[Ja]</span></a></td>";
echo "<td></td>";
echo "</tr>";
}
?>
</table></body></html>
Kommentar
-
Bitte benutze nicht QUOTE- sondern PHP-Tags für deinen Code. Das macht ihn schön bunt und damit lesbarer.
Die Fehler in der HTML-Ausgabe mögen dir die meisten Browser noch verzeihen. Aber das Semikolon am Ende deiner SQL-Queries quittiert MySQL mit einem Fehler. Dein Code funktioniert also überhaupt nicht.
Wie du siehst steht in den Regeln nicht ohne Grund, dass etwas Grundlagenwissen unbedingt vorhanden sein sollte.
Im Moment gibts du wegen der Query "SELECT ... ORDER BY id" alle Daten aus. Mit "SELECT ... WHERE id = <die gewünschte ID>" erhältst du nur einen bestimmten Datensatz. Dazu musst du natürlich die ID kennen, um sie in die Query einsetzen zu können. Beim Einfügen hast du sie - woher auch immer. Entweder verwendest du sie noch einmal oder folgst mal dem Link, den unset um 11:11 Uhr gepostet hat.
Aber wie gesagt, es ist nicht damit getan, die eine Query zu ändern. Dein Code ist so voller Fehler, dass er trotzdem nicht laufen wird.
Einfach irgendwas kopieren funktioniert eben nicht. Wenn es so einfach wäre, wären viele von uns arbeitslos.
Kommentar
-
Nein, <html> ist das Start-Tag des html-Elements. Ein Doctype sieht z. B. so aus:Zitat von Pete-Bremen Beitrag anzeigenist <html> kein Doctype ?
HTML-Code:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">[COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
[/COLOR]
Kommentar
Moderatorin
Kommentar