PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks. |
 |
|

06-09-2007, 10:45
|
KrazyKingKool
Newbie
|
|
Registriert seit: Aug 2007
Beiträge: 26
|
|
SQL-SELECT mit Variable: Wo steckt der Fehler???
Hallo Leute,
sry das ich jetzt schon wieder mit so einem doofen Problem komme, aber ich häng seit 2Tage an ca: 10 Zeilen Code fest und komme nicht weiter...
Es geht um folgendes: Ich möchte aus einer Tabelle eine Id anhand eines vordefinierten Namens abfragen.
Ca. so...
Tabelle groups
Id || Name
---------------
1 || gruppe1
2 || gruppe2
3 || gruppe3
PHP-Code:
$id = '@gruppe1'; // das @ muss drinstehen, ist halt so....:-) ist aber eh wurschd, wird weggeparst
$tag = 'rw';
if (substr($id, 0, 1) == '@')
{
$sTempId = $id;
$ln = strlen($sTempId)-1;
$sTempId = substr($sTempId, 1, $ln);
echo "Group: ".$sTempId;
echo " (".$tag.")<br>";
//Group_Id entsprechend des aktuellen ids holen
///////////////////////////////////////////////////
$sql_get_gid = "SELECT Group_Id FROM svnfile.groups WHERE Group_Name='".$sTempId."';";
$result_get_gid = mysql_query ($sql_get_gid);
if (!$result_get_gid){die('Ungueltige Abfrage: ' . mysql_error());}
$row = mysql_fetch_assoc($result_get_gid);
$Group_Id = $row['Group_Id'];
echo "Group_ID: ".$Group_Id."<br>";
}
else
{
$temp_id = $id;
echo "User: ".$temp_id;
echo " (".$tag.")<br>";
}
Allerdings kommt da nix zurück.....das row ist leer! Am Code und an der SQL-Anfrage kanns nicht liegen (oder doch?), die hab ich schon1000mal durchgekuckt. Hab ich evtl ein Logik-Fehler?
Wär super wenn ihr mir helfen könnt!
Cheers
Geändert von KrazyKingKool (06-09-2007 um 10:48 Uhr)
|

06-09-2007, 11:01
|
ghostgambler
Master 
|
|
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
|
|
Testausgaben?
Fehlerausgaben?
|

06-09-2007, 11:30
|
KrazyKingKool
Newbie
|
|
Registriert seit: Aug 2007
Beiträge: 26
|
|
Keine Fehlerausgaben!
Testausgaben sind absolut wirr!
So wie's jetzt hier steht, kommt einmal eine Zahl zurück (im print_r), die allerdings nicht der Id entspricht und ein andern mal kommt leer zurück!
PHP-Code:
$id = '@phr-intern'; // das @ muss drinstehen, ist halt so....:-)
$tag = 'rw';
if (substr($id, 0, 1) == '@')
{
$sTempId = $id;
$ln = strlen($sTempId)-1;
$sTempId = substr($sTempId, 1, $ln);
echo "Group: ".$sTempId;
echo " (".$tag.")<br>";
//Group_Id entsprechend des aktuellen ids holen
///////////////////////////////////////////////////
$sql_get_gid = "SELECT Group_Id FROM svnfile.groups WHERE Group_Name='".$sTempId."';";
echo "SQL: ".$sql_get_gid."<br>";
$result_get_gid = mysql_query ($sql_get_gid);
if (!$result_get_gid){die('Ungueltige Abfrage: ' . mysql_error());}
echo "result_get_id: ".$result_get_gid."<br>";
$row = mysql_fetch_assoc($result_get_gid);
echo "row: ".$row."<br>";
print_r ($row);
echo "<br>";
$Group_Id = $row['Group_Id'];
echo "Group_ID: ".$Group_Id."<br>";
}
else
{
$temp_id = $id;
echo "User: ".$temp_id;
echo " (".$tag.")<br>";
}
|

06-09-2007, 11:41
|
splasch
Registrierter Benutzer
|
|
Registriert seit: Feb 2007
Beiträge: 74
|
|
Ich würd das @ zeichen einfach mit str_replace() rausnehmen.Da es eh nur um das @ zeichen geht.
PHP-Code:
str_replace("@","",$id)
Mfg Splasch
|

06-09-2007, 11:55
|
KrazyKingKool
Newbie
|
|
Registriert seit: Aug 2007
Beiträge: 26
|
|
Das ist Jacke wie Hose...ändert nichts imho.
Ich habs halt umständlicher gemacht  Es steht ja trotzdem das Richtige in der Variable nach der Umwandlung
PHP-Code:
echo "Group: ".$sTempId;
|

06-09-2007, 12:05
|
ghostgambler
Master 
|
|
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
|
|
Zitat:
Original geschrieben von KrazyKingKool
Testausgaben sind absolut wirr!
So wie's jetzt hier steht, kommt einmal eine Zahl zurück (im print_r), die allerdings nicht der Id entspricht und ein andern mal kommt leer zurück!
|
Und warum ist das so?
Query mal ausgeben lassen und manuell in PMA ausgeführt?
Du musst das Problem schon selbst eingrenzen...
|

06-09-2007, 12:19
|
KrazyKingKool
Newbie
|
|
Registriert seit: Aug 2007
Beiträge: 26
|
|
Zitat:
Original geschrieben von ghostgambler
Und warum ist das so?
|
Keine Ahnung...deswegen bin ich ja hier
Zitat:
Original geschrieben von ghostgambler
Query mal ausgeben lassen und manuell in PMA ausgeführt?
|
'Türlich....da kommt die passende Id zurück, stimmt alles! Auch mit MSQL Query Browser.
edit: In der Query steht ja der richtige Abfragestring drin
-->
PHP-Code:
...WHERE Group_Name='gruppe1';
Zitat:
Original geschrieben von ghostgambler
Du musst das Problem schon selbst eingrenzen...
|
....wenn ich wüsste wie??
Geändert von KrazyKingKool (06-09-2007 um 12:25 Uhr)
|

06-09-2007, 12:26
|
ThemBones
Registrierter Benutzer
|
|
Registriert seit: Nov 2005
Beiträge: 131
|
|
hi
benutz mal var_dump(), und error_reporting(E_ALL).
dann schau dir nochmal die ausgabe an.
falls du die nicht kennst: php.net/funktionsname.
|

06-09-2007, 12:49
|
KrazyKingKool
Newbie
|
|
Registriert seit: Aug 2007
Beiträge: 26
|
|
Bringt auch nix. bei var_dump($row); kommt nichts raus, bei print_r ($row); kommt NULL
|

06-09-2007, 12:51
|
ThemBones
Registrierter Benutzer
|
|
Registriert seit: Nov 2005
Beiträge: 131
|
|
Hast du, wie bereits vorgeschlagen, versucht, die Query direkt mit einem Abfragetool auszuführen?
Beinhaltet deine Tabelle überhaubt Daten?
|

06-09-2007, 13:01
|
KrazyKingKool
Newbie
|
|
Registriert seit: Aug 2007
Beiträge: 26
|
|
Zitat:
Original geschrieben von ThemBones
Hast du, wie bereits vorgeschlagen, versucht, die Query direkt mit einem Abfragetool auszuführen?
Beinhaltet deine Tabelle überhaubt Daten?
|
Kuck mal drei Posts obendrüber
Geändert von KrazyKingKool (06-09-2007 um 13:23 Uhr)
|

06-09-2007, 13:25
|
ghostgambler
Master 
|
|
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
|
|
PHP-Code:
<?php
error_reporting(E_ALL); #
ini_set("display_errors", "on"); #
$id = '@phr-intern';
$tag = 'rw';
if (substr($id, 0, 1) == '@')
{
$sTempId = $id;
$ln = strlen($sTempId)-1;
$sTempId = substr($sTempId, 1, $ln);
echo "Group: ".$sTempId;
echo " (".$tag.")<br>";
$sql_get_gid = "SELECT Group_Id FROM svnfile.groups WHERE Group_Name='".$sTempId."';";
echo '<p>' . htmlspecialchars($sql_get_gid) . '</p>'; #
echo "SQL: ".$sql_get_gid."<br>";
$result_get_gid = mysql_query ($sql_get_gid) or die(mysql_error()); #
if (!$result_get_gid){die('Ungueltige Abfrage: ' . mysql_error());}
echo "result_get_id: ".$result_get_gid."<br>";
$row = mysql_fetch_assoc($result_get_gid);
echo '<p><pre>' . print_r($row, 1) . '</pre></p>'; #
echo "row: ".$row."<br>";
print_r ($row);
echo "<br>";
$Group_Id = $row['Group_Id'];
echo "Group_ID: ".$Group_Id."<br>";
}
else
{
$temp_id = $id;
echo "User: ".$temp_id;
echo " (".$tag.")<br>";
}
Und das Ergebnis davon postest du mal bitte 1:1 hier hin
|

06-09-2007, 13:35
|
KrazyKingKool
Newbie
|
|
Registriert seit: Aug 2007
Beiträge: 26
|
|
Zitat:
Path: /
ID: 1
Group: phr-intern (rw)
SELECT Group_Id FROM svnfile.groups WHERE Group_Name='phr-intern';
SQL: SELECT Group_Id FROM svnfile.groups WHERE Group_Name='phr-intern';
result_get_id: Resource id #14
row:
Group_ID:
|
Path: und ID: ganz oben sind aus einer anderen aber absolut identischen Abfrage. Da werden wir nur statt 'gruppe1' eben 'pfad1' abgefragt. Und da funktionierts ! Sehr strange !
|

06-09-2007, 13:39
|
ghostgambler
Master 
|
|
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
|
|
was bringt ein
PHP-Code:
echo "result_get_id: ".$result_get_gid."<br>";
echo mysql_num_rows($result_get_gid);
?
Was bringt der Query hier
Code:
SELECT Group_Id FROM svnfile.groups WHERE Group_Name='phr-intern';
direkt in PMA?
|

06-09-2007, 13:49
|
KrazyKingKool
Newbie
|
|
Registriert seit: Aug 2007
Beiträge: 26
|
|
PHP-Code:
echo "result_get_id: ".$result_get_gid."<br>";
bringt: result_get_id: Resource id #14
Und
PHP-Code:
echo "MYSQL NUM ROWS: ".mysql_num_rows($result_get_gid);
bringt: MYSQL NUM ROWS: 0 !
Code:
SELECT Group_Id FROM svnfile.groups WHERE Group_Name='phr-intern';
bringt in PMA UND MYSQL QUERY BROWSER GENAU den gewollten Wert !! Da ist alles Paletti !!
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Thema bewerten |
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|