![]() |
[SQL/PHP] Datenbanken mit PHP verbinden
Hallo, meine Frage ist die Folgende:
ich habe eine mySql datenbank auf dem server und wollte dann per index (01..etc.) daten in die sql datenbank schreiben und wieder lesen! wie stelle ich das am besten an. konkret: ich wollte eine art "Filebase" programmieren, wo beim Aufruf der php datei der ort der datei geholt wird (anhand des übergeben indexes) und dann wird in die tabelle geschrieben, wie oft die datei heruntergeladen wurde (also den wert hochzählen). dies sollte dann auf der seite angezeigt werden! über Hilfe/Links würde ich mich freuen! mfG mirage228 |
also ich versteh leider nciht so direkt, was du machen willst.
Aber kann dir die Seite old.quellcodes.de empfehlen, dort gibt es noch einige Tutorials und hilfreiche PRgramme zum Download. |
soll es auf einer website angezeigt werden oder in einem Programm?
|
@Ignazo: Na, auf der Seite, hat er doch geschrieben.
Aber was ist denn konkret das Problem? Wießt du schon nicht, wie du die Table organisieren sollst? Oder scheitert es an der Abfrage, sprich du weißt nicht, was du 'select'en sollst? Oder hast du jetzt deine Rückgabe vom SELECT-Query und weißt nicht, wie du an die einzelnen Einträge mit PHP zugreifen sollst? Es gibt so viele Sachen... Außerdem wäre es hilfreich zu wissen, welche SQL- und PHP-Erfahrungen du hast, sonst philosophiert man über die verschiedenen Aufgaben und du verstehst nichtmal die Basics. |
also konrket:
wie kann ich mit php auf einen wert in der sql tabelle zugreifen, sprich diesen abrufen? wie kann ich mit php eine tabelle bzw. einen wert in der tabelle erstellen? edit: in php kenn ich mich schon ein bissle aus, aber in SQL und in Datenbanken bin ich noch neu! |
Zitat:
Geh mal auf ![]() Zitat:
|
Na bitte, also SQL von Anfang an.
Zum Abfragen dürfte SELECT der Befehl deiner Wahl sein. Gut erklärtes Anfänger-Tutorial zum Thema SQL findet man ![]() Da ist schonmal alles drin, was du brauchst. Etwas mehr, aber auf Englisch, findet man ![]() Der Befehl mysql_fetch_row ist richtig, praktischer (wegen indiziertem Array) ist aber IMHO mysql_fetch_array. Dann gibt es noch unter ![]() ![]() |
@tomie lie ich wollte es nur wissen da ich mir unsicher war wweil es eigentlich nichts mit delphi zu tun hat aber ich hab jetzt die beschreibung von programmieren allgemein gelesen und weiß jetzt auch das er es "nur" auf eine website bezogen hat.
allerdings kann ich sowas auch das werd ich dann wenn die matura vorbei ist auch mal auf meiner homepage machen |
Hey, ich wollte dir nicht zu nahe treten!
Aber PHP weist schon auf die Benutzung auf einer Homepage hin, und dann auch noch: Zitat:
|
Hi Leute!
Danke für die zahlreiche Hilfe! Hab alles hingekriegt, bis auf eines hier:
Code:
ich kriege folgenden fehler:
<?
MYSQL_CONNECT("localhost","xxx","xxx"); mysql_select_db("xxx"); $result = mysql_query("SELECT * FROM mirage228"); $menge = mysql_num_rows($result); for ($count = 1; $row = mysql_fetch_row($result); ++$count) { if ($count == $_GET['FileID']) { $fid = $row[0]; $fname = $row[1]; $query = "UPDATE mirage228 SET dlcount = dlcount +1 WHERE (SELECT COUNT(id) FROM mirage228) == ".$_GET['FileID']." mysql_query($query); } } header("Location:$fname"); Parse error: parse error, unexpected T_STRING in /www/htdocs/starwars/mirage228/home/file.php on line 16 woran liegt? thx mirage228 |
Beim Überfliegen seh ich den Fehler nicht, aber poste doch mal die Zeile 16.
|
Hab doch was gesehen:
Zitat:
|
hab den strichpunkt gemacht...aber immer noch der gleiche fehler :(
|
Dann zeig mal diese Zeile 16.
|
Jetzt weiß ich, warum ich Syntaxhighlighter so liebe...
Guckst du hier:
Code:
Hinter dem == (zwei '='s? Klappt das?) beendest du den String und fügst mit dem Punkt die FileID hinten dran. Danach wieder ein Punkt und String wieder anfangen. Danach geht's weiter. Entweder, du lässt die Punkte und das Anführungszeichen hinter dem == ganz weg, wenn du PHP4 hast, oder du verzichtest auf den hinteren Punkt und das hintere Anführungszeichen. Das Semikolon muss naütrlich trotzdem noch rein.
$query = "UPDATE mirage228 SET dlcount = dlcount +1 WHERE (SELECT COUNT(id) FROM mirage228) == ".$_GET['FileID']."
Korrekt also:
Code:
$query = "UPDATE mirage228 SET dlcount = dlcount +1 WHERE (SELECT COUNT(id) FROM mirage228) == ".$_GET['FileID'];
|
danke für den typ!
php hat jetzt keine fehler mehr, aber mySQL meckert noch rum: Ungültige Abfrage: You have an error in your SQL syntax near 'SELECT COUNT(fid) FROM mirage228 ) == 1' at line 1 Ich habs auch mit einem = versucht, aber ging auch nicht Ungültige Abfrage: You have an error in your SQL syntax near 'SELECT COUNT(fid) FROM mirage228 ) = 1' at line 1 die 1 am ende ist in diesem fall die übergebene FileID! auch wenn ich FileID nach vorne stelle, kommt der fehler, halt nur ohne die 1 dran! der code für den query:
SQL-Code:
mfG
$query = "UPDATE mirage228 SET dlcount = dlcount + 1 WHERE ".$_GET['FileID']." = ( SELECT COUNT(fid) FROM mirage228 )";
mirage228 |
Welche MySQL-Version benutzt du? Meines Wissens sind verschchtelte Anweisungen erst ab MySQL 4.x möglich.
|
also ich benutz den space von nem kumpel, daher weiss ich es nicht...gibts nen weg, das herauszufinden?
|
Probier mal:
SQL-Code:
SELECT VERSION()
|
als ergebnis kriege ich:
Resource id #2 |
Ich bezweifle, dßa es an der Verison liegt. MySQL 3 ist heute kaum noch verbreitet, vor allem nicht bei professionellen Webhostern.
Zitat:
Ehrlich gesagt macht mir der Query keinen Sinn:
SQL-Code:
Aus der Tabelle mirage228 soll dlcount erhöht werden, wenn die FileID (in dienem Beispiel anscheinend 1) = die Anzahl an Zellen in der Spalte fid ist? Das ergibt absolut keinen logischen Sinn für diese Aufgabe.
$query = "UPDATE mirage228 SET dlcount = dlcount + 1 WHERE ".$_GET['FileID']." = ( SELECT COUNT(fid) FROM mirage228 )";
Ich würde das ganze so lösen:
SQL-Code:
Damit wird die Spalte dlcount um eins erhöht, und zwar in dem Datensatz (=Zeile der Tabelle) wo fid gleich der übergebenen FileID (aus den GET-Variablen) ist. Das entspräche eher meiner Vorstellung eines sinnvollen Counters, ist aber nur ins Blaue geraten, weil ich deine genauen Struktur der Datenbank nicht kenne.
$query = "UPDATE mirage228 SET dlcount = dlcount + 1 WHERE fid = ".$_GET['FileID'];
|
ähm...ich meinte natürlich "Tip" :D
ahso, das mit Count wusste ich net! Aber so, wie du das geschrieben hast, funktioniert es tatsächlich! Vielen vielen Dank! :dancer2: :dancer: mfG mirage228 |
na bitte. dabei kann ich SQL selbst erst seit ein paar Tagen... *g*
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:05 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz