Sql & phpMyAdmin benutzen

Hallo, ich bin gerade dabei mich über eine virtuelle Vorlesung in PHP, mysql und phpMyAdmin einzuarbeiten. Allerdings blicke ich hier nicht mehr durch.

Ich habe über die Vorlesung eine zip.Datei heruntergeladen in der sich ein Ordner „Adressen“ befindet, darin sind die Dateien:
adressen.css
ds_anzeigen.php
ds_bearbeiten.php
ds_hinzufuegen.php
ds_loeschen.php
inc.db_verbindung.php
inc.feedback.php
inc.menue.php
zu finden und ein Ordner „Vorlagen“ in dem die Dateien:
adressen.css
adressen_formular_bearbeiten.htm
adressen_formular_neu.htm
adressen_liste.htm
feedback.htm
zu finden sind.
Ich weiss leider garnicht was ich mit diesen Dateine jetzt anfangen kann. Kann mir da bitte jemand weiterhelfen? Bräuchte dringend Infos dazu, denn ich habe bald eine Prüfung darin abzulegen.

Vielen vielen Dank im Voraus…

mfg
makko

Evtl. bin ich einen Schritt weiter.
Hab jetzt gecheckt, dass ich die Dateien in htdocs verschieben muss.

Wenn ich nun die Datei ds_anzeigen.php öffne bekomme ich folgenden Fehler: Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\adressen\ds_anzeigen.php on line 34

Der code ist der folgende:

<?php // Datenbankverbindung aufbauen
include(‚inc.db_verbindung.php‘);

// Variablen deklarieren
$lfdnr = 0;
$seiteninhalt = „“;
$tabellenanfang = „“;
$tabelleninhalt = „“;
$tabellenende = „“;

// Tabellenfeldbezeichnungen definieren
$tabellenanfang .= „

\n“;
$tabellenanfang .= „\n“;
$tabellenanfang .= " \n";
$tabellenanfang .= " \n";
$tabellenanfang .= „Nr.\n“;
$tabellenanfang .= „Nachname\n“;
$tabellenanfang .= „Vorname\n“;
$tabellenanfang .= „Strasse\n“;
$tabellenanfang .= „PLZ\n“;
$tabellenanfang .= „Ort\n“;
$tabellenanfang .= „Tel 1\n“;
$tabellenanfang .= „Tel 2\n“;
$tabellenanfang .= „eMail\n“;
$tabellenanfang .= „Geburtstag\n“;
$tabellenanfang .= „Bemerkung\n“;
$tabellenanfang .= „\n“;

// Alle Datensätze lesen sortiert nach ‚nachname‘
$db_tabelle = „freunde“;
$query = „select * from $db_tabelle order by nachname asc“;
$rs = mysql_query($query, $conn);
while ($row = mysql_fetch_array($rs))
{
$lfdnr++;
$dsnr = $row[„dsnr“];
$nachname = $row[‚nachname‘];
$vorname = $row[‚vorname‘];
$strasse = $row[‚strasse‘];
$plz = $row[‚plz‘];
$ort = $row[‚ort‘];
$tel1 = $row[‚tel1‘];
$tel2 = $row[‚tel2‘];
$email = $row[‚email‘];
$geburtstag = $row[‚geburtstag‘];
$bemerkung = $row[‚bemerkung‘];

// Datensatz in Tabellenzeile setzen inkl. Bearbeiten und Löschen
$tabelleninhalt .= „\n“;

$tabelleninhalt .= „\n“;
$tabelleninhalt .= „\n“;
$tabelleninhalt .= „\n“;
$tabelleninhalt .= „\n“;
$tabelleninhalt .= „\n“;
$tabelleninhalt .= „\n“;
$tabelleninhalt .= „\n“;
$tabelleninhalt .= „\n“;
$tabelleninhalt .= „\n“;
$tabelleninhalt .= „\n“;
$tabelleninhalt .= „\n“;
$tabelleninhalt .= „\n“;

$tabelleninhalt .= „$lfdnr\n“;
$tabelleninhalt .= „$nachname\n“;
$tabelleninhalt .= „$vorname\n“;
$tabelleninhalt .= „$strasse\n“;
$tabelleninhalt .= „$plz\n“;
$tabelleninhalt .= „$ort\n“;
$tabelleninhalt .= „$tel1\n“;
$tabelleninhalt .= „$tel2\n“;
$tabelleninhalt .= „$email\n“;
$tabelleninhalt .= „$geburtstag\n“;
$tabelleninhalt .= „$bemerkung\n“;

$tabelleninhalt .= „\n“;
}
$tabellenende .= „\n“;
$seiteninhalt = $tabellenanfang.$tabelleninhalt.$tabellenende;

// Seiteninhalt mit Menü über Vorlage anzeigen
include („inc.menue.php“);
$vorlage = „vorlagen/adressen_liste.htm“;
$daten = @implode("",(@file($vorlage)));
$daten = str_replace("%seiteninhalt%",$seiteninhalt,$daten);
$daten = str_replace("%menue%",$menue,$daten);
echo $daten;

// Datenbankverbindung beenden
mysql_close($conn);
?>

nochmals vielen Dank im Voraus

mfg
makko

Hallo makko_1982,

vielleicht solltest Du mal die readme-Datei zu dieser Zip-Datei (kann sich auch im Vorlagen-Skript befinden).

Da der Fehler sich in der Zeile

$query = "select \* from $db\_tabelle order by nachname asc";
$rs = mysql\_query($query, $conn);
while ($row = mysql\_fetch\_array($rs)) /\* Zeile 34 \*/

(also der erste Befehl der auf ein MySQL-Befehl aufsetzt) vermute ich mal zwei Fehlermöglichkeiten

  • Datenverbindung klappt nicht

  • Tabelle freunde existiert nicht

Fall 1) trifft nur zu, wenn in der Datei inc.db_verbindung.php keine saubere Fehlerbehandlung existiert.
Also erstmal ausschlafen, zweitens Datei inc.db_verbindung.php prüfen, ob das richtige Passwort eingetragen ist und drittens phpMyAdmin starten und prüfen, ob in der Datenbank, die in der Datei inc.db_verbindung.php eingetragen ist, auch die Tabelle Freunde existiert. Eventuelle Fehler aus Schritten 2 und 3 in der Datei bereinigen (nachdem gegebenfalls die Demodatenbank eingerichtet wurde) und dann die Datei ds_anzeigen.php nochmals aufrufen.

Ich erspare mir übrigens sämtliche Kommentare über die Sicherheit dieser Anwendung, vielleicht gibt es auch auch noch eine Fortsetzung des Kurses: Wie macht sich meine Applikation sicher.

MfG Georg V.

Da mir per PM inzwischen die Information zugekommen ist, dass die Datenbankverbindung korrekt aufgebaut wird und auch (inzwischen) die Tabelle existiert, schlage ich für die weitere Fehlersuche das Einfügen der folgenden Zeilen vor

$rs = mysql\_query($query, $conn); /\* Zeile 33 \*/
if (!$rs) {
 die ('Abfragefehler:'."
".$query."
".
 mysql\_errno() . ': ' . mysql\_error(). " ")
 ;
}
while ($row = mysql\_fetch\_array($rs)) /\* ehemalige Zeile 34 \*/

Dies kann auch generell nach jedem mysql_query eingebaut werden.

MfG Georg V.

Vielen Dank an alle. Ich konnte das meiste dank eurer Hilfe lösen!!!