Community

9dots.de Webdesign Board

 

 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 

 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 


Datenbankfehler bei eigenem Script
Gehe zu Seite 1, 2  Weiter
 
Dieses Forum ist gesperrt, du kannst keine Beiträge editieren, schreiben oder beantworten.   Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.    9dots.de Webdesign Community Foren-Übersicht -> Coding-Support
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
nanos
Mitglied
Mitglied


Angemeldet: 04.06.2004
Beiträge: 1752


BeitragVerfasst am: 13.10.2004, 14:28    Titel: Datenbankfehler bei eigenem Script Antworten mit Zitat
Erstmal vorweg: Bin absoluter Anfänger in PHP Auf den Arm nehmen

Fakt: Bin gerade dabei mir aus Codeschnipseln, Tutorials und meinem sehr sehr sehr geringen Basiswissen ein eigenes Aboutme-Script nur mal so zum Test zusammenzubasteln. Hat bis jetzt auch alles wunderbar geklappt: Login-Script mit Cookies funktioniert, keine Schreibfehler im Gerüst usw.

Allerdings stoße ich jetzt auf ein Problem.. Da ich leider nur Bahnhof verstehe und den Fehler nicht nachvollziehen kann bitte ich die Coder-Elite hier um Rat Cool

Mir wird folgender Fehler angezeigt:

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in c:\programme\easyphp\www\about\edit.php on line 65


Und hier der Code der Admin-Intern Seite:
Code:

<?php
if(!empty($_COOKIE['login_user']))
{
  echo 'Herzlich willkommen im ACP, '.$_COOKIE['login_user'].' !';
}
else
{
  echo 'Sie sind nicht eingeloggt.';
}

//MySQL Verbindung aufbauen

$user="meinedbdaten";
$db="meinedbdaten";
$pw="meinedbdaten";
$host="meinedbdaten";
mysql_connect($host, $user, $pw) OR die(mysql_error());
mysql_select_db($db) OR die(mysql_error());


//Variablen setzen

$template_source="aboutme_template.htm";

$fp=fopen($template_source,"r");
$template=fread($fp,filesize($template_source));
$template2 = $template;


//Einträge löschen

if($_GET['delete'] == 1 and $_GET['id'] !="")   {
$id = $_GET['id'];
echo "Löschen?<br>
<form action='?id=$id' method=post>
<input name=del type=submit value='Delete'>
</form>";
exit;
};

if($_POST['del'] !="" and $_GET['id'] !="")     {
$id = $_POST['id'];

$sql = mysql_query("DELETE FROM 'aboutme' WHERE id = $id");
if($sql)    { echo "Einträge wurden gelöscht!<br>";} else   {
    echo "Einträge konnten nicht gelöscht werden!<br>";};}


//Einträge schreiben

if(isset($_POST['absenden']))   {
    $name = $_POST['name'];

if($name == "") { echo "Du musst mindestens deinen Namen eintragen!<br>";} else   {

$sql = mysql_query("INSERT INTO 'aboutme' ('id','name') VALUES ('','$name');");
if($sql)    { echo "Du hast deine Einträge erfolgreich vorgenommen!<br>";}
              else { echo "Es ist ein Fehler aufgetreten! Einträge konnten nicht vorgenommen werden!<br>";
};};};


//Einträge auslesen

$sql = mysql_query("SELECT * FROM 'aboutme' ORDER BY 'id' DESC");
while($row = mysql_fetch_assoc($sql))   {
$id = $row['id'];
$id = $row['name'];
$template = str_replace("{name}",$name,$template);

    echo $template;
    $template = $template2;  // template wieder auf standart setzen
};




//Admin Eintrag Formular

echo "<form method=post >
    <table border=0>
        <tr>
            <td>Name:</td>
            <td><input type=text name=name></td>
        </tr>

        <tr>
            <td></td>
            <td><input type=submit name=absenden value=Eintragen></td>
        </tr>
    </table></form>";

?>


Das ganze ist wie ihr vielleicht schon gemerkt habt Templatebasiert aber das ist ja eigentlich irrelevant. Bitte gebt mir keine Ratschläge wie ich es hätte besser machen können da ich dadurch sowieso nur durcheinander gebracht werde ^^ Will keinen total durchoptimierten Code sondern nur das Erfolgsgefühl (fast) alleine so etwas geschafft zu haben! Smilie

