SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



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



:: Buchempfehlung ::

Websites optimieren für Google & Co.

Websites optimieren für Google & Co. zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen
Hilfe Community Kalender Heutige Beiträge Suchen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 27.01.2004, 10:41:20
Carsten25 Carsten25 ist offline
Anfänger
 
Registriert seit: Jan 2003
Alter: 45
Beiträge: 15
Carsten25 eine Nachricht über ICQ schicken
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
Mit Zitat antworten
  #2  
Alt 27.01.2004, 12:18:06
feuervogel feuervogel ist offline
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.
Mit Zitat antworten
  #3  
Alt 27.01.2004, 13:57:56
Carsten25 Carsten25 ist offline
Anfänger
 
Registriert seit: Jan 2003
Alter: 45
Beiträge: 15
Carsten25 eine Nachricht über ICQ schicken
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"
Mit Zitat antworten
  #4  
Alt 27.01.2004, 18:34:45
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
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.
Mit Zitat antworten
  #5  
Alt 27.01.2004, 21:27:29
Carsten25 Carsten25 ist offline
Anfänger
 
Registriert seit: Jan 2003
Alter: 45
Beiträge: 15
Carsten25 eine Nachricht über ICQ schicken
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
Mit Zitat antworten
  #6  
Alt 27.01.2004, 21:41:26
chris17 chris17 ist offline
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)
Mit Zitat antworten
  #7  
Alt 27.01.2004, 22:06:17
Carsten25 Carsten25 ist offline
Anfänger
 
Registriert seit: Jan 2003
Alter: 45
Beiträge: 15
Carsten25 eine Nachricht über ICQ schicken
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
Mit Zitat antworten
  #8  
Alt 27.01.2004, 23:14:19
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
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.
Mit Zitat antworten
  #9  
Alt 28.01.2004, 01:18:53
Carsten25 Carsten25 ist offline
Anfänger
 
Registriert seit: Jan 2003
Alter: 45
Beiträge: 15
Carsten25 eine Nachricht über ICQ schicken
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:
Mit Zitat antworten
  #10  
Alt 28.01.2004, 01:33:43
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
SET für Kategorien:
Zitat:
Original geschrieben von Carsten25
[B]http://www.mysql.com/doc/de/SET.html

Nur werde ich daraus nich so richtig schlau. Wie verarbeite ich den mysql_query weiter?
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.
Mit Zitat antworten
Antwort


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.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:00:09 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt