CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden |
27.01.2004, 10:41:20
|
Anfänger
|
|
Registriert seit: Jan 2003
Alter: 45
Beiträge: 15
|
|
String aus url Variable verarbeiten
Hallo,
habe schon gestern und heute morgen nach einer Lösung gesucht aber komme nicht so richtig weiter.
Folgendes Problem:
So sieht die Variable in der URL aus:
PHP-Code:
http://www.meineurl.de/script.php?variable=12+35+26+53
Testausgabe im Script:
PHP-Code:
echo "$variable";
=
12 35 26 53
Möchte dieses haber im Format '12','35','26','53' für eine Mysql Abfrage haben. Wie ist das möglich ?
Habe es schon mit str_replace und einer Foreach schleife probiert.
Gruß
Carsten
|
27.01.2004, 12:18:06
|
SELFPHP Guru
|
|
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
|
|
hm, also am einfachsten bekommst du das mit explode() hin, denke ich
PHP-Code:
$pizza = "Teil1 Teil2 Teil3 Teil4 Teil5 Teil6";
$pieces = explode (" ", $pizza);
du kannst dann das array $pieces weiter verarbeiten.
|
27.01.2004, 13:57:56
|
Anfänger
|
|
Registriert seit: Jan 2003
Alter: 45
Beiträge: 15
|
|
Danke, hat funktioniert.
Für die Nachwelt:
PHP-Code:
$cat = explode (" ", $catnum);
$ergebnisstring="";
foreach ($cat as $val){
if($ergebnisstring==""){$ergebnisstring="'".$val."'";}
else{$ergebnisstring.=",'".$val."'";}}
echo "$ergebnisstring";
|
27.01.2004, 18:34:45
|
|
SELFPHP Guru
|
|
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
|
|
Re: String aus url Variable verarbeiten
Zitat:
Original geschrieben von Carsten25
12 35 26 53
Möchte dieses haber im Format '12','35','26','53' für eine Mysql Abfrage haben.
|
Das geht einfach:
PHP-Code:
$text = "'".str_replace (' ', "','", $text)."'";
Aus Gründen der Sicherheit rate ich allerdings davon ab, Formulardaten ungeprüft in SQL Strings zu verwenden.
|
27.01.2004, 21:27:29
|
Anfänger
|
|
Registriert seit: Jan 2003
Alter: 45
Beiträge: 15
|
|
Zitat:
Aus Gründen der Sicherheit rate ich allerdings davon ab, Formulardaten ungeprüft in SQL Strings zu verwenden.
|
Keine Angst, sind keine Formulardaten ;).
Es geht darum das ich mehrere Kategorien anhand der Datensatznummer aufrufen möchte. Dies sollte in der zweiten mysql Abfrage passieren wo ich schon wieder bischen hänge. Ich bin halt kein Profi ;).
PHP-Code:
$result2 = mysql_query("SELECT catName FROM categories WHERE catnum IN(" .$ergebnisstring. ")");
while ($row2 = mysql_fetch_array($result2))
Also ich möchte mittels des Ergebnisstrings (Kategoriennummern) die Kategoriennamen aus der Datenbank abfragen. Diese sollten dann später auch in dem Format 'KAtegorie1','Kategorie2','Kategorie3', ... stehen.
Gruß
Carsten
|
27.01.2004, 21:41:26
|
Senior Member
|
|
Registriert seit: Apr 2003
Alter: 57
Beiträge: 1.236
|
|
Hi,
in wie fern unterscheiden sich die Werte in Feld catnum von dem Wert der Variable $ergebnisstring?
Wenn die gleich sind ->
PHP-Code:
$result2 = mysql_query("SELECT catName FROM categories WHERE catnum='".$ergebnisstring."'";
Falls $ergebnisstring nur in catnum enthalten ist->
PHP-Code:
$result2 = mysql_query("SELECT catName FROM categories WHERE catnum LIKE '%".$ergebnisstring."%'";
Gruss
Christian
Geändert von chris17 (27.01.2004 um 21:43:27 Uhr)
|
27.01.2004, 22:06:17
|
Anfänger
|
|
Registriert seit: Jan 2003
Alter: 45
Beiträge: 15
|
|
Hallo Christian,
die sind nicht gleich. Es sollen halt nur die Kategorien anhand der catnum welche die nummern aus ergebnisstring enthalten ('12','13';..) abgefragt werden.
Die Abfrage funktioniert ja schon. Nur wie bekomme ich das Abfrageergebniss was hier in einem Array gespeichert wird wieder in das Format 'Kategorie1','Kategorie5',... . Oder wie muss ich den Array aufbereiten?
PHP-Code:
$result2 = mysql_query("SELECT catName FROM categories WHERE catnum IN(" .$ergebnisstring. ")");
while ($row2 = mysql_fetch_array($result2))
$ergebnisstring2="";
foreach ($row2['catname'] as $val2){
if($ergebnisstring2==""){$ergebnisstring2="'".$val2."'";}
else{$ergebnisstring2.=",'".$val2."'";}}
echo "$ergebnisstring2";
Bei dieser Lösung nimmt er die Foreach Schleife nicht an und gibt folgende Meldung aus:
Warning: Invalid argument supplied for foreach()
Gruß
Carsten
|
27.01.2004, 23:14:19
|
|
SELFPHP Guru
|
|
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
|
|
Zitat:
Original geschrieben von Carsten25
Keine Angst, sind keine Formulardaten ;).
|
Angst habe ich nur bei meinen eigenen Daten. <ggg>
Zitat:
Es geht darum das ich mehrere Kategorien anhand der Datensatznummer aufrufen möchte. [...] Also ich möchte mittels des Ergebnisstrings (Kategoriennummern) die Kategoriennamen aus der Datenbank abfragen. Diese sollten dann später auch in dem Format 'KAtegorie1','Kategorie2','Kategorie3', stehen.
|
Wenn die Anzahl der unterschiedlichen Kategorien max 64 beträgt, lege ich Dir ans Herz, Dir den MySQL Datentyp SET genauer anzusehen, den Du gerade mühsam mit PHP nachbastelst.
|
28.01.2004, 01:18:53
|
Anfänger
|
|
Registriert seit: Jan 2003
Alter: 45
Beiträge: 15
|
|
Zitat:
Wenn die Anzahl der unterschiedlichen Kategorien max 64 beträgt, lege ich Dir ans Herz, Dir den MySQL Datentyp SET genauer anzusehen, den Du gerade mühsam mit PHP nachbastelst. [/B]
|
http://www.mysql.com/doc/de/SET.html
Nur werde ich daraus nich so richtig schlau. Wie verarbeite ich den mysql_query weiter?
Hier die Code Schnipsel:
PHP-Code:
$result2 = mysql_query("SELECT catName FROM categories WHERE set_catnum LIKE '%350%'");
$row2=mysql_fetch_row($result2);
//Habe ich aus den comments
$options=explode("','",preg_replace("/(enum|set)('(.+?)')/","2",$row2[1]));
echo "$options";
=FEHLER: Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in
Oder aus einem anderen Kommentar:
PHP-Code:
<?
/**
* @return array
* @param table DB table
* @param column Column name
* @desc Return an array of the possible values for a SET
*/
function get_set($table,$column)
{
$sql = "SHOW COLUMNS FROM $table LIKE '$column'";
if (!($ret = mysql_query($sql)))
die("Error: Could not show columns");
$line = mysql_fetch_assoc($ret);
$set = $line['Type'];
$set = substr($set,5,strlen($set)-7); // Remove "set(" at start and ");" at end
return preg_split("/','/",$set); // Split into and array
}
?>
Nur wie wende ich das jetzt auf mein Abfrage an?
Gruß
Carsten :confused:
|
28.01.2004, 01:33:43
|
|
SELFPHP Guru
|
|
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
|
|
SET für Kategorien:
Beispiel:
Code:
CREATE TABLE tabelle (
id int(11) NOT NULL auto_increment,
name varchar(32) NOT NULL,
kat('kat1','kat2','kat3','kat4') default NULL,
PRIMARY KEY (`id`)
)
meier soll zu kat1 und kat3 gehören:
Code:
INSERT INTO tabelle (name,kat) VALUES ('meier', 'kat1,kat3');
Wenn Du alle Einträge suchst, bei denen kat1 und kat3 gesetzt sind:
Code:
SELECT * FROM tabelle WHERE FIND_IN_SET('kat1', kat) AND FIND_IN_SET('kat3', kat);
In der Ergebnistabelle stände dann:
$row['name'] = 'meier'
$riw['kat'] = 'kat1,kat3'
Ich verwende SET zB., um Userrechte zu verwalten.
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
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.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 09:00:09 Uhr.
|