Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
MySQL Prob [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-webhosting
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
MySQL Prob


 
Hazzardous
21-07-2004, 11:43 
 
Hallo,

das folgende Skript wird mit Variablen gefüttert. Es ist ein Teil einer Sortierfunktion. Allerdings funktioniert es grade irgendwie nicht. Darum habe ich mal die "OR die...." angehängt. Es hakt sich zwar das Script auf, allerdings wird mir keine Fehlermeldeung ausgegeben.

Könntet ihr mal einen Blick drauf werfen?


if($csort_up) {
$sql_csort = "SELECT menusort FROM content
WHERE menusort < '$id' AND
status = 'subcategory' AND
m = '$valm'
ORDER BY menusort DESC LIMIT 1;";
$result_csort = mysql_query($sql_csort) OR die(mysql_error());
$row_csort = mysql_fetch_assoc($result_csort) OR die(mysql_error());
$sortchange = $row_csort["menusort"];
echo $sortchange;
$sql_csort_get_id_id = "SELECT id
FROM content
WHERE menusort = '$id' AND
status = 'subcategory' AND
m = '$valm'
ORDER BY id DESC LIMIT 1;";
$sql_csort_get_id_sortchange = "SELECT id
FROM content
WHERE menusort = '$sortchange' AND
status = 'category' AND
m = '$valm'
ORDER BY id DESC LIMIT 1;";
$result_csort_get_id_id = mysql_query($sql_csort_get_id_id)
OR die(mysql_error());
$result_csort_get_id_sortchange = mysql_query($sql_csort_get_id_sortchange)
OR die(mysql_error());
$row_csort_get_id_id = mysql_fetch_assoc($result_csort_get_id_id)
OR die(mysql_error());
$row_csort_get_id_sortchange = mysql_fetch_assoc($result_csort_get_id_sortchange)
OR die(mysql_error());
$idsort = $row_csort_get_id_id["id"];
$msort = $row_csort_get_id_sortchange["id"];
$sql_sort_entry_up2 = "UPDATE content SET
menusort='$sortchange'
WHERE id = '$idsort';";
$sql_sort_entry_up1 = "UPDATE content
SET menusort='$id'
WHERE id = '$msort';";
mysql_query($sql_sort_entry_up2) OR die(mysql_error());
mysql_query($sql_sort_entry_up1) OR die(mysql_error());
}


Das echo $sortchange wird schon nicht mehr angezeigt...


Schreibe 1000 mal "Ich will nie wieder so lange Zeilen posten"

 
Big Chief
21-07-2004, 11:48 
 
Es wird keinerlei Fehlermeldung ausgegeben, sondern "nur" die Variable ist leer?

Wenn dem so ist, überprüf am besten mal die Query indem du sie direkt in PMA ausführst (nat. für die Vars die gleichen Werte einsetzen wie beim Funktionsaufruf) und schau ob überhaupt ein Datensatz gefunden wird.

 
Hazzardous
21-07-2004, 13:14 
 
Egal was in dem "echo" steht, es kommt garnix bei raus. Kann auch text stehen. An der stelle passiert eben "OR die(..."

 
mrhappiness
21-07-2004, 14:20 
 
if($csort_up) {
echo 'Kontrollausgabe<br />';
echo 'SQL:';
echo $sql_csort = "SELECT ...";
echo '<br />';
$result_csort = mysql_query($sql_csort) OR die(mysql_error());
$row_csort = mysql_fetch_assoc($result_csort) OR die(mysql_error());
echo $sortchange = $row_csort["menusort"];
# Rest
}jetzt sollte auf jeden fall was ausgegeben werden, es sei denn, die bedingung in deinem if ist nicht erfüllt

einen fehler in deinem select hab ich schon, aber den verrat ich dir nicht, das findest du schon raus, wenn du die fehlermeldung liest;

 
MaxP0W3R
21-07-2004, 14:26 
 
hier querys ohne ;

 
Hazzardous
22-07-2004, 11:11 
 
Hey,

ich habe nun einiges versucht. Aber:

Ich bekomme keine Fehlermeldung,
und
Eingetragen wird auch nix.

Was hast du denn gefunden?

 
wahsaga
22-07-2004, 11:32 
 
Original geschrieben von Hazzardous
ich habe nun einiges versucht.
aha, einiges ...

 
Hazzardous
22-07-2004, 13:09 
 
Original geschrieben von wahsaga
aha, einiges ...

Wieder ein Kommentar, den du dir sowas von hättest sparen können.
hf

 
wahsaga
22-07-2004, 13:45 
 
du merkbefreiter !$&% checkst mal wieder gar nicht, worauf ich hinaus will.

sag uns doch endlich mal, was du versucht hast, und mit welchem ergebnis.

z.b. der vorschlag von big chief - du willst mir doch wohl nicht sagen, dass dabei überhaupt keine erkenntnis herausspringt, die weiterhelfen könnte?


aber vielleicht sollte man es sich in zukunft generell sparen, so einem lernunfähigen dummbeutel wie dir überhaupt noch weiterhelfen zu wollen.

bevor jetzt wieder die "nicht jeder wird als PHP-profi geboren"-leier kommt:
das "lernunfähig" ist nicht auf deine programmierkenntnisse bezogen, sondern darauf, dass du immer noch nicht begriffen hast, wie man eine halbwegs ordentliche problembeschreibung postet.

immer nur irgendso ein scheiß á la "hab einiges probiert" (das kann auch in der nase bohren gewesen sein, woher sollen wir beurteilen können, ob deine versuche irgendwelche erfolgsaussichten hatten?), oder "das funzt nicht!!!1".

du solltest langsam mal begreifen, dass es unglaublich schwer ist leuten weiterzuhelfen, die unfähig oder unwillens sind, ein mindestmaß an brauchbaren informationen herauszurücken.

 
Hazzardous
23-07-2004, 09:01 
 
Alle querys. Gecheckt.
Veriablenübergabe. Gecheckt.
Syntax. Imho i.o.

eben alles was ich so checken kann habe ich versucht. Das was man eben macht wenn man Fehler sucht. Und da keine Fehlermeldung kommt. (!! Auch bei Big Chiefs Methode, zumindest bei mir nicht!!) liegt der Fehler wohl ausserhalb meines PHP Wissens.


PS:

Deine Persönlichen Beleidigungen sind gut.
... für einen 4 Jährigen. So ab jetzt stehst du auf meiner Ignorier-Liste, da von dir weder kritik noch sonst was kommt, sondern nur dumme Sprüche und Beleidigungen. Nun weiß ich auch wie DU 7000+ Posts bekommst. ...Und das von einem Mod...

 
derHund
23-07-2004, 14:03 
 
jetzt sollte auf jeden fall was ausgegeben werden, es sei denn, die bedingung in deinem if ist nicht erfüllthast du das mal überprüft?

 
Hazzardous
23-07-2004, 14:18 
 
Ja. habe ich. Bedingung ist erfüllt.

 
Hazzardous
26-07-2004, 13:37 
 
So ich habe nun alle Sachen versucht, die mir angeboten wurden.

Die Bedinung ist erfüllt.
Mit diemysql error bekomme ich keine Fehlermeldung.
Variablen werden korrekt übergeben
Einen Syntaxfehler kann ich nicht finden.

:[
Hier nochmal der Code.


if($csort_up) {
$sql_csort = "SELECT menusort FROM content WHERE menusort < '$id' AND status = 'subcategory' AND m = '$valm' ORDER BY menusort DESC LIMIT 1;";
$result_csort = mysql_query($sql_csort) OR die(mysql_error());
$row_csort = mysql_fetch_assoc($result_csort) OR die(mysql_error());
$sortchange = $row_csort["menusort"];
echo $sortchange;
$sql_csort_get_id_id = "SELECT id FROM content WHERE menusort = '$id' AND status = 'subcategory' AND m = '$valm' ORDER BY id DESC LIMIT 1;";
$sql_csort_get_id_sortchange = "SELECT id FROM content WHERE menusort = '$sortchange' AND status = 'category' AND m = '$valm' ORDER BY id DESC LIMIT 1;";
$result_csort_get_id_id = mysql_query($sql_csort_get_id_id) OR die(mysql_error());
$result_csort_get_id_sortchange = mysql_query($sql_csort_get_id_sortchange) OR die(mysql_error());
$row_csort_get_id_id = mysql_fetch_assoc($result_csort_get_id_id) OR die(mysql_error());
$row_csort_get_id_sortchange = mysql_fetch_assoc($result_csort_get_id_sortchange) OR die(mysql_error());
$idsort = $row_csort_get_id_id["id"];
$msort = $row_csort_get_id_sortchange["id"];
$sql_sort_entry_up2 = "UPDATE content SET menusort='$sortchange' WHERE id = '$idsort';";
$sql_sort_entry_up1 = "UPDATE content SET menusort='$id' WHERE id = '$msort';";
mysql_query($sql_sort_entry_up2) OR die(mysql_error());
mysql_query($sql_sort_entry_up1) OR die(mysql_error());
}

 
derHund
26-07-2004, 13:49 
 
if($csort_up) {
echo $sql_csort = "SELECT menusort FROM content WHERE menusort < '$id' AND status = 'subcategory' AND m = '$valm' ORDER BY menusort DESC LIMIT 1;";
$result_csort = mysql_query($sql_csort) OR die(mysql_error());
$row_csort = mysql_fetch_assoc($result_csort) OR die(mysql_error());
print_r($row_csort);
$sortchange = $row_csort["menusort"];
echo $sortchange;
usw...
oder weißt du, an welcher stelle abgebrochen wird?

 
Hazzardous
26-07-2004, 14:05 
 
gleich im ersten Fall wird das Print nicht mehr ausgegeben.

 
Quickborner
26-07-2004, 14:51 
 
Hallo,

mal ein paar Fragen:

echo $sql_csort = "SELECT ...";

dies wird höchstens true liefern, da es eine Zuweisung ist.
Schreib einmal nach $sql_csort="..:"; echo $sql_csort;

Hast Du wirklich eine Spalte 'm' in der Tabelle ?

MySql toleriert es zwar, aber es ist nicht konform, wenn Du nur
'menusort' selektierst, aber in der Where-Klausel Bezug auf andere
Spalten nimmst.

Prüfe doch spaßeshalber, was der mysql-Optimizer aus der Query macht,
mit
$tempsql= mysql_query("EXPLAIN SELECT ....");
$row=mysql_fetch_array($tempsql);
echo $row[0];

nice day
Quickborner

 
Hazzardous
27-07-2004, 14:36 
 
Hi,

danke für die Hilfe.

Ich habe nun die fehlenden selections im zusammenhang mit dem where clauseln hinzugefügt. Leider ohne Erforlg.

$tempsql= mysql_query("EXPLAIN SELECT menusort, status, m FROM content WHERE menusort < '$id' AND status = 'subcategory' AND m = '$valm' ORDER BY menusort DESC LIMIT 1;");
$row=mysql_fetch_array($tempsql);
echo 'EchoRow='.$row[0];



Dort bekomme ich dann:

EchoRow=content

 
Hazzardous
27-07-2004, 15:06 
 
Ich habe nochmal einnen Funktionierenden Code, dieser wird bei der Sortierung der Hauptmenüs verwendet. Er funktioniert tadellos.

Im Submenü Skript sind nur 2 änderungen: Die Zuweisung zu der Hauptkategorie durch WHERE m = '$valm' und Status = 'subkategorie' ansonsten sind die Skripte identisch.

Hier das funktionierende:


if($_POST["sortcode"])
{
$id = $_POST["sortcode"];
if($csort_up) {
$sql_csort = "SELECT menusort FROM content WHERE menusort < '$id' AND status = 'category' ORDER BY menusort DESC LIMIT 1;";
$result_csort = mysql_query($sql_csort);
$row_csort = mysql_fetch_assoc($result_csort);
$sortchange = $row_csort["menusort"];
$sql_csort_get_id_id = "SELECT id FROM content WHERE menusort = '$id' AND status = 'category' ORDER BY id DESC LIMIT 1;";
$sql_csort_get_id_sortchange = "SELECT id FROM content WHERE menusort = '$sortchange' AND status = 'category' ORDER BY id DESC LIMIT 1;";
$result_csort_get_id_id = mysql_query($sql_csort_get_id_id);
$result_csort_get_id_sortchange = mysql_query($sql_csort_get_id_sortchange);
$row_csort_get_id_id = mysql_fetch_assoc($result_csort_get_id_id);
$row_csort_get_id_sortchange = mysql_fetch_assoc($result_csort_get_id_sortchange);
$idsort = $row_csort_get_id_id["id"];
$msort = $row_csort_get_id_sortchange["id"];
$sql_sort_entry_up2 = "UPDATE content SET menusort='$sortchange' WHERE id = '$idsort';";
$sql_sort_entry_up1 = "UPDATE content SET menusort='$id' WHERE id = '$msort';";
mysql_query($sql_sort_entry_up2);
mysql_query($sql_sort_entry_up1);
}



Hier das nicht funktionierende:


if($_POST["sortcode"])
{
$id = $_POST["sortcode"];
echo 'id='.$id;
echo 'value m='.$valm;
if($csort_up) {

$sql_csort = "SELECT menusort, status, m FROM content WHERE menusort < '$id' AND status = 'subcategory' AND m = '$valm' ORDER BY menusort DESC LIMIT 1;";
$result_csort = mysql_query($sql_csort) OR die(mysql_error());
$row_csort = mysql_fetch_assoc($result_csort) OR die(mysql_error());
$sortchange = $row_csort["menusort"];
$sql_csort_get_id_id = "SELECT id, menusort, m FROM content WHERE menusort = '$id' AND status = 'subcategory' AND m = '$valm' ORDER BY id DESC LIMIT 1;";
$sql_csort_get_id_sortchange = "SELECT id, menusort, status, m FROM content WHERE menusort = '$sortchange' AND status = 'category' AND m = '$valm' ORDER BY id DESC LIMIT 1;";
$result_csort_get_id_id = mysql_query($sql_csort_get_id_id) OR die(mysql_error());
$result_csort_get_id_sortchange = mysql_query($sql_csort_get_id_sortchange) OR die(mysql_error());
$row_csort_get_id_id = mysql_fetch_assoc($result_csort_get_id_id) OR die(mysql_error());
$row_csort_get_id_sortchange = mysql_fetch_assoc($result_csort_get_id_sortchange) OR die(mysql_error());
$idsort = $row_csort_get_id_id["id"];
$msort = $row_csort_get_id_sortchange["id"];
$sql_sort_entry_up2 = "UPDATE content SET menusort='$sortchange' WHERE id = '$idsort';";
$sql_sort_entry_up1 = "UPDATE content SET menusort='$id' WHERE id = '$msort';";
mysql_query($sql_sort_entry_up2) OR die(mysql_error());
mysql_query($sql_sort_entry_up1) OR die(mysql_error());
}

 
derHund
27-07-2004, 15:21 
 
mal ein paar Fragen:

echo $sql_csort = "SELECT ...";

dies wird höchstens true liefern, da es eine Zuweisung ist.
hast du es mal ausprobiert?

 
Hazzardous
27-07-2004, 15:59 
 
Jo, kommt nix bei rum. ;(

 
derHund
27-07-2004, 16:16 
 
Original geschrieben von Hazzardous
Jo, kommt nix bei rum. ;( ich meinte den poster :rolleyes:

jetzt mein ich dich: wenn du nicht mal in der lage, die zeile zu finden, wo der/ein fehler auftritt :dontknow: es wird sich bestimmt jemand auf deinen total chaotischen code stürzen.

 
Hazzardous
27-07-2004, 19:41 
 
Original geschrieben von derHund
ich meinte den poster :rolleyes:

jetzt mein ich dich: wenn du nicht mal in der lage, die zeile zu finden, wo der/ein fehler auftritt :dontknow: es wird sich bestimmt jemand auf deinen total chaotischen code stürzen.

Ich habe jede Variable per echo ausgegeben. Jedes array. Einfach alles. Ich mach seit 4 Tagen nichts anderes als zu versuchen rauszubekommen wo der Fehler liegt. Und der code ist nicht chaotisch. Genie und Wahnsinn liegen dicht beieinander ;)

Ich verstehe nur nicht warum es bei dem funktionierenden Code klappt. Ich bin momentan, was dieses Stück PHP betrifft wie vernagelt und versteh die Welt nicht mehr. Und ohne professionelle Hilfe werde ich es kaum schaffen. Denn trotz etlichen versuchen die ich unternommen habe komme ich nicht auf den Fehler.

Trotzdem danke für deine Bemühungen.

Gruß

 
derHund
27-07-2004, 19:54 
 
Hier das funktionierende::rolleyes: das heißt? wie weit läufts korrekt?

- stell error_reporting auf E_ALL!
- laß dir die queries per echo ausgeben ...
- laß das semikolon weg
- teste in php_my_admin o.ä.
- woher kommen die variablen?
...
ich seh noch tausend debug-möglichkeiten ;)

von wegen, der code wäre nicht chaotisch ...


echo $sql_csort = 'SELECT menusort FROM content WHERE menusort < '.$id.' AND status = "category" ORDER BY menusort DESC LIMIT 1';

 
Hazzardous
27-07-2004, 21:39 
 
Original geschrieben von derHund
:rolleyes: das heißt? wie weit läufts korrekt?

- stell error_reporting auf E_ALL!
- laß dir die queries per echo ausgeben ...
- laß das semikolon weg
- teste in php_my_admin o.ä.
- woher kommen die variablen?
...
ich seh noch tausend debug-möglichkeiten ;)

von wegen, der code wäre nicht chaotisch ...


echo $sql_csort = 'SELECT menusort FROM content WHERE menusort < '.$id.' AND status = "category" ORDER BY menusort DESC LIMIT 1';


Das funktionierende läuft komplett durch! Ohne Fehler!

1. error_reporting : Gemacht! Keine Fehlermeldung
2. OR DIE mysql error : An allen Stellen gemacht! Skript hakt sich auf mal weiter vorne mal weiter hinten! Keine Fehlermeldung
3. Querys enthalten soweit das was sie enthalten sollen
4. Mit oder ohne Semikolon, es klappt niccht
5. Die Variablen kommen aus einem Form und werden korrekt übergeben.

:[

 
derHund
27-07-2004, 22:31 
 
Das funktionierende läuft komplett durch! Ohne Fehler!
das rote ist vollständig rot, ohne grün oder blau .... :rolleyes:
3. Querys enthalten soweit das was sie enthalten sollen...

was funktioniert nicht?

stell einfach fest, bis zu welcher zeile sich dein schnipsel so verhält, wie er soll, und finde den fehler ...
und sag nicht, du findest die zeile nicht.

 
Payne_of_Death
27-07-2004, 23:57 
 
ich muss @wahsage Recht geben irgendwo sinnlos.......

Ich begreifs net das Script nach und nach eingrenzen und dann schwupps kommt man zum Fehler. Spontan würde ich zunächst die SQL Statments bei PHPMYADMIN auf Ausgabe und Syntax überprüfen bevor ich an den Code gehe.......


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:46 Uhr.