Mich interessiert lediglich: Warum kommt der Fehler zustande (schon wenn ich mich in die Intern-Seite einlogge)?

Danke
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
elite
Mitglied
Mitglied


Angemeldet: 20.07.2004
Beiträge: 1005

Interessen: Coding, DLRG, Radsport

BeitragVerfasst am: 13.10.2004, 16:10    Titel: Antworten mit Zitat
Vielleicht makierst du Line 65 ein bisschen, habe jetzt kein Lust das nachzuzählen und zu gucken was da steht Sehr glücklich
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
ShortY
Mitglied
Mitglied


Angemeldet: 04.06.2004
Beiträge: 556
Wohnort: Herdorf
Interessen: Glaube, MTB, klettern, Musik(hören und machen), Computer

BeitragVerfasst am: 13.10.2004, 16:54    Titel: Antworten mit Zitat
$sql = mysql_query("SELECT * FROM `aboutme` ORDER BY `id` DESC;");


schreib das ma in Zeile 64... un lösch das was da steht... wenns dann immernoch nich geht schau ma nach, ob die tabelle auch wirklich aboutme heißt und die spalte id hat Smilie
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nanos
Mitglied
Mitglied


Angemeldet: 04.06.2004
Beiträge: 1752


BeitragVerfasst am: 13.10.2004, 18:43    Titel: Antworten mit Zitat
dankeschön, mir fällt grad auf das die spalte id nicht existiert (jetzt wo du es erwähnt hast), werds mal testen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
nanos
Mitglied
Mitglied


Angemeldet: 04.06.2004
Beiträge: 1752


BeitragVerfasst am: 13.10.2004, 18:53    Titel: Antworten mit Zitat
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in c:\programme\easyphp\www\about\edit.php on line 64



steht da jetzt aber, nachdem ich die zeile gelöscht und eins weiter nach oben verschoben hab :\
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
ShortY
Mitglied
Mitglied


Angemeldet: 04.06.2004
Beiträge: 556
Wohnort: Herdorf
Interessen: Glaube, MTB, klettern, Musik(hören und machen), Computer

BeitragVerfasst am: 13.10.2004, 21:22    Titel: Antworten mit Zitat
hmmm sag mal genau, wie die tabelle aboutme aussieht...

probier auchmal aus, das ORDER BY weg zumachen...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
rey
Mitglied
Mitglied


Angemeldet: 24.07.2004
Beiträge: 810
Wohnort: Bad Homburg
Interessen: synth ;)

BeitragVerfasst am: 13.10.2004, 23:03    Titel: Antworten mit Zitat
ShortY hat folgendes geschrieben:
$sql = mysql_query("SELECT * FROM `aboutme` ORDER BY `id` DESC;");


schreib das ma in Zeile 64... un lösch das was da steht...


Was soll das denn bitte? Hinter das DESC gehört mit Sicherheit kein ";".
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
nanos
Mitglied
Mitglied


Angemeldet: 04.06.2004
Beiträge: 1752


BeitragVerfasst am: 14.10.2004, 13:11    Titel: Antworten mit Zitat
Code:

# phpMyAdmin MySQL-Dump
# version 2.2.6
# http://phpwizard.net/phpMyAdmin/
# http://www.phpmyadmin.net/ (download page)
#
# Host: localhost
# Erstellungszeit: 14. Oktober 2004 um 14:05
# Server Version: 3.23.49
# PHP-Version: 4.2.0
# Datenbank : `db`
# --------------------------------------------------------

#
# Tabellenstruktur für Tabelle `aboutme`
#

CREATE TABLE aboutme (
  id int(11) NOT NULL auto_increment,
  name text NOT NULL,
  PRIMARY KEY  (id)
) TYPE=MyISAM;

#
# Daten für Tabelle `aboutme`
#


so sieht die tabelle aus..


