NAS
NAS

PHP datensatz abfrage läuft schief

isyyy

Lieutenant
Registriert
Aug. 2010
Beiträge
672
Guten Mittag zusammen .

Ich fang mal gleich an. (php neuluig nur so am rande).

1. Ich habe eine page zb www.beispiel.de/seite1.php

HTML:
<?php

    include("functions.inc.php");

    mysqlconnect();

    $datensatz = "SELECT titel, name, datum, text FROM einträge WHERE id = 1 ";
    
    

?>

verbindung steht mit der datenbank. ich will von einträge alle atribute welche den primärschlüssel 1 haben SELECTEN und dann als

<?php echo $datensatz["titel"]; ?>
<?php echo $datensatz["name"]; ?>
<?php echo $datensatz["datum"]; ?>
<?php echo $datensatz["text "]; ?>


in der html datei ausgeben.

leider klappt es nicht. habe ich das prinziep falsch verstanden ?!
 
nur weil du in einen String einen SQL-Query schreibst, wird der noch nicht ausgeführt, woher soll PHP wissen, dass dieser spezielle String ein SQL-Query ist und ausgeführt werden soll? ;)

Du musst schon mysql_query() und mysql_fetch_assoc() nehmen.
Zudem fehlt dir ein Unterstrich bei mysql_connect() und die Angabe deiner Datenbankzugangsdaten ;)

http://de3.php.net/manual/en/book.mysql.php
Zu jeder der Funktionen gibt es hier auch Beispiele ;)
 
in meiner include file ist auch kein _ daher ist es ja kein fehler sondern is halt nur anderst geschrieben

Datenbankzugangsdaten alles in der include file die hab ich auserhalb gelagert ;)

siehe : include("functions.inc.php");

meins du so :

HTML:
$ergebnis = mysql_query("SELECT * FROM einträge WHERE id =1");
    while($row = mysql_fetch_object($ergebnis))
 
komischefrage schrieb:
in meiner include file ist auch kein _ daher ist es ja kein fehler sondern is halt nur anderst geschrieben
gut, wenn PHP keine Fehlermeldung bringt wird es wohl gehen, wundert mich.

komischefrage schrieb:
Datenbankzugangsdaten alles in der include file die hab ich auserhalb gelagert ;)

siehe : include("functions.inc.php");
du musst trotzdem die Parameter beim Verbinden zur Datenbank bei der Funktion mysql_connect() angeben. Nur weil du die irgendwo definiert hast, weiß PHP doch nicht, dass die an der Stele genutzt werden sollen ;)

komischefrage schrieb:
meins du so :

HTML:
$ergebnis = mysql_query("SELECT * FROM einträge WHERE id =1");
    while($row = mysql_fetch_object($ergebnis))
ja zum Beispiel so.
Erwartest du nur einen Datensatz benötigst du die Schleife aber nicht
 
PHP:
error_reporting(E_ALL); # Damit alle PHP-Fehlermeldung auch angezeigt werden#
$datensatz = mysql_fetch_assoc(mysql_query("SELECT * FROM einträge WHERE id =1") 
or die (mysql_error()));
print_r($datensatz);
So zum Beispiel bei EINEM Datensatz. Die Rückgabe erfolgt als Array.
 
Zuletzt bearbeitet:
ich würde bei mysql davon abraten tabellen- und spaltennamen mit sonderzeichen (ä) zu verwenden. wenn es da probleme mit dem zeichensatz gibt kommt dann ein tabelle nicht gefunden fehler. beschränke dich lieber auf den ascii charset!
 
Da geb ich IceMatrix recht. Sogar Groß- und Kleinschreibung macht einen Unterschied. Hatte hier in der Arbeit mal eine Datenbank mit ca 50.000 MySQL Tabellen, je Tabelle entsprach ein Formular. Formularname war gleich Tabellennamen. Und UTF-8 war komplett erlaubt als Formularname :). Es ging definitiv. Nur die MySQL mag es wohl nicht mit 50.000 Tabellen umzugehen ohne Relationen... warum nur ....

nox
 
Groß- und Kleinschreibung ist bei MySQL betriebssystemspezifisch ;)

50.000 Tabellen ist schon heftig, für mich klingt das eher nach einem verkorksten Datenbankmodell (:lol:), mit den richtigen Einstellungen (open_tables) sollte das aber auch kein großes Problem mehr darstellen.
 
Groß- und Kleinschreibung ist bei MySQL betriebssystemspezifisch
Daran dachte ich eigentlich. Etwas zu wenig Text geschrieben.

für mich klingt das eher nach einem verkorksten Datenbankmodell
Meine Ironie kam wohl nicht ganz durch. :)

Ob nun open_tables was geholfen hätte, kann ich nicht sagen. Gegen Ende wurde die Datenbank von MySQL Spezialisten gepflegt und man hat mir geraten doch irgendwie die Tabellen loszuwerden damit man die Datenbank auf einen Cluster legen kann und vor allem die Replikations/Backups nicht so langwierig und schwierig sein.

Teilweise waren pro Tabelle mehr als 500 Spalten ... Formular-Änderungen = neue Tabelle

Der "Erfinder" diese Modells hatte schon vor 3 Jahren die Firma verlassen. Und ich durfte mich dann damit herumschlagen :)


Das passiert halt wenn man an Anfang vom Projekt zu wenig Geld hat, und das ganze doch zu einem Erfolg wird. Leider wurde das System 1 Monat nach dem ich die Tabellen endlich umstellen konnte abgeschaltet. Firma wurde von größerer Firma gekauft. Das System von der größeren Firma war/ist schlecht als das "unsere", aber das spielte dann keine Rolle mehr. Eigentlich schade. Wäre interessant gewesen wie weit das noch skaliert hätte. Es kamen täglich 5k-10k neue Datensätze.

Gruß
nox
 
Zurück
Oben