Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [SQL/PHP] Datenbanken mit PHP verbinden (https://www.delphipraxis.net/4967-%5Bsql-php%5D-datenbanken-mit-php-verbinden.html)

mirage228 18. Mai 2003 19:57


[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

Alexander 18. Mai 2003 20:31

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.

Ignazo 18. Mai 2003 20:53

soll es auf einer website angezeigt werden oder in einem Programm?

tommie-lie 18. Mai 2003 21:41

@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.

mirage228 19. Mai 2003 05:37

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!

Chewie 19. Mai 2003 11:40

Zitat:

Zitat von mirage228
also konrket:

wie kann ich mit php auf einen wert in der sql tabelle zugreifen, sprich diesen abrufen?


Geh mal auf http://www.selfphp.info/ und schau dir die Syntax zu mysql_query und mysql_fetch_row an.

Zitat:

Zitat von mirage228
wie kann ich mit php eine tabelle bzw. einen wert in der tabelle erstellen?

Du musst den entsprechenden SQL-Befehl mit mysql_query an die Datenbank schicken.

tommie-lie 19. Mai 2003 13:33

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 hier (allerdings nicht ganz aktuell).
Da ist schonmal alles drin, was du brauchst.
Etwas mehr, aber auf Englisch, findet man hier.

Der Befehl mysql_fetch_row ist richtig, praktischer (wegen indiziertem Array) ist aber IMHO mysql_fetch_array.
Dann gibt es noch unter http://www.mysql.com eine vollständigere Dokumentation. Das, was dort die Kommandeeingabe ist, wäre bei PHP dann der Querystring für mysql_query. Ein besser eklärtes PHP-Nachschlagewerk als SelfPHP (das ist IMHO nur als Referenz gut, wenn man schon weiß, was man macht) wäre das offizielle PHP-Manual, zu finden hier.

Ignazo 19. Mai 2003 15:53

@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

tommie-lie 19. Mai 2003 17:32

Hey, ich wollte dir nicht zu nahe treten!
Aber PHP weist schon auf die Benutzung auf einer Homepage hin, und dann auch noch:
Zitat:

Zitat von mirage228
dies sollte dann auf der seite angezeigt werden!

Da kommt man auch unabhängig der gewählten Sparte automatisch drauf, daß die eigene Homepage gemeint ist :mrgreen:

mirage228 19. Mai 2003 19:27

Hi Leute!
Danke für die zahlreiche Hilfe!

Hab alles hingekriegt, bis auf eines hier:

Code:
<?
  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");
ich kriege folgenden fehler:

Parse error: parse error, unexpected T_STRING in /www/htdocs/starwars/mirage228/home/file.php on line 16

woran liegt?

thx

mirage228

Chewie 19. Mai 2003 19:36

Beim Überfliegen seh ich den Fehler nicht, aber poste doch mal die Zeile 16.

Chewie 19. Mai 2003 19:41

Hab doch was gesehen:

Zitat:

Zitat von mirage228
Code:
       $query = "UPDATE mirage228 SET dlcount = dlcount +1 WHERE (SELECT COUNT(id) FROM mirage228) == ".$_GET['FileID']." //<- hier fehlt ein Strichpunkt      
mysql_query($query);


mirage228 19. Mai 2003 20:08

hab den strichpunkt gemacht...aber immer noch der gleiche fehler :(

Chewie 19. Mai 2003 20:44

Dann zeig mal diese Zeile 16.

tommie-lie 19. Mai 2003 21:51

Jetzt weiß ich, warum ich Syntaxhighlighter so liebe...
Guckst du hier:
Code:
$query = "UPDATE mirage228 SET dlcount = dlcount +1 WHERE (SELECT COUNT(id) FROM mirage228) == ".$_GET['FileID']."
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.
Korrekt also:
Code:
$query = "UPDATE mirage228 SET dlcount = dlcount +1 WHERE (SELECT COUNT(id) FROM mirage228) == ".$_GET['FileID'];

mirage228 20. Mai 2003 06:01

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:
$query = "UPDATE mirage228 SET dlcount = dlcount + 1 WHERE ".$_GET['FileID']." = ( SELECT COUNT(fid) FROM mirage228 )";
mfG
mirage228

Chewie 20. Mai 2003 11:09

Welche MySQL-Version benutzt du? Meines Wissens sind verschchtelte Anweisungen erst ab MySQL 4.x möglich.

mirage228 20. Mai 2003 12:25

also ich benutz den space von nem kumpel, daher weiss ich es nicht...gibts nen weg, das herauszufinden?

Chewie 20. Mai 2003 12:50

Probier mal:
SQL-Code:
SELECT VERSION()

mirage228 20. Mai 2003 14:00

als ergebnis kriege ich:

Resource id #2

tommie-lie 20. Mai 2003 15:20

Ich bezweifle, dßa es an der Verison liegt. MySQL 3 ist heute kaum noch verbreitet, vor allem nicht bei professionellen Webhostern.

Zitat:

Zitat von mirage228
danke für den typ!

Welchen typ? *g*

Ehrlich gesagt macht mir der Query keinen Sinn:
SQL-Code:
$query = "UPDATE mirage228 SET dlcount = dlcount + 1 WHERE ".$_GET['FileID']." = ( SELECT COUNT(fid) FROM mirage228 )";
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.
Ich würde das ganze so lösen:
SQL-Code:
$query = "UPDATE mirage228 SET dlcount = dlcount + 1 WHERE fid = ".$_GET['FileID'];
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.

mirage228 20. Mai 2003 17:59

ä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

tommie-lie 20. Mai 2003 18:07

na bitte. dabei kann ich SQL selbst erst seit ein paar Tagen... *g*


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:14 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz