id von der Seite und Menü abgleichen

xMiNe

Mitglied
So,
Ich habe ein Php script gebaut das ich Seiten online bearbeiten kann.
Jetzt mache ich das mit dem Menü, er soll gucken ob die selben ids existieren, unter Menü und Seite.

Hier ist der Code:
PHP:
$menue1 = mysql_query("SELECT * FROM Menue ORDER by id");
while($menue2 = mysql_fetch_array($menue1)){ $menue = $menue[id]; } 
$seite1 = mysql_query("SELECT * FROM Seite ORDER by id");
while($seite2 = mysql_fetch_array($seite1)){ $seite = $seite1[id]; } 

if ($seite = $menue) {
echo '<td><a href="index.php?seite=edit_side&action=hinzufuegen_menue&id='.$seite2[id].'"><font color="#FFFFFF">Zum Menü hinzufügen</p></a></td>';
} else {
echo '<td><font color="#FF0000">Ist in Menü</p></td>';
}

also wenn im Menü schon der Link ist soll er sagen "Ist in Menü" und wenn es noch nicht in Menü ist "Zum Menü hinzufügen" mit einer verlinkung. Ich habe das ja schon angefangen nur das klappt nicht.

Schönen Abend noch ich bin jetzt müde gehe gleich schlaffen.
 
Du hast gleich drei grobe Fehler im Code, entferne diese und dein Code läuft wie erwartet. Erstens in den Schleifen: Dadurch das du $menu2 immer neu zuweist wird letztlicht nur das letzte gefundene Element des Arrays verglichen. Willst du das wirklich ? Dann gehört nämlich der Query optimiert.
Zweiter Fehler ist das verwenden von $menue[id] statt $menue['id']. Das erzeugt E_NOTICE, also schalt einmal error_reporting auf E_ALL.
Dritter Fehler ist die Zuweisung in der If-Abfrage. Zuweisungen ergeben immer true, also wird der else Teil nie erreicht.

mfg
nosilume
 
PHP:
<?php
include('../config.php');
$name = $_GET['name']; 
  
$menue1 = mysql_query("SELECT * FROM Menue WHERE `Name` = $name");
while($menue2 = mysql_fetch_array($menue1)){ $men = $menue1['name']; } 

$seite1 = mysql_query("SELECT * FROM Seite WHERE `Name` = $name");
while($seite2 = mysql_fetch_array($seite1)){ $side = $seite1['name']; } 

if ($side = $men) {
echo '<td><a href="index.php?seite=edit_side&action=hinzufuegen_menue&id='.$seite2[id].'"><font color="#FFFFFF">Zum Menü hinzufügen</p></a></td>';
} else {
echo '<td><font color="#FF0000">Ist in Menü</p></td>';
}  
?>
so ich habe den Code bearbeitet. Jetzt geht er auf "Name" nicht mehr auf id, dass finde ich irgendwie logischer. Aber er gibt mir diesen error:

Code:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /srv/www/htdocs/web289/html/HTML/v6/seiten/test.php on line 6

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /srv/www/htdocs/web289/html/HTML/v6/seiten/test.php on line 9
Ist in Menü

DarioFazio
 
PHP:
if ($side = $men) {

Ist immer noch falsch.

Und gib mal [phpf]mysql_error[/phpf] aus.
 
PHP:
if ($side = $men){
was soll ich den dort ändern?

So habe mysql_error hinzugefügt.

PHP:
<?php
include('../config.php');
$name = $_GET['name']; 
  
$menue1 = mysql_query("SELECT * FROM Menue WHERE `Name` = $name");
while($menue2 = mysql_fetch_array($menue1)){ $men = $menue1['name']; } 

$seite1 = mysql_query("SELECT * FROM Seite WHERE `Name` = $name");
while($seite2 = mysql_fetch_array($seite1)){ $side = $seite1['name']; } 

if ($side = $men) {
echo '<td><a href="index.php?seite=edit_side&action=hinzufuegen_menue&id='.$seite2[id].'"><font color="#FFFFFF">Zum Menü hinzufügen</p></a></td>';
} else {
echo '<td><font color="#FF0000">Ist in Menü</p></td>';
} 
mysql_select_db("usr_web289_2");
echo mysql_errno() . ": " . mysql_error(). "\n";

mysql_select_db("usr_web289_2");
mysql_query("SELECT * FROM Menue");
echo mysql_errno() . ": " . mysql_error() . "\n"; 

mysql_select_db("usr_web289_2");
mysql_query("SELECT * FROM Seite");
echo mysql_errno() . ": " . mysql_error() . "\n"; 
?>

Ausgabe
Code:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /srv/www/htdocs/web289/html/HTML/v6/seiten/test.php on line 6

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /srv/www/htdocs/web289/html/HTML/v6/seiten/test.php on line 9
Ist in Menü

0: 0: 0:
 
Du solltest dich wirklich noch einmal mit Basiswissen von PHP vertraut machen.

PHP:
<?php
include('../config.php');
$name = $_GET['name']; 
  
$menue1 = mysql_query("SELECT * FROM Menue WHERE `Name` = $name") or die(mysql_error());
while($menue2 = mysql_fetch_array($menue1)) { 
  $men = $menue2['name']; 
} 

$seite1 = mysql_query("SELECT * FROM Seite WHERE `Name` = $name") or die(mysql_error());
while($seite2 = mysql_fetch_array($seite1)){ 
  $side = $seite2['name']; 
} 

if ($side == $men) {
echo '<td><a href="index.php?seite=edit_side&action=hinzufuegen_menue&id='.$seite2[id].'"><font color="#FFFFFF">Zum Menü hinzufügen</p></a></td>';
} else {
echo '<td><font color="#FF0000">Ist in Menü</p></td>';
} 
?>

= ist ein Zuweisungsoperator KEIN Vergleichsoperator.
 
Zurück