[Erledigt] komm einfach nicht weiter

Begonnen von lausbub, 13 April 2008, 23:26:27

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

lausbub

hallo, ich hänge hier und komm nicht weiter
ich bin mir absolut sicher, das be der datenbankabfrage ein januar.jpg drin ist, hab es mir testweise ausgeben lassen.
also 100 pro ist da ein januar.jpg drinnen. nur warum findet er es in der in_array abfrage nicht.

was  :puzzled:

$qry = "SELECT betreff FROM ".$prefix."_buchungen WHERE `module`='".$module_name."'AND `user_id`='".$uid."'";
$GLOBALS['res1'] = sql_query($qry);
if (in_array('januar.jpg', $GLOBALS['res1'])) {
    echo "String gefunden!";
    }


ich bekomme keine ausgabe
hoffe ihr könnt mir weiter helfen


gruß
thorsten
PHP Version: 5.2.11
MySql Version: 5.0.51a
Server-Version: Apache/2.2.8 (Linux/SUSE)
Pragma 1.12

lausbub

bekomme keine Ausgabe, was ist den bitte Falsch ich komme nicht drauf.
in der abfrage ist auf jedenfall januer.jpg enthalten.  :red:


$januar = "januar.jpg";
$qry12 = "SELECT betreff FROM ".$prefix."_buchungen WHERE `module`='".$module_name."' AND `user_id`='".$uid."'";
$monate = array ();
while ($row = mysql_fetch_assoc($gry12)) {
    $monate[] = $row["betreff"];
}
if (in_array($januar ,$monate[])) {
  echo "wert gefunden";
            }
PHP Version: 5.2.11
MySql Version: 5.0.51a
Server-Version: Apache/2.2.8 (Linux/SUSE)
Pragma 1.12

Webfan

Hallo,
also erstmal muß der zweite Parameter von in_array ein array sein, Du hast aber ein Array-Element angegeben.:
if (in_array($januar ,$monate))
sollte es heißen, glaub ich.

(Wie im ersten Beispiel in das Globals Array zu schreiben ist natürlich fragwürdig, so wie im zweiten Beispiel ist schonmal besser).

Dann bist Du Dir sicher, daß "januar.jpg" in einem Feld 'betreff' steht? Wenn nein, ggf. noch andere Felder selektieren und in die Suche einbeziehen.
Was die MySQL Abfrage betrifft bin ich da auch nicht so der Experte, vl. solltest Du aber besser mysql_fetch_row oder array nehmen (vl. könntest Du auch das Ergebniss $row direkt durchsuchen anstatt es erst  in $monate zu schreiben...?
Probier mal aus...?!

mfg

JoergK

Hoi ;)

Beim ersten Versuch steht in $GLOBALS['res1'] nur die Result-ID der DB-Abfrage drin, ergo kann der String "januar.jpg" nicht gefunden werden. Ein funktionierender Code wäre dieser:
<?php

$qry 
"SELECT betreff FROM " $prefix "_buchungen WHERE module='" $module_name "' AND user_id=" $uid "";
$result sql_query($qry);
while (
$row sql_fetch_array($result)) {
    
$betreff[] = $row[0];
}
if (
in_array('januar.jpg'$betreff)) { 
    echo 
'String gefunden!';
}

?>




Bei Deinem zweiten Versuch steht in der Fetch-Anweisung statt der Result-ID die Select-Anweisung drinne, ergo gibts ne Fehlermeldung von MySQL und wen wunderts, der String "januar.jpg" kommt darin ebenfalls nicht vor. ;)
Auch hier ein funktionierendes Codebeispiel:
<?php

$januar 
'januar.jpg';
$qry12 "SELECT betreff FROM " $prefix "_buchungen WHERE module='" $module_name "' AND user_id = " $uid "";
$result sql_query($qry12);
$monate = array ();
while (
$row sql_fetch_assoc($result)) {
    
$monate[] = $row['betreff'];
}

if (
in_array($januar$monate)) {
    echo 
'String gefunden!';
}

?>

Gruß,
Jörg


Nobody is perfect ... so don't call me Nobody

lausbub

Danke Danke


:gott:


funktioniert. juhu


muß mir jetzt nur in ruhe den code anschaun und schaun das ich meinen fehler sehe, begreife und mir merke.

Aber vielen vielen dank

Gruß

Thorsten
PHP Version: 5.2.11
MySql Version: 5.0.51a
Server-Version: Apache/2.2.8 (Linux/SUSE)
Pragma 1.12

JoergK

Bitte, bitte  ;)

Zu DB-Abfragen bei MySQL - ich denke bei den meisten anderen DBs wird's ähnlich sein - besteht eine Abfrage immer aus zwei Schritten:


  • Schritt 1:
    Die "Auftragsvergabe" zur Ermittlung bestimmter Daten, allgem. Query genannt.
    PHP-Funktion: mysql_query(...);
    pragmaMx-Funktion: sql_query(...);

    Dieser Query liefert als Ergebnis eine Result-ID (Ergebnis-ID) zurück, unter welcher MySQL das gefundene Ergebnis zwischengespeichert hat.

  • Schritt 2:
    Das Abholen der ermittelten Daten.
    PHP-Funktion(en): mysql_fetch_.......(Result-ID);
    pragmamx-Funktion(en): sql_fetch_.......(Result-ID);

    Erst mit einer dieser Funktionen, die MySQL sagt, dass man die ermittelten Daten der Result-ID xy möchte, bekommt man die tatsächlichen Daten geliefert.

Hier nochmal ein allgemeines Beispiel, bezogen auf pragmaMx:
<?php

$result 
sql_query("SELECT feldname1, feldname2 FROM tabellenname;");  // Ermittelt alle Daten in den angegebenen Feldern der Tabelle
while ($row sql_fetch_row($result)) {  // Zeilenweises Auslesen der ermittelten Daten in einer Schleife
    
echo $row[0];  // Ausgabe des Inhalts von feldname1
    
echo $row[1];  // Ausgabe des Inhalts von feldname2
}

?>


Mehr zu den PHP-Funktionen zur Abfrage einer MySQL-Datenbank, mit Erklärungen, findest Du im SelfPHP: http://www.selfphp.info/funktionsreferenz/mysql_funktionen/index.php

Weiter Infos zu MySQL finden sich natürlich auch im Handbuch: http://dev.mysql.com/doc/refman/5.1/de/

Zu welchen PHP-MySQL-Funktionen es Entsprechungen innerhalb von pragmaMx gibt kann mit einem Blick in die /includes/sql_layer.php herausgefunden werden. ;)
Gruß,
Jörg


Nobody is perfect ... so don't call me Nobody

lausbub

Super besten Dank

Gruß

Thorsten
PHP Version: 5.2.11
MySql Version: 5.0.51a
Server-Version: Apache/2.2.8 (Linux/SUSE)
Pragma 1.12