PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ACCESS Sql Code VS. MySQL Code oder wie lasse ich M$ für mich arbeiten?



Gutschy
26-05-2004, 11:53
Hi,

arbeite mich gerade in PHP und MySQL ein, hab aber früher ein bisschen mit Access rumgemacht und komme natürlich darum mir der IDE ganz gut zurecht.

Das der SQL-Code von Access mit Vorsicht zu geniessen ist hab ich schon mal eher gelesen, trotzdem fände ich das Praktisch wenn mir Access einen Teil der Tipperei abnehmen könnte, nur leider kann ich noch sehr schlecht Beurteilen wo Access sein ganz eigenes Ding macht?

Hier mal so ein Beispiel das für mich wie ganz normales SQL aussieht, aber von MySQL nicht geschluckt wird.




$sql="SELECT artikelkl.NUMMER, artikelkl.ARTIKEL, artikelkl.PREIS_STCK, artikelkl.BRUTTO,";
$sql.="adressenkl.KUNDE, adressenkl.ANREDE, adressenkl.KENNUNG, adressenkl.VORNAME, adressenkl.NAME";
$sql.="FROM adressenkl RIGHT JOIN artikelkl ON adressenkl.KUNDE = artikelkl.LIEFERANT";
$sql."WHERE (((artikelkl.ARTIKEL) Like "*EPSON*"))";


Was die Schreibweisen der Felder angeht bin ich mir ziemlich sich das die so korrekt ist. Ausserdem soll ist glaub ich die Schreibweise egal, oder? Weil ja MySQL wenn auch unter Windows. Aber abgesehen davon könnte ich die Frage auch in einem Windows Forum posten, ist eigentlich hier mehr so die Macht der Gewohnheit.:p

ThorstenS
26-05-2004, 12:08
Wenn du es in Access besser programmieren kannst, dann tu das einfach :)
Mittels http://www.fabforce.net/dbdesigner4/ kannst du dann deine mdb umwandeln.

Mir gefällt das tool super gut. Um dein Problem zu lösen, müßte ich mehr Zeit investieren, als ich grad habe - sry

Gaert
26-05-2004, 12:17
Das ist Sowohl ein PHP, als auch ein MySQL <-> Access Kompatibilitätsproblem:

Schreibe es so:



$sql="SELECT artikelkl.NUMMER, artikelkl.ARTIKEL, artikelkl.PREIS_STCK, artikelkl.BRUTTO,";
$sql.="adressenkl.KUNDE, adressenkl.ANREDE, adressenkl.KENNUNG, adressenkl.VORNAME, adressenkl.NAME";
$sql.="FROM adressenkl RIGHT JOIN artikelkl ON adressenkl.KUNDE = artikelkl.LIEFERANT";
$sql."WHERE artikelkl.ARTIKEL Like '%EPSON%'";

Gutschy
26-05-2004, 15:24
@Thorsten danke für den Tipp mit dem DBDesigner, leider komme ich mit dem Teil auf die Schnelle nicht ganz so zurecht, gerade wenn es darum geht den SQL-Code zu kreiren, aber vielleicht steig ich da noch hinter.


@Gaert, dein Vorschlag hat die Fehlermeldung an sich kaum verändert:

< You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'RIGHT JOIN artikelkl ON adressenkl.KUNDE = artikelkl.LIEFERANT

Würde es was bringen wenn ich "mysql_errno()" und "mysql_error()" als Fehlermelder ins Skript einbaue? Was ich aber leider schon ohne Erfolg probiert habe. Vielleicht könntest du ja für mich..... ich mein wenn es dir nichts ausmacht....:D



<head>
<title>checkV3</title>
<meta name="author" content="Michael">
<meta name="generator" content="tsWebEditor (tswebeditor.net.tc - www.tswebeditor.tk)">
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">
<

<?php
$artikel=$HTTP_POST_VARS['artikel'];
include("funk.php");
include("verbind.php");




$sql="SELECT artikelkl.NUMMER, artikelkl.ARTIKEL, artikelkl.PREIS_STCK, artikelkl.BRUTTO,";
$sql.="adressenkl.KUNDE, adressenkl.ANREDE, adressenkl.KENNUNG, adressenkl.VORNAME, adressenkl.NAME";
$sql.="FROM adressenkl RIGHT JOIN artikelkl ON adressenkl.KUNDE = artikelkl.LIEFERANT ";
$sql.="WHERE artikelkl.ARTIKEL Like '$artikel'";


if ($res=send_sql($db,$sql)) {
echo "Abfrage: <br> $sql"; }
tab_out($res);


if ($res=send_sql($db,$sql)) {
echo "SQL-Kommando wurde ausgeführt";
}

?>
<br>
<a href="suchlieferantV3.html">Neue Suche Verion 2.</a><br><br>
<a href="menue.html">Zur&uuml;ck zur Auswahl</a>
</body>
</html>

Gaert
26-05-2004, 15:38
Also auf den ersten Blick sehe ich da nur, dass ein Leerzeichen vor FROM fehlt.
Kleiner Tip: mach mal ein echo $sql und teste das mal solange mit phpMyAdmin aus bis es funktioniert.
Ein Blick ins Manual schadet auch nicht --> http://www.mysql.com/documentation

Übrigens versteh ich auch nicht ganz, warum du das Query zweimal ausführst...

Schönen Gruß,

Gaert

Gutschy
27-05-2004, 10:28
So, hab es dann auch geschafft.

@Geart, kommischerweise läuft es jetzt mit dem Code, kann eigentlich nur vom Browser Cache ausgetrickst worden sein, wobei ich das aber für sehr unwahrscheinlich halte, hm.. naja..

Öhm, warum ich das Query zweimal ausführe, keine Ahnung, steht da so....:cool:

@Claudine, super vielen Dank für die vielen Vorschläge, wobei ich mit dem Umsetzen wohl ein wenig Zeit brauche. Aber das mit dem langsam Aufbauen war dann wohl schon Zielführend.

Zu Punkt 6: Natürlich arbeite ich mit einem Formular, läuft auch ganz gut. Was die Volltextsuche angeht hab ich das jetzt mit "MATCH AGAINST" gelößt, klappt einwandfrei für alle Schreibweisen.




$sql="SELECT artikelkl.NUMMER, artikelkl.ARTIKEL, artikelkl.PREIS_STCK, artikelkl.BRUTTO,";
$sql.="adressenkl.KUNDE, adressenkl.ANREDE, adressenkl.KENNUNG, adressenkl.VORNAME, adressenkl.NAME ";
$sql.="FROM adressenkl RIGHT JOIN artikelkl ON adressenkl.KUNDE = artikelkl.LIEFERANT ";
$sql.="WHERE MATCH (artikel) AGAINST('+$artikel' IN BOOLEAN MODE)";

Gaert
27-05-2004, 15:29
Original geschrieben von Gutschy
Öhm, warum ich das Query zweimal ausführe, keine Ahnung, steht da so....:cool:

Brutaler Schwachsinn... :rolleyes:

Du führst etwas aus, und danach führst dus nochmal aus, um zu gucken obs das erste mal funktioniert hat!