mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Mo 05.12.2016 13:57 Benutzername: Passwort: Auto-Login

Thema: Ich benötige eine knackige SQL Befehlskette, mit der man vom 05.09.2006


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> Ich benötige eine knackige SQL Befehlskette, mit der man
Seite: Zurück  1, 2
Autor Nachricht
m
Moderator

Dabei seit: 18.11.2004
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Mi 06.09.2006 10:01
Titel

Antworten mit Zitat Zum Seitenanfang

Du bist nicht wirklich an einer Lösung interessiert oder?

m hat geschrieben:
Code:
mysql> create table changenumber (id int(11) auto_increment primary key, n int(11));
Query OK, 0 rows affected (0.13 sec)

mysql> insert into changenumber set n=2;
Query OK, 1 row affected (0.05 sec)

mysql> insert into changenumber set n=3;
Query OK, 1 row affected (0.03 sec)

mysql> select * from changenumber;
+----+------+
| id | n    |
+----+------+
|  1 |    2 |
|  2 |    3 |
+----+------+
2 rows in set (0.00 sec)

mysql> update changenumber
    ->   set n = if (n=2,3,2)
    ->   where n=2 || n=3;
Query OK, 2 rows affected (0.05 sec)
Rows matched: 2  Changed: 2  Warnings: 0

mysql> select * from changenumber;
+----+------+
| id | n    |
+----+------+
|  1 |    3 |
|  2 |    2 |
+----+------+
2 rows in set (0.00 sec)
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
sunray
Threadersteller

Dabei seit: 11.02.2005
Ort: -
Alter: 54
Geschlecht: Männlich
Verfasst Mi 06.09.2006 15:01
Titel

@ m

Antworten mit Zitat Zum Seitenanfang

m hat geschrieben:
Du bist nicht wirklich an einer Lösung interessiert oder?



hey m,

klar bin ich an einer Lösung interessiert. Danke auch für den Code.
Aber woher weiß dieses Script, um welche Zeile es sich handelt? Kapier ich nicht so ganz. Sorry.



Gruß, sunray
  View user's profile Private Nachricht senden
Anzeige
Anzeige
m
Moderator

Dabei seit: 18.11.2004
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Mi 06.09.2006 15:11
Titel

Antworten mit Zitat Zum Seitenanfang

Ich habe hier jetzt einfach mal ein Beispiel gemacht, so wie du es wolltest, zwei und drei wurden gewechselt. Natürlich musst du das in Variablen übergeben. Wo hängst denn? Hast du schon etwas, zeig doch einfach mal wie dass bei dir im genauen aussieht.


Code:
<a href="script.php?n=2">ändern</a>


Code:
$n = $_GET['n'];
            
$down = $_GET['n']+1;
               
            
$sql =   "UPDATE
            changenumber
         SET                 
            n = if (n=".$n.",".$down.",".$n.")
         WHERE
            n = '".$n."' || n = '".$down."'
         ";


So wird n=2 übergeben und in n=3 geändert (Zeile1), im gegenzug wird n=3 zu n=2 (Zeile2).

Ist ungetestet, sollte aber funktionieren.


Zuletzt bearbeitet von m am Mi 06.09.2006 15:28, insgesamt 5-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
sunray
Threadersteller

Dabei seit: 11.02.2005
Ort: -
Alter: 54
Geschlecht: Männlich
Verfasst Mi 06.09.2006 15:44
Titel

danke m

Antworten mit Zitat Zum Seitenanfang

danke m,

so sieht's bei mir gerade aus
-----------
$sql = ("SELECT ArtikelPos FROM BoulevardArtikel WHERE ArtikelPos > (". $pos .") ORDER BY ArtikelPos ASC limit 1");

$query = mysql_fetch_array(mysql_query($sql));
$sid_1 = $pos;
$sid_2 = $query["ArtikelPos"];

$eqivalent = $sid_1 + $sid_2;

$sql = ("UPDATE BoulevardArtikel SET ArtikelPos = (". $eqivalent ." - ". $pos .") WHERE ArtikelPos in (". $sid_1 .", ". $sid_2 .")");
$query = mysql_query($sql);
}
----------------------------------
Klappt nur zum Teil. Setzt z.B. 3 auf 4, aber nicht gleichzeitig die 4 auf 3.

gruß,
sunray


m hat geschrieben:
Ich habe hier jetzt einfach mal ein Beispiel gemacht, so wie du es wolltest, zwei und drei wurden gewechselt. Natürlich musst du das in Variablen übergeben. Wo hängst denn? Hast du schon etwas, zeig doch einfach mal wie dass bei dir im genauen aussieht.


Code:
<a href="script.php?n=2">ändern</a>


Code:
$n = $_GET['n'];
            
$down = $_GET['n']+1;
               
            
$sql =   "UPDATE
            changenumber
         SET                 
            n = if (n=".$n.",".$down.",".$n.")
         WHERE
            n = '".$n."' || n = '".$down."'
         ";