und wenn zeile 64 und 65 so aussehen:
$sql = mysql_query("SELECT * FROM `aboutme` ORDER BY `id` DESC;");
while($row = mysql_fetch_assoc($sql)) {


ist die fehlermeldung zwar weg aber dann kommt noch wenn ich was eintragen will:
Es ist ein Fehler aufgetreten! Einträge konnten nicht vorgenommen werden!


Traurig
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
ShortY
Mitglied
Mitglied


Angemeldet: 04.06.2004
Beiträge: 556
Wohnort: Herdorf
Interessen: Glaube, MTB, klettern, Musik(hören und machen), Computer

BeitragVerfasst am: 14.10.2004, 15:30    Titel: Antworten mit Zitat
wenn du meinst rey... dann kommt halt kein semikolon an den abschluss von ner dbabfrage...

nanos: des auslesen klappt dann jetzt oder wie?

suchma nach
Code:
$sql = mysql_query("INSERT INTO 'aboutme' ('id','name') VALUES ('','$name');");

und ersetz des durch
Code:
$sql = mysql_query("INSERT INTO `aboutme` (id, name) VALUES('', $name);");
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nanos
Mitglied
Mitglied


Angemeldet: 04.06.2004
Beiträge: 1752


BeitragVerfasst am: 14.10.2004, 15:51    Titel: Antworten mit Zitat
da sich noch keine daten in aboutme befinden kann ich schlecht beurteilen ob da etwas ausgelesen wird Winken jedenfalls wird keine fehlermeldung mehr ausgegeben.. aber das eintragen klappt auch nicht wenn ich es so ändere wie du gesagt hast.. es kommt wieder

Es ist ein Fehler aufgetreten! Einträge konnten nicht vorgenommen werden!

Traurig
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
elite
Mitglied
Mitglied


Angemeldet: 20.07.2004
Beiträge: 1005

Interessen: Coding, DLRG, Radsport

BeitragVerfasst am: 15.10.2004, 12:26    Titel: Antworten mit Zitat
Schreib es mal mit Hilfe von Variablen:

Zitat:

$query = "INSERT INTO aboutme(id, name) VALUES('', '$name')";
mysql_query($query);


Und dann vielleicht noch die Überprüfung:

Zitat:

if($query){
echo "Daten erfolgreich eingetragen";
} else{
echo "Fehler beim Eintragen der Daten!";
}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
ShortY
Mitglied
Mitglied


Angemeldet: 04.06.2004
Beiträge: 556
Wohnort: Herdorf
Interessen: Glaube, MTB, klettern, Musik(hören und machen), Computer

BeitragVerfasst am: 15.10.2004, 13:24    Titel: Antworten mit Zitat
das mit den variablen sollte im normalfall aber nix ausmachen...

$query = "INSERT INTO aboutme(id, name) VALUES('', '$name')";
mysql_query($query);

is ja prinzipiell genau das selbe wie mysql_query("INSERT INTO aboutme(id, name) VALUES('', $name);");
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nanos
Mitglied
Mitglied


Angemeldet: 04.06.2004
Beiträge: 1752


BeitragVerfasst am: 15.10.2004, 13:28    Titel: Antworten mit Zitat
dankeschön, damit klappts Cool

bedanke mich außerdem bei allen codern die sich netterweise mit dem script auseinandergesetzt haben und versuchten mir zu helfen Smilie
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
elite
Mitglied
Mitglied


Angemeldet: 20.07.2004
Beiträge: 1005

Interessen: Coding, DLRG, Radsport

BeitragVerfasst am: 15.10.2004, 15:01    Titel: Antworten mit Zitat
ShortY hat folgendes geschrieben:
das mit den variablen sollte im normalfall aber nix ausmachen...

$query = "INSERT INTO aboutme(id, name) VALUES('', '$name')";
mysql_query($query);

is ja prinzipiell genau das selbe wie mysql_query("INSERT INTO aboutme(id, name) VALUES('', $name);");



Funktionier aber Smilie - Und ist ( wie ich finde ) übersichtlicher.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
ShortY
Mitglied
Mitglied


Angemeldet: 04.06.2004
Beiträge: 556
Wohnort: Herdorf
Interessen: Glaube, MTB, klettern, Musik(hören und machen), Computer

BeitragVerfasst am: 15.10.2004, 15:08    Titel: Antworten mit Zitat
jo jedem das seine... ich machs lieber so... is halt gewöhnungssache... ich escape allgemein recht eigensinnig... zB das da oben... da muss ich erst für mich "Ordnung" rein bringen ^^
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Dieses Forum ist gesperrt, du kannst keine Beiträge editieren, schreiben oder beantworten.   Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.    9dots.de Webdesign Community Foren-Übersicht -> Coding-Support Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

Board Software by phpBB © 2001, 2005 phpBB Group. Impressum
Dominik Wuttke - Moritz Münchmeyer - Joachim Nagel GbR.
AGB