pragmaMx Support Forum

pragmaMx => Coder und Bastlerecke => Thema gestartet von: lausbub in 13 April 2008, 23:26:27

Titel: [Erledigt] komm einfach nicht weiter
Beitrag von: lausbub in 13 April 2008, 23:26:27
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
Titel: Re: komm einfach nicht weiter
Beitrag von: lausbub in 15 April 2008, 17:21:49
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";
            }
Titel: Re: komm einfach nicht weiter
Beitrag von: Webfan in 15 April 2008, 18:22:05
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
Titel: Re: komm einfach nicht weiter
Beitrag von: JoergK in 15 April 2008, 18:24:35
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!';
}

?>

Titel: Re: komm einfach nicht weiter
Beitrag von: lausbub in 15 April 2008, 19:47:43
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
Titel: Re: komm einfach nicht weiter
Beitrag von: JoergK in 15 April 2008, 20:32:15
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:


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/): 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. ;)
Titel: Re: komm einfach nicht weiter
Beitrag von: lausbub in 15 April 2008, 22:06:14
Super besten Dank

Gruß

Thorsten