So wird n=2 übergeben und in n=3 geändert (Zeile1), im gegenzug wird n=3 zu n=2 (Zeile2).

Ist ungetestet, sollte aber funktionieren.
  View user's profile Private Nachricht senden
sunray
Threadersteller

Dabei seit: 11.02.2005
Ort: -
Alter: 54
Geschlecht: Männlich
Verfasst Mi 06.09.2006 15:54
Titel

nochmal danke an m und pRiMUS

Antworten mit Zitat Zum Seitenanfang

danke jungs jetzt gehts


$sql = ("UPDATE BoulevardArtikel SET ArtikelPos = (". $eqivalent ." - ". $pos .") WHERE ArtikelPos in (". $sid_1 .", ". $sid_2 .")");

das rot markierte musste in diesem Fall ArtikelPos heißen. Jetzt klappts.

vielen dank für den support
gruß, sunray
  View user's profile Private Nachricht senden
ced

Dabei seit: 28.09.2006
Ort: R-Village
Alter: 29
Geschlecht: Männlich
Verfasst Do 28.09.2006 14:25
Titel

meine situation

Antworten mit Zitat Zum Seitenanfang

ich bin zwar schon weiter gekommen, doch es funktioniert nicht ganz...ich bin nämlich nur lehrling und muss unbedingt dieses script bis montag haben * Keine Ahnung... *

changepos-datei:
Code:
<?php
   // einlesen der Einstellungen
   include "config.php";
{
$sql = ("SELECT id, title, prio FROM menu ORDER BY prio desc");
$query = mysql_fetch_array(mysql_query($sql));
}
{
$prio_1 = $pos;
$prio_2 = $query["prio"];

$eqivalent = $prio_1 + $prio_2;

$sql = ("UPDATE menu SET prio = (". $eqivalent ." - prio) WHERE prio in (". $prio_1 .", ". $prio_2 .")");
$query = mysql_query($sql);
//while($row = mysql_fetch_array($query));
}

//function shuffle($direction)}
{
if ($direction == "up") $sql = ("SELECT id FROM menu WHERE id ORDER BY prio DESC limit 1");
else $sql = ("SELECT id FROM menu WHERE id ORDER BY prio ASC limit 1");

$sql = ("UPDATE menu SET id = (". $eqivalent ." - id) WHERE id in (". $prio_1 .", ". $prio_2 .")");
$query = mysql_query($sql);
   }
{
$n = $_GET['prio_1'];
$up = $_GET['prio_1']-1;
$down = $_GET['prio_1']+1;
$sql =   "UPDATE prio SET n = if (n=".$n.",".$down.",".$up.") WHERE  n = '".$up."' || n = '".$down."'";
}
?>



index-datei:
Code:
<html>
<body>

<?php
   // einlesen der Einstellungen
   include "config.php";
   
   // einlesen des Menüs
   include "menu.php";
?>
</body>
</html>



config-datei:
Code:
<?php

$MYSQL_HOST = "localhost";
   $MYSQL_USER = "root";
   $MYSQL_PW = "";
   $MYSQL_DB = "phptest";

   $conn = mysql_connect($MYSQL_HOST, $MYSQL_USER, $MYSQL_PW) OR die("cannot connect to the database") AND exit();
   mysql_select_db($MYSQL_DB, $conn) OR die("cannot choose the database") AND exit();
   
   
   ?>



menu-datei:
Code:
<?php

// Links dieser Seite, werden aus der DB ausgelesen
$sql = "SELECT title, id, prio FROM menu ORDER BY prio asc";
   $query = mysql_query($sql);
   while($row = mysql_fetch_array($query))
{
echo "<li>
         <span class=\"".$style."\">\n";
         echo "   <a href=\"".PATH."".$row["id"]."/\">".$row["title"]."</a>&nbsp;\n";
         echo "   <a href=\"\"><img src=\"icons/side.gif\" alt=\"Side UpnDown\" title=\"Move Top <-> Side\"></a>\n";
         echo "   <a href=\"changepos.php?$down\"><img src=\"icons/down.gif\" alt=\"Side UpnDown\" title=\"Move Top <-> Side\"></a>\n";
         echo "   <a href=\"changepos.php?$up\"><img src=\"icons/up.gif\" alt=\"Side UpnDown\" title=\"Move Top <-> Side\"></a>\n";
   }
   echo "</li>\n";


?>



ich wäre sehr froh, wenn mir da jemand einen guten tipp oder so geben könnte!

grüsse

ced!
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
 
Ähnliche Themen [SQL] Wie 6 Ergebnisse anzeigen ohne ID / andere SQL-Fragen
sql problem..
SQL Abfrage
[php] Warum SQL?
SQL-Syntax
SQL mal wieder
Neues Thema eröffnen   Neue Antwort erstellen Seite: Zurück  1, 2
